Test Scenarios - Transfers
Test Scenarios - Transfers
Overview
In the Sandbox, the Business Integration Services - Transfers services operate in mocked mode, allowing the client to verify the request/response structure, authorization mechanism, validations, retrieval of transfer IDs and status requests without executing a real banking operation.
| Method | Endpoint | Purpose |
|---|---|---|
| POST | /bab/v1/transfers/single | Import single transfer orders |
| POST | /bab/v1/transfers/batch | Import a batch transfer order |
| GET | /bab/v1/transfers/single/{transferId}/status | Get single transfer status |
| GET | /bab/v1/transfers/batch/{batchId}/status | Get batch transfer status |
| GET | /bab/v1/transfers/single/{transferExternalId} | Get single transfer transferId by requestId |
| GET | /bab/v1/transfers/batch/{batchTransferExternalId} | Get batch transfer batchId by requestId |
Test accounts allowed in the Sandbox
| Account Number | Currency |
|---|---|
| GE29TB7777777777777777 | GEL / USD / EUR |
| GE29TB9999999999999999 | GEL / USD / EUR |
Important validation rules for Sandbox testing:
- SingleTransferOrders is required and must not be empty; a maximum of 10 single transfer orders can be sent in one request.
- TransferOrders is required in a batch request and must not be empty; a maximum of 1000 orders is allowed in one batch.
- If transferExternalId / batchTransferExternalId is provided, it must be unique within the request.
- The maximum length of the description field is 140 characters, while the maximum length of the additionalDescription field is 210 characters.
- TreasuryTransfer must be in GEL and must include a 9-digit treasuryCode.
- For the TransferToOtherBankForeignCurrency type, beneficiary details and chargeDetails are required; allowed values are SHA and OUR.
Test Scenarios
Scenario 1: TransferToOwnAccount - transfer between own accounts
POST /bab/v1/transfers/single
{
"singleTransferOrders": [
{
"transferType": "TransferToOwnAccount",
"transferExternalId": "12345",
"documentNumber": 10001,
"position": 1,
"debitAccount": {
"accountNumber": "GE29TB7777777777777777",
"accountCurrencyCode": "GEL"
},
"amount": {
"amount": 3.45,
"currency": "GEL"
},
"description": "Own account transfer",
"additionalDescription": "Test transfer",
"creditAccount": {
"accountNumber": "GE29TB9999999999999999",
"accountCurrencyCode": "GEL"
}
}
]
}
{
"singleTransferResults": [
{
"position": 1,
"transferId": 19827
}
]
}
Scenario 2: TransferWithinBank - create a single transfer
POST /bab/v1/transfers/single
{
"singleTransferOrders": [
{
"transferType": "TransferWithinBank",
"transferExternalId": "12345",
"documentNumber": 10001,
"position": 1,
"debitAccount": {
"accountNumber": "GE29TB7777777777777777",
"accountCurrencyCode": "GEL"
},
"amount": {
"amount": 3.45,
"currency": "GEL"
},
"description": "Transfer Within Bank",
"additionalDescription": "Test transfer",
"creditAccount": {
"accountNumber": "GE29TB9999999999999999",
"accountCurrencyCode": "GEL"
}
}
]
}
{
"singleTransferResults": [
{
"position": 1,
"transferId": 19806
}
]
}
Scenario 3: TreasuryTransfer - treasury transfer
POST /bab/v1/transfers/single
{
"singleTransferOrders": [
{
"transferType": "TreasuryTransfer",
"transferExternalId": "12345”,
"documentNumber": 10001,
"position": 1,
"debitAccount": {
"accountNumber": "GE29TB7777777777777777",
"accountCurrencyCode": "GEL"
},
"amount": {
"amount": 1,
"currency": "GEL"
},
"description": "Treasury payment",
"additionalDescription": "Test treasury transfer",
"treasuryCode": "101001000"
}
]
}
{
"singleTransferResults": [
{
"position": 1,
"transferId": 19808
}
]
}
Scenario 4: TreasuryTransfer - treasury transfer with taxpayer details
POST /bab/v1/transfers/single
{
"singleTransferOrders": [
{
"transferType": "TreasuryTransfer",
“transferExternalId": "12345”,
"documentNumber": 10001,
"position": 1,
"debitAccount": {
"accountNumber": "GE29TB7777777777777777",
"accountCurrencyCode": "GEL"
},
"amount": {
"amount": 1,
"currency": "GEL"
},
"description": "Treasury payment",
"additionalDescription": "Test treasury transfer",
"taxpayerCode": "123456789",
"taxpayerName": "Name Surname",
"treasuryCode": "101001000"
}
]
}
{
"singleTransferResults": [
{
"position": 1,
"transferId": 19811
}
]
}
Scenario 5: TransferToOtherBankNationalCurrency - GEL transfer to another bank
POST /bab/v1/transfers/single
{
"singleTransferOrders": [
{
"transferType": "TransferToOtherBankNationalCurrency",
“transferExternalId": "12345”,
"documentNumber": 10002,
"position": 1,
"debitAccount": {
"accountNumber": "GE29TB7777777777777777",
"accountCurrencyCode": "GEL"
},
"amount": {
"amount": 100,
"currency": "GEL"
},
"description": "National currency transfer",
"additionalDescription": "Test transfer to other bank",
"creditAccount": {
"accountNumber": "GE90BG0000000589021505",
"accountCurrencyCode": "GEL"
},
"beneficiaryName": "Test Beneficiary",
"beneficiaryTaxCode": "12345678901"
}
]
}
{
"singleTransferResults": [
{
"position": 1,
"transferId": 19801
}
]
}
Scenario 6: TransferToOtherBankForeignCurrency - foreign currency transfer to another bank
POST /bab/v1/transfers/single
{
"singleTransferOrders": [
{
"transferType": "TransferToOtherBankForeignCurrency",
“transferExternalId": "12345”,
"debitAccount": {
"accountNumber": "GE29TB7777777777777777",
"accountCurrencyCode": "EUR"
},
"documentNumber": 0,
"amount": {
"amount": 1,
"currency": "EUR"
},
"position": 1,
"description": "Test transfer",
"additionalDescription": "Postman test",
"creditAccount": {
"accountNumber": "CZ6508000000192000145399",
"accountCurrencyCode": "EUR"
},
"beneficiaryName": "Beneficiary Name",
"beneficiaryAddress": "Beneficiary Address",
"beneficiaryBankCode": "0800",
"beneficiaryBankName": "Czech Bank",
"intermediaryBankCode": "string",
"intermediaryBankName": "string",
"chargeDetails": "SHA"
}
]
}
{
"singleTransferResults": [
{
"position": 1,
"transferId": 19802
}
]
}
Scenario 7: Create a batch transfer
POST /bab/v1/transfers/batch
{
"batchTransferExternalId": "12345",
"batchName": "Name",
"debitAccount": {
"accountNumber": "GE29TB7777777777777777",
"accountCurrencyCode": "GEL"
},
"transferOrders": [
{
"transferType": "TransferWithinBank",
"documentNumber": 1,
"position": 1,
"amount": {
"amount": 1,
"currency": "GEL"
},
"description": "transfer within bank",
"additionalDescription": "string",
"beneficiaryName": "Name",
"creditAccount": {
"accountNumber": "GE44TB0600051509630891",
"accountCurrencyCode": "GEL"
}
},
{
"transferType": "TransferToOwnAccount",
"documentNumber": 2,
"position": 2,
"amount": {
"amount": 2,
"currency": "GEL"
},
"description": "transfer to own account",
"additionalDescription": "string",
"creditAccount": {
"accountNumber": "GE41TB7849963286076183",
"accountCurrencyCode": "GEL"
}
},
{
"transferType": "TransferToOtherBankNationalCurrency",
"documentNumber": 3,
"position": 3,
"amount": {
"amount": 30,
"currency": "GEL"
},
"description": "transfer to other bank",
"additionalDescription": "string",
"beneficiaryName": "Other Bank Beneficiary",
"beneficiaryTaxCode": "123456789",
"beneficiaryBankCode": "TB",
"beneficiaryBankName": "TBC Bank",
"creditAccount": {
"accountNumber": "GE90BG0000000589021505",
"accountCurrencyCode": "GEL"
}
}
]
}
{
"batchTransferId": 3364
}
Scenario 8: Get single transfer status
GET /bab/v1/transfers/single/19806/status
➡️201 OK: returns the overall status and singleTransferData
Scenario 9: Get batch transfer status
GET /bab/v1/transfers/batch/3364/status
➡️201 OK: returns the overall status and batchTransferData
Scenario 10: Get single transferId by transferExternalId
GET /bab/v1/transfers/single/12345
➡️201 OK: returns transferId
Scenario 11: Get batchId by batchTransferExternalId
GET /bab/v1/transfers/batch/12345
➡️201 OK: returns batchId
