Skip to main content
On this page

Use DEUNA to orchestrate payment experiences inside digital banking journeys while keeping the financial product and customer context attached to every attempt. The order provides a stable business reference across providers, retries, statuses, and operations.

Complete banking order payload#

The example models a customer-directed credit account payment. Product and account references are merchant-defined metadata; avoid placing raw secrets or complete account numbers in the payload.

Complete order payload

Banking

Financial product, masked account reference, customer, channel, and statement context for an account payment.

descriptionstatement_descriptorinitiator_typemetadata
Request bodyJSON
{
  "order_type": "DEUNA_CHECKOUT",
  "order": {
    "order_id": "bank-payment-883104",
    "store_code": "digital-banking",
    "currency": "USD",
    "items_total_amount": 12500,
    "sub_total": 12500,
    "total_tax_amount": 0,
    "total_amount": 12500,
    "items": [
      {
        "id": "credit-account-payment",
        "sku": "CARD-PAYMENT",
        "name": "Credit account payment",
        "description": "Customer-directed account payment",
        "quantity": 1,
        "category": "financial_services",
        "type": "service",
        "taxable": false,
        "unit_price": {
          "amount": 12500,
          "currency": "USD",
          "currency_symbol": "$"
        },
        "total_amount": {
          "amount": 12500,
          "original_amount": 12500,
          "currency": "USD",
          "currency_symbol": "$",
          "total_discount": 0
        },
        "tax_amount": {
          "amount": 0,
          "currency": "USD",
          "currency_symbol": "$"
        }
      }
    ],
    "payer_info": {
      "email": "alex@example.com",
      "external_registration_date": "2022-08-14T10:30:00Z"
    },
    "description": "Payment to account ending in 8842",
    "statement_descriptor": "BANK ACCOUNT PMT",
    "initiator_type": "customer",
    "channel_type": "mobile_app_android",
    "metadata": {
      "vertical": "banking",
      "account_reference": "acct_••••8842",
      "product": "credit_card",
      "customer_segment": "premium"
    },
    "callback_urls": {
      "on_success": "https://merchant.example.com/payments/success",
      "on_pending": "https://merchant.example.com/payments/pending",
      "on_reject": "https://merchant.example.com/payments/rejected",
      "on_canceled": "https://merchant.example.com/payments/canceled",
      "on_failed": "https://merchant.example.com/payments/failed"
    }
  }
}

Model the business context#

RequirementOrder fields
Bank transaction referenceStable order_id plus a masked or tokenized metadata reference
Financial productService item category, type, and namespaced metadata.product
Customer and channelpayer_info, initiator_type, and channel_type
Customer statementdescription and provider-compatible statement_descriptor
Final outcomeDEUNA order_token, payment status, and verified webhook events

Production checklist#

  • Define which banking identifier becomes the immutable merchant order_id.
  • Keep account references masked or tokenized and exclude credentials from metadata.
  • Apply idempotency to every business attempt and reconcile timeouts against the original order.
  • Validate statement descriptors and supported payment methods with the selected providers.
  • Test authentication, limit, pending, decline, reversal, refund, and duplicate-submission scenarios.

Continue with Authentication and API keys, Idempotency, and Webhooks.