DMS (dual-message) transaction

DMS (dual-message) transaction
  • A transaction processing flow where authorization and financial capture are two events separated in time (by hours or by days).
  • According to scheme rules DMS transaction must be used where goods delivery occurs sometime after the purchase.
  • Normally, the financial capture should match the authorization amount confirmed by the issuer, but in certain cases financial capture may be done for amount less than amount authorized.
  • DMS payment is performed in 2 steps: up to 3 days funds can be held on customers’ account and then either fully cleared (deducted) from account or returned back. Details for finishing or cancel DMS financial transaction is available in section Second DMS step description
Payment Methods available for SMS transaction processing:
  • FD_DMS - Transaction for payment authorization without card 3D-Secure authentication;
  • FD_DMS_3D_OPTIONAL - Transaction for payment authorization with 3D-Secure authentication (if card is enrolled for 3D-Secure) or without;
  • FD_DMS_3D_REQUIRED - Transaction for payment authorization only for 3D-Secure enrolled cards (other cards will lead to payment attempt failure).
First DMS step – invoice registration request description
  • This request is using the same fields as SMS request, the only difference is "payment_method" field value
  • Method: POST , URL: /invoice/process
  • Fields for signature calculation:
    <Order_id><amount><Currency><payment_method><X-Shop-Name><X-Nonce><ShopPassword>
  • Payment Methods: FD_DMS, FD_DMS_3D_OPTIONAL, FD_DMS_3D_REQUIRED
First DMS step – invoice registration request example
  {
  "order_id": "order-27",
  "amount": 9.99,
  "currency": "USD",
  "payment_method": "FD_DMS",
  "customer": {},
  "products": [],
  "card_info": {
  "cardholder": "John Smith",
  "pan": "4111111111111111",
  "cvc": "123",
  "expiry": "1220"
  }
  }

  If MPI verification is required, then additional field should be provided
  "card_info": {
      ...,
    "mpi_callback_url": "https://merchantsite.example.com/mpi_callback"
 }
	        
First DMS step – invoice registration response description and example
DMS registration responses contains the same fields as the SMS invoice processing responses:
  {
  "invoice": {
  "type": "InvoiceDto",
  "invoice_ref": "BKIuIJBsYpwB4x0eCc9t9oglc",
  "amount": 9.99,
  "currency": "USD",
  "created_date": "2017-07-13T13:53:22.448Z",
  "updated_date": "2017-07-13T13:53:22.803Z",
  "due_date": "2017-07-13T18:53:22.803Z",
  "shop_code": "TEST",
  "invoice_status": "WAITING_FOR_APPROVAL",
  "payment_id": "20823021",
  "target_payment_id": null,
  "order_id": "order-27",
  "error_code": null,
  "error_message": null,
  "payment_method": "FD_DMS",
  "merchant_name_a": null,
  "merchant_name_b": null,
  "customer": { },
  "products": [ ],
  "details": {}
  },
  "payment_transaction": {
  "id": 245000,
  "amount": 9.99,
  "payment_id": "20823021",
  "target_payment_id": null,
  "currency": "USD",
  "minor_amount": 999,
  "created_date": "2017-07-13T13:53:22.481Z",
  "updated_date": "2017-07-13T13:53:22.588Z",
  "transaction_type": "DMS",
  "status": "PENDING",
  "error_code": null,
  "error_message": null,
  "shop_code": "TEST",
  "invoice_ref": "BKIuIJBsYpwB4x0eCc9t9oglc"
  },
  "view": "finished"
}