Charge Token — Bank Transfer

Use chargeTokenBankTransfer to mark a token as Pending Bank Transfer and obtain the converted amount & currency for the selected bank.

You must supply a BankCode previously obtained via GetBankTransferOptions.

After the customer pays at the bank, the transaction’s final status will update. Confirm via BackURL webhook and/or verifyToken.


Endpoint

POST https://secure.3gdirectpay.com/API/v6/

Headers

Content-Type: application/xml; charset=utf-8
Accept: application/xml

Request

Required Fields

FieldRequiredDescription
CompanyTokenYesYour merchant token
RequestYesMust be chargeTokenBankTransfer
TransactionTokenYesToken returned by createToken
BankCodeYesBank identifier from GetBankTransferOptions

Example Request (XML)

<?xml version="1.0" encoding="utf-8"?>
<API3G>
  <CompanyToken>YOUR_COMPANY_TOKEN</CompanyToken>
  <Request>chargeTokenBankTransfer</Request>
  <TransactionToken>72983CAC-5DB1-4C7F-BD88-352066B71592</TransactionToken>
  <BankCode>DTB</BankCode>
</API3G>

Response

Success

<?xml version="1.0" encoding="utf-8"?>
<API3G>
  <Result>000</Result>
  <ResultExplanation>Transaction pending for bank transfer DTB</ResultExplanation>
  <ConvertedAmount>1.01</ConvertedAmount>
  <ConvertedCurrency>USD</ConvertedCurrency>
</API3G>

Error (examples)

<API3G>
  <Result>804</Result>
  <ResultExplanation>Error in XML</ResultExplanation>
</API3G>
<API3G>
  <Result>950</Result>
  <ResultExplanation>Request missing transaction level mandatory fields: BankCode</ResultExplanation>
</API3G>
<API3G>
  <Result>999</Result>
  <ResultExplanation>Custom error message</ResultExplanation>
</API3G>

Field reference

FieldMeaning
Result000 = accepted / pending bank transfer
ResultExplanationHuman-readable status (bank included)
ConvertedAmountAmount after conversion for the selected bank
ConvertedCurrencyCurrency used for the bank transfer

Flow (Bank Transfer)

sequenceDiagram
  participant M as Merchant
  participant D as DPO API
  participant B as Bank
  participant C as Customer

  M->>D: createToken → TransactionToken
  M->>D: GetBankTransferOptions (list banks)
  M->>D: chargeTokenBankTransfer (TransactionToken + BankCode)
  D-->>M: Result=000 + ConvertedAmount/Currency (pending)
  M-->>C: Show bank details/instructions
  C->>B: Pays at bank
  D-->>M: BackURL callback updates status
  M->>D: (optional) verifyToken for reconciliation

Usage Notes & Best Practices

  • Prerequisite: call GetBankTransferOptions to obtain a valid BankCode for the token’s amount/currency.
  • Display the ConvertedAmount/Currency and bank instructions to the customer.
  • Treat BackURL as the source of truth for completion; use verifyToken if webhook is missed.
  • Log: TransactionToken, BankCode, ConvertedAmount, ConvertedCurrency, Result, ResultExplanation.

Troubleshooting

  • Wrong request name → ensure <Request>chargeTokenBankTransfer</Request> (not chargeTokenAuth).
  • 950 missing fields → include BankCode exactly as returned by GetBankTransferOptions.
  • 804 XML error → verify tag names/encoding and that you included the TransactionToken.
  • No final success → payment happens off-gateway; wait for webhook or poll verifyToken.