Executing a domestic Transfer Flow in Great Britain
When initiating a domestic transfer in Great Britain through the transfer flow several pieces of information have to be specified in the payload.
If the session in which the transfer flow is started is connected to a bank account that is not located in Great Britain the transfer flow will fail.
Starting a transfer flow with the transfer_method
set to gb_domestic
will force the customer to select a Bank capable of performing gb_domestic
-transfers.
Undocumented Fields follow the documentation for SEPA Transfers. Fields not listed in the defined schema are not available for this type of transfer and will be ignored by the API.
{
"iban": ?String,
"account_id": ?String,
"account_number": ?String,
"national_branch_code": ?String,
"allowed_accounts": ?AllowedAccounts,
"amount": Amount,
"reference": String,
"merchant_category_code": ?String,
"purpose_code": ?String,
"transfer_method": "gb_domestic",
"to": {
"iban": ?String,
"holder_name": String,
"account_number": ?String,
"national_branch_code": ?String,
}
}
The reference is restricted to a length of 18 characters and can only contain a small subset of characters.
Unsupported characters will be stripped away by the XS2A API before submitting the transfer.
The transfer_method
property sets the type of the transfer being made. For domestic transfers in Great Britain it is always gb_domestic
.
Response Structure of a successful Transfer Flow
{
"data": {
"state": Enum<'PROCESSING', 'CONSUMER_INPUT_NEEDED', 'ABORTED', 'EXCEPTION', 'FINISHED'>,
"result": ?{
"type": String,
"adjusted_date": ?String,
"adjusted_reference": ?String,
"adjusted_merchant_category_code": ?String,
"adjusted_purpose_code": ?String,
"bank_transfer_id": ?String,
"transfer_id": String,
"transfer_token": ?String,
"amount": Amount,
"transfer_state": Enum<'AUTHORIZED', 'COMPLETED_DEBTOR', 'COMPLETED_CREDITOR'>,
"bank_transfer_state": ?String,
"from": ?Account,
"to": {
"iban": ?String,
"holder_name": ?String,
"account_number": ?String,
"national_branch_code": ?String,
},
"to_fee": ?Amount,
"transfer_method": Enum<'GB_DOMESTIC'>,
"authentication_method": Enum<'UNKNOWN'>
}
}
}
The national branch code of the recipient's bank.
The authentication_method
property indicates which authentication method was used for the transfer.
A full list of all available authentication_method
s and their description can be found in the documentation for SEPA Transfer, but for domestic transfers in Great Britain the most common one is UNKNOWN
due to the heavy use of redirects.
Example Response for a successful Transfer Flow
{
"data": {
"state": "FINISHED",
"result": {
"type": "transfer",
"adjusted_date": "2018-10-30",
"adjusted_reference": "reference accepted by bank",
"adjusted_merchant_category_code": "5967",
"adjusted_purpose_code": "BONU",
"bank_transfer_id": "internal_bank_identifier-123",
"transfer_id": "jlufj5a5u6d0i37ur3uh9fvfgpvp6et7",
"transfer_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0cmFuc2Zlcl90b2tlbiI6InRyYW5zZmVyMTIzNDU2Nzg5MCJ9.YcdKaz2hRyW1wPqH8bYka4EF7dVkferaNexzk7PfHnQ",
"amount": {
"amount": 1234,
"currency": "GBP"
},
"transfer_state": "AUTHORIZED",
"from": {
"id": "123e4567-e89b-12d3-a456-426655440000",
"alias": "Checking Account",
"account_number": "43833164",
"iban": "GB05BARC20031843833164",
"holder_name": "John Doe",
"holder_address": {
"street_address": "Worcester Rd 137",
"street_address2": "Backside of the House, Floor 2",
"postalcode": "WR7 4NP",
"city": "Upton Snodsbury",
"region": "Worcester",
"country": "GB"
},
"bank_code": "200318",
"bic": "BARCGB210AR",
"bank_name": "Barclays Bank Plc",
"bank_address": {
"street_address": "1 Churchill Place",
"street_address2": "",
"postalcode": "E14 5HP",
"city": "London",
"country": "GB"
},
"transfer_type": "FULL",
"account_type": "DEFAULT",
"balance": {
"amount": 12345,
"currency": "GBP"
}
},
"to": {
"iban": "GB95BARC20040477697851",
"holder_name": "Jane Doe",
"account_number": "77697851",
"national_branch_code": "2000404"
},
"to_fee": {
"amount": 12345,
"currency": "GBP"
},
"transfer_method": "GB_DOMESTIC",
"authentication_method": "UNKNOWN"
}
}
}