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.

MethodEndpointPurpose
POST/bab/v1/transfers/singleImport single transfer orders
POST/bab/v1/transfers/batchImport a batch transfer order
GET/bab/v1/transfers/single/{transferId}/statusGet single transfer status
GET/bab/v1/transfers/batch/{batchId}/statusGet 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 NumberCurrency
GE29TB7777777777777777GEL / USD / EUR
GE29TB9999999999999999GEL / 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.
  • If one or more single transfer orders fail validation, the entire request will not be rejected. Only the invalid transfer orders will be rejected, while all valid transfer orders will continue to be processed.
  • 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"
      }
    }
  ]
}
{
    "succeeded": [
        {
            "position": 1,
            "transferId": 19827
        }
    ],
    "failed": []
}

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"
      }
    }
  ]
}
{
    "succeeded": [
        {
            "position": 1,
            "transferId": 19806
        }
    ],
    "failed": []
}

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"
    }
  ]
}
{
    "succeeded": [
        {
            "position": 1,
            "transferId": 19808
        }
    ],
    "failed": []
}

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"
    }
  ]
}
{
    "succeeded": [
        {
            "position": 1,
            "transferId": 19811
        }
    ],
    "failed": []
}

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"
    }
  ]
}
{
    "succeeded": [
        {
            "position": 1,
            "transferId": 19801
        }
    ],
    "failed": []
}

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"
    }
  ]
}
{
    "succeeded": [
        {
            "position": 1,
            "transferId": 19802
        }
    ],
    "failed": []
}

Scenario 7: SingleTransferOrders - multiple single transfer orders

POST /bab/v1/transfers/single

{
    "singleTransferOrders": [
        {
            "transferType": "TransferWithinBank",
            "transferExternalId": "269011",
            "documentNumber": 10001,
            "position": 1,
            "debitAccount": {
                "accountNumber": "GE29TB7777777777777777",
                "accountCurrencyCode": "GEL"
            },
            "amount": {
                "amount": 10,
                "currency": "GEL"
            },
            "description": "Transfer Within Bank",
            "additionalDescription": "Test transfer",
            "creditAccount": {
                "accountNumber": "GE29TB9999999999999999",
                "accountCurrencyCode": "GEL"
            }
        },
        {
            "transferType": "TransferToOwnAccount",
            "transferExternalId": "606905",
            "documentNumber": 10001,
            "position": 2,
            "debitAccount": {
                "accountNumber": "GE29TB7777777777777777",
                "accountCurrencyCode": "GEL"
            },
            "amount": {
                "amount": 20,
                "currency": "GEL"
            },
            "description": "Transfer To Own Account",
            "additionalDescription": "Test transfer",
            "creditAccount": {
                "accountNumber": "GE29TB9999999999999999",
                "accountCurrencyCode": "GEL"
            }
        },
        {
            "transferType": "TransferToOtherBankNationalCurrency",
            "transferexternalId": "209511",
            "documentNumber": 10002,
            "position": 3,
            "debitAccount": {
                "accountNumber": "GE29TB7777777777777777",
                "accountCurrencyCode": "GEL"
            },
            "amount": {
                "amount": 30,
                "currency": "GEL"
            },
            "description": "National currency transfer",
            "additionalDescription": "Test transfer to other bank",
            "creditAccount": {
                "accountNumber": "GE29TB9999999999999999",
                "accountCurrencyCode": "GEL"
            },
            "beneficiaryName": "Test Beneficiary",
            "beneficiaryTaxCode": "12345678901"
        }
    ]
}
{
    "succeeded": [
        {
            "position": 1,
            "transferId": 19802
        },
        {
            "position": 2,
            "transferId": 19803
        },
        {
            "position": 3,
            "transferId": 19804
        },
        {
            "position": 4,
            "transferId": 19805
        }
    ],
    "failed": []
}

Scenario 8: 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 9: Get single transfer status

GET /bab/v1/transfers/single/19806/status

➡️201 OK: returns the overall status and singleTransferData

Scenario 10: Get batch transfer status

GET /bab/v1/transfers/batch/3364/status

➡️201 OK: returns the overall status and batchTransferData

Scenario 11: Get single transferId by transferExternalId

GET /bab/v1/transfers/single/12345

➡️201 OK: returns transferId

Scenario 12: Get batchId by batchTransferExternalId

GET /bab/v1/transfers/batch/12345

➡️201 OK: returns batchId


Did this page help you?