Get Bank Transfer Options

Use GetBankTransferOptions to fetch available bank transfer rails + instructions for a specific transaction token.

You’ll receive a list of banks (each with a bankCode) and multilingual instructions you can render to customers.

After the customer pays via bank transfer, confirm completion 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 GetBankTransferOptions
TransactionTokenYesToken returned by createToken

Example Request (XML)

<?xml version="1.0" encoding="UTF-8"?>
<API3G>
  <CompanyToken>YOUR_COMPANY_TOKEN</CompanyToken>
  <Request>GetBankTransferOptions</Request>
  <TransactionToken>9EF83250-B6A2-4FDD-A290-C4CE7EA6D447</TransactionToken>
</API3G>

Response

On success (Result=000), the API returns a <bankOptions> list with one or more <option> entries.

Example Success Response (XML)

<?xml version="1.0" encoding="utf-8"?>
<API3G>
    <Result>000</Result>
    <ResultExplanation>Success</ResultExplanation>
    <bankOptions>
        <option>
            <bankName>DTB Tanzania TZS</bankName>
            <bankCode>DTBTanzaniaTZS</bankCode>
            <instructions>
                <bankInstructionsEN>Please use the below details for your bank transfer;Account Name :One payment
                    Tanzania;Bank Name : Diamond Trust Bank Tanzania;Branch : Dar es salam;Bank Address : P.O. Box 115,
                    Dar es Salaam, Tanzania;Account Number : 0091636001;SWIFT CODE :DTKETZTZ; Please add the following
                    text within your transaction (additional information field): R73877558 ;</bankInstructionsEN>
                <bankInstructionsIT>Usa i dettagli sottostanti per il tuo trasferimento bancario;Nome del Conto :One
                    payment Tanzania;Nome della Banca : Diamond Trust Bank Tanzania;Filiale :Dar es salam;Indirizzo
                    della Banca : P.O. Box 115, Dar es Salaam, Tanzania;Numero del Conto :0091636001;CODICE SWIFT
                    :DTKETZTZ;; Aggiungi il seguente testo nella tua transazione (campo ulteriori informazioni)
                    R73877558 ;</bankInstructionsIT>
                <bankInstructionsFR>Veuillez utiliser les d and eacutetails ci-dessous pour votre virement bancaire;Nom
                    du compte : One payment Tanzania;Nom de la banque :Diamond Trust Bank Tanzania;Agence :Dar es
                    salam;Adresse de la banque : P.O. Box 115, Dar es Salaam, Tanzania;Num and eacutero de compte :
                    0091636001;CODE SWIFT : DTKETZTZ;; Veuillez ajouter le texte suivant dans votre transaction (champ
                    des informations supplémentaires) R73877558 ;</bankInstructionsFR>
                <bankInstructionsSW>Tafadhali tumia maelezo yaliyo chini kwa ajili ya uhamishaji wa benki;Jina la
                    Akaunti : One payment Tanzania;Jina la Benki : Diamond Trust Bank Tanzania;Tawi :Dar es salam;Anwani
                    ya Benki :P.O. Box 115, Dar es Salaam, Tanzania;Namba ya Akaunti : 0091636001;SWIFT CODE :DTKETZTZ;;
                    Tafadhali ongeza maandishi yafuatayo katika mapatano (eneo la maelezo zaidi) R73877558 ;
                </bankInstructionsSW>
            </instructions>
        </option>
        <option>
            <bankName>DTB Kenya EUR</bankName>
            <bankCode>DTBKenyaEUR</bankCode>
            <instructions>
                <bankInstructionsEN>Please use the below details for your bank transfer; Account Name: 3G DIRECT PAY
                    LIMITED; Bank Name: DTB; Branch: T-MALL; Bank Address: NAIROBI, KENYA; Account Number: 0002725006;
                    SWIFT CODE: DTKEKENA; Please add the following text within your transaction (additional information
                    field): R73877558 ;</bankInstructionsEN>
                <bankInstructionsIT>Usa i dettagli sottostanti per il tuo trasferimento bancario:; Nome del Conto : 3G
                    Direct Pay Limited; Nome della Banca : Diamond Trust Bank; Filiale :T-Mall; Indirizzo della Banca :
                    Langata Road/T - Mall, Nairobi, Kenya; Numero del Conto : 0002725006; CODICE SWIFT : DTKEKENA;
                    Aggiungi il seguente testo nella tua transazione (campo ulteriori informazioni) R73877558 ;
                </bankInstructionsIT>
                <bankInstructionsFR>Veuillez utiliser les dtails ci-dessous pour votre virement bancaire; Nom du compte
                    : 3G Direct Pay Limited; Nom de la banque : Diamond Trust Bank; Agence :T-Mall; Adresse de la banque
                    : Langata Road/T - Mall, Nairobi, Kenya; Numro de compte : 0002725006; CODE SWIFT : DTKEKENA;
                    Veuillez ajouter le texte suivant dans votre transaction (champ des informations supplémentaires)
                    R73877558 ;</bankInstructionsFR>
                <bankInstructionsSW>Tafadhali tumia maelezo yaliyo chini kwa ajili ya uhamishaji wa benki:; Jina la
                    Akaunti : 3G Direct Pay Limited; Jina la Benki : Diamond Trust Bank; Tawi :T-Mall; Anwani ya Benki :
                    Langata Road/T - Mall, Nairobi, Kenya; Namba ya Akaunti : 0002725006; SWIFT CODE : DTKEKENA;
                    Tafadhali ongeza maandishi yafuatayo katika mapatano (eneo la maelezo zaidi) R73877558 ;
                </bankInstructionsSW>
            </instructions>
        </option>
        <option>
            <bankName>DTB Kenya ZAR</bankName>
            <bankCode>DTBKenyaZAR</bankCode>
            <instructions>
                <bankInstructionsEN>Please use the below details for your bank transfer;Account Name : 3G Direct Pay
                    Limited;Bank Name : Diamond Trust Bank;Branch : T-Mall;Bank Address : Langata Road/T - Mall,
                    Nairobi, Kenya;Account Number :0002725018;SWIFT CODE : DTKEKENA; Please add the following text
                    within your transaction (additional information field): R73877558 ;</bankInstructionsEN>
                <bankInstructionsIT>Usa i dettagli sottostanti per il tuo trasferimento bancario;Nome del Conto : 3G
                    Direct Pay Limited;Nome della Banca : Diamond Trust Bank;Filiale :T-Mall;Indirizzo della Banca :
                    Langata Road/T - Mall, Nairobi, Kenya;Numero del Conto :0002725018;CODICE SWIFT : DTKEKENA; Aggiungi
                    il seguente testo nella tua transazione (campo ulteriori informazioni) R73877558 ;
                </bankInstructionsIT>
                <bankInstructionsFR>Veuillez utiliser les d and eacutetails ci-dessous pour votre virement bancaire;Nom
                    du compte : 3G Direct Pay Limited;Nom de la banque : Diamond Trust Bank;Agence :T-Mall;Adresse de la
                    banque : Langata Road/T - Mall, Nairobi, Kenya;Num and eacutero de compte :0002725018;CODE SWIFT :
                    DTKEKENA; Veuillez ajouter le texte suivant dans votre transaction (champ des informations
                    supplémentaires) R73877558 ;</bankInstructionsFR>
                <bankInstructionsSW>Tafadhali tumia maelezo yaliyo chini kwa ajili ya uhamishaji wa benki;Jina la
                    Akaunti : 3G Direct Pay Limited;Jina la Benki : Diamond Trust Bank;Tawi :T-Mall;Anwani ya Benki :
                    Langata Road/T - Mall, Nairobi, Kenya;Namba ya Akaunti :0002725018;SWIFT CODE : DTKEKENA; Tafadhali
                    ongeza maandishi yafuatayo katika mapatano (eneo la maelezo zaidi) R73877558 ;</bankInstructionsSW>
            </instructions>
        </option>
    </bankOptions>
