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
| Field | Required | Description |
|---|---|---|
CompanyToken | Yes | Your merchant token |
Request | Yes | Must be GetBankTransferOptions |
TransactionToken | Yes | Token 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
| Field | Description |
|---|---|
Result | 000 = Success; see errors below for others |
ResultExplanation | Human-readable status |
bankOptions/option | Repeated entries, one per available bank |
Each <option>
<option>| Field | Description |
|---|---|
bankName | Display name (often includes region/currency) |
bankCode | Code 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
| Symptom | Likely Cause | Action |
|---|---|---|
Result != 000 | Missing/invalid fields | Ensure Request=GetBankTransferOptions and a valid TransactionToken |
Empty bankOptions | No bank rails available for amount/currency/merchant | Adjust currency/amount or contact DPO |
XML 804 | Tag/encoding issue | Check capitalization and encoding (UTF-8) |
| Customer paid but no confirmation | Bank transfer not yet reconciled | Wait 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

