Skip to main content

Bank transfer

Last updated: 2026-07-17

Select a market where the catalog lists bank_transfer in methodsIn, then use PAYMENT_METHOD_BANK_TRANSFER in a hosted or direct pay-in.

The optional paymentSubMethod is supported only for bank transfer. The current public value is moniepoint; omit the field when the selected account flow does not require that submethod.

Integration sequence

  1. Choose the market through Catalog and availability.
  2. Initialize a hosted pay-in, or create a direct pay-in with a unique merchantReference and bankTransferDetails request block.
  3. For a direct response, display returned account fields exactly as returned. For a hosted or later payment read, inspect paymentOrder.bankTransferDetails.generationStatus.
  4. Display generated account details only after the state becomes succeeded. For pending or processing, read the payment again no earlier than retryAfter when it is present.
  5. Ask the customer to complete the transfer before expiresAt, then confirm the outcome from the latest payment status or a verified webhook.

Payment instructions are not a success confirmation. Do not mark the order paid when the instructions are issued or when the customer returns to your site.

See Pay-ins API for request and response fields, Bank transfer details for generation states, and Payment lifecycle for reconciliation.