</API3G>

Some source samples show mis-encoded characters (e.g., and eacutetails). Keep the verbatim text returned by the API, but you may normalize accents when displaying to users.


Field Reference

Top-Level

FieldDescription
Result000 = Success; see errors below for others
ResultExplanationHuman-readable status
bankOptions/optionRepeated entries, one per available bank

Each <option>

FieldDescription
bankNameDisplay name (often includes region/currency)
bankCodeCode to pass to chargeTokenBankTransfer
instructions/*Multilingual instruction blocks (e.g., bankInstructionsEN, bankInstructionsIT, bankInstructionsFR, bankInstructionsSW)

Next Step: Mark Transaction as Pending (Bank Transfer)

After the shopper selects a bank, call [chargeTokenBankTransfer](../reference/charge-token-bank-transfer) with the chosen bankCode.
That returns a converted amount/currency and sets status to “Pending bank transfer” until the funds arrive.

<API3G>
  <CompanyToken>YOUR_COMPANY_TOKEN</CompanyToken>
  <Request>chargeTokenBankTransfer</Request>
  <TransactionToken>9EF83250-B6A2-4FDD-A290-C4CE7EA6D447</TransactionToken>
  <BankCode>DTB</BankCode>
</API3G>

Then confirm completion via BackURL (webhook) or verifyToken.


UI / UX Tips

  • Show each option as a card: bankName, language selector, and a Copy All button for the instructions.
  • If you know the shopper’s locale, default to that instruction block (e.g., EN, FR, SW, IT).
  • Keep a clear reference code visible (often included in the instruction text).
  • Provide a “Mark as paid / I’ve completed the transfer” button that explains next steps (your system will wait for confirmation via DPO).

Troubleshooting

SymptomLikely CauseAction
Result != 000Missing/invalid fieldsEnsure Request=GetBankTransferOptions and a valid TransactionToken
Empty bankOptionsNo bank rails available for amount/currency/merchantAdjust currency/amount or contact DPO
XML 804Tag/encoding issueCheck capitalization and encoding (UTF-8)
Customer paid but no confirmationBank transfer not yet reconciledWait for BackURL or poll verifyToken

Typical Flow

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

  M->>D: createToken → TransactionToken
  M->>D: GetBankTransferOptions (TransactionToken)
  D-->>M: bankOptions (list of banks + instructions)
  M-->>C: Show bank cards + localized instructions
  C->>B: Performs bank transfer
  M->>D: chargeTokenBankTransfer (TransactionToken + BankCode)
  D-->>M: Result=000 (pending) + converted amount/currency
  D-->>M: BackURL callback when funds confirmed
  M->>D: (optional) verifyToken for reconciliation