( ! ) Warning: Declaration of Jetpack_IXR_Client::query() should be compatible with IXR_Client::query(...$args) in C:\wamp64_2\www\docbase\wp-content\plugins\jetpack\class.jetpack-ixr-client.php on line 0
( ! ) Warning: Cannot modify header information - headers already sent by (output started at C:\wamp64_2\www\docbase\wp-content\plugins\jetpack\class.jetpack-ixr-client.php:0) in C:\wamp64_2\www\docbase\wp-includes\rest-api\class-wp-rest-server.php on line 1762
( ! ) Warning: Cannot modify header information - headers already sent by (output started at C:\wamp64_2\www\docbase\wp-content\plugins\jetpack\class.jetpack-ixr-client.php:0) in C:\wamp64_2\www\docbase\wp-includes\rest-api\class-wp-rest-server.php on line 1762
( ! ) Warning: Cannot modify header information - headers already sent by (output started at C:\wamp64_2\www\docbase\wp-content\plugins\jetpack\class.jetpack-ixr-client.php:0) in C:\wamp64_2\www\docbase\wp-includes\rest-api\class-wp-rest-server.php on line 1762
( ! ) Warning: Cannot modify header information - headers already sent by (output started at C:\wamp64_2\www\docbase\wp-content\plugins\jetpack\class.jetpack-ixr-client.php:0) in C:\wamp64_2\www\docbase\wp-includes\rest-api\class-wp-rest-server.php on line 1762
( ! ) Warning: Cannot modify header information - headers already sent by (output started at C:\wamp64_2\www\docbase\wp-content\plugins\jetpack\class.jetpack-ixr-client.php:0) in C:\wamp64_2\www\docbase\wp-includes\rest-api\class-wp-rest-server.php on line 1762
( ! ) Warning: Cannot modify header information - headers already sent by (output started at C:\wamp64_2\www\docbase\wp-content\plugins\jetpack\class.jetpack-ixr-client.php:0) in C:\wamp64_2\www\docbase\wp-includes\rest-api\class-wp-rest-server.php on line 1762
( ! ) Warning: Cannot modify header information - headers already sent by (output started at C:\wamp64_2\www\docbase\wp-content\plugins\jetpack\class.jetpack-ixr-client.php:0) in C:\wamp64_2\www\docbase\wp-includes\rest-api\class-wp-rest-server.php on line 1762
( ! ) Warning: Cannot modify header information - headers already sent by (output started at C:\wamp64_2\www\docbase\wp-content\plugins\jetpack\class.jetpack-ixr-client.php:0) in C:\wamp64_2\www\docbase\wp-includes\rest-api\class-wp-rest-server.php on line 1762
{"id":4144,"date":"2021-11-04T16:22:31","date_gmt":"2021-11-04T16:22:31","guid":{"rendered":"http:\/\/sandbox.interswitchng.com\/docbase\/docs\/transfer-service-core-api-document\/bank-confirmation-model-api\/"},"modified":"2024-10-04T11:44:48","modified_gmt":"2024-10-04T11:44:48","slug":"bank-confirmation-model-api","status":"publish","type":"docs","link":"https:\/\/sandbox.interswitchng.com\/docbase\/docs\/transfer-service-core-api-document\/bank-confirmation-model-api\/","title":{"rendered":"Bank Confirmation Model API"},"content":{"rendered":"\n
Introduction<\/h2>\n\n\n\n
The Interswitch Transfer Service is an initiative for transfers to drive the highest possible success rates in the direct to account categories. The APIs required to be implemented by each participating bank are described in this document.<\/p>\n\n\n\n
Server Specification<\/h2>\n\n\n\n
Servers, are to be load balanced, and should speak directly to the Core Banking Application.<\/p>\n\n\n\n
API Specification<\/h2>\n\n\n\n
The APIs are recommended to be in restful format that supports json data format.<\/p>\n\n\n\n
BANK API(s)<\/h2>\n\n\n\n
Account Validation & Name Lookup API<\/h3>\n\n\n\n
The account validation and name lookup apis are used to perform the following<\/p>\n\n\n\n
1. That the account exists. 2. That the account is active. 3. That the account can receive the funds intended to be transferred (E.g A child savings account may not be able to receive certain amount of funds) 4. In the case of a zero-amount validation, checking that the account exists and is active will suffice.<\/p>\n\n\n\n
Request Message description<\/h4>\n\n\n\n
Field#<\/th>
Field name<\/th>
Data type<\/th>
Required<\/th>
Description<\/th><\/tr><\/thead>
1<\/td>
accountNumber<\/td>
String<\/td>
Required<\/td>
Beneficiary account number<\/td><\/tr>
2<\/td>
transactionAmount<\/td>
Long (Minor denomination e.g kobo for Naira currency) Can also be a zero amount.<\/td>
Required<\/td>
This is the value of funds intended to be transferred. The purpose of this field is allow the bank do additional checks if the funds can be received by the beneficiary. For example, if customer x cannot receive this amount, canCredit<\/strong> should be false in the response body.<\/td><\/tr>
3<\/td>
currencyCode<\/td>
String<\/td>
Required<\/td>
Currency code of the transaction. This is the ISO currency code. e.g NGN for naira.<\/td><\/tr>
4<\/td>
transactionReference<\/td>
String<\/td>
Required<\/td>
Unique transaction reference generated by Transfer Service and will be used throughout the entire life of the transaction. This is the transaction reference that would be used to complete the funds transfer instruction. There should be no duplicate check on the transactionReference. Each request with the same transaction reference should do a new account validation and return the response again<\/td><\/tr>
The TS transaction reference number sent in request<\/td><\/tr>
10<\/td>
processTime<\/td>
String<\/td>
Required<\/td>
Date the request was processed on the bank\u2019s end in dd-MM-yyyy HH:mm:ss format<\/td><\/tr>
11<\/td>
institutionReference<\/td>
String<\/td>
Optional<\/td>
Core Banking transaction reference for the account validation request<\/td><\/tr>
12<\/td>
bankVerificationNumber<\/td>
String<\/td>
Optional<\/td>
The BVN of the customer<\/td><\/tr>
13<\/td>
kycLevel<\/td>
String<\/td>
Optional<\/td>
The KYCLevel of the customer<\/td><\/tr>
14<\/td>
canCredit<\/td>
Boolean<\/td>
Required<\/td>
Account number and transaction amount are validated real-time to ascertain that the account can be credited.Validation checks to set this value include account credit limits, dormancy or inactiveness. (including other checks specific to your bank)<\/td><\/tr>
15<\/td>
canDebit<\/td>
Boolean<\/td>
Optional<\/td>
Account number and transaction amount are validated real-time to ascertain that the account can be debitted.Validation checks to set this value include account debit limits, account balance, minimum balance, dormancy or inactiveness. (including other checks specific to your bank)<\/td><\/tr>
16<\/td>
action<\/td>
String<\/td>
Required<\/td>
Indicates status of inquiry could be SUCCESS or FAILURE<\/td><\/tr>
17<\/td>
institutionResponseCode<\/td>
String<\/td>
Required<\/td>
Response code from Institution CBA before mapping to TS Response Code<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n
Credit Instruction API (Funds Transfer Single Credit)<\/h3>\n\n\n\n
The credit instruction api will be used by the transfer service to credit any beneficiary within the bank.<\/p>\n\n\n\n
Request Message description<\/h4>\n\n\n\n
Field#<\/th>
Field name<\/th>
Data type<\/th>
Required<\/th>
Description<\/th><\/tr><\/thead>
1<\/td>
destinationAccountName<\/td>
String<\/td>
Required<\/td>
Beneficiary account name<\/td><\/tr>
2<\/td>
destinationAccountNumber<\/td>
String<\/td>
Required<\/td>
Beneficiary account number<\/td><\/tr>
3<\/td>
transactionAmount<\/td>
Long (Minor denomination)<\/td>
Required<\/td>
Amount to be credited to beneficiary<\/td><\/tr>
4<\/td>
narration<\/td>
String<\/td>
Required<\/td>
Transaction narration<\/td><\/tr>
5<\/td>
currencyCode<\/td>
String<\/td>
Required<\/td>
ISO currency code<\/td><\/tr>
6<\/td>
transactionReference<\/td>
String<\/td>
Required<\/td>
Unique transaction reference. Credit transaction should fail when reference is a duplicate<\/td><\/tr>
7<\/td>
channelCode<\/td>
String<\/td>
Required<\/td>
Channel code<\/td><\/tr>
8<\/td>
requestTime<\/td>
String<\/td>
Required<\/td>
dd-MM-yyyy HH:mm:ssFor the purpose of security, it is advised that this value is taken into consideration before onward processing of a request. <\/td><\/tr>
9<\/td>
Signature <\/td>
String<\/td>
Required<\/td>
HmacSHA1(nonce+accountName+accountNumber+transactionAmount+currencyCode+transRef+destinationInstitutionCode+channelCode)This request parameter is contained in the header of the request and is to be validated by the bank. The HMAC key is to be provided and verified by the bank for the UAT and Production environment.The Nonce and Algorithm values are also provided in the request header <\/td><\/tr>
10<\/td>
transactionLocation<\/td>
String<\/td>
Required<\/td>
Transaction Location<\/td><\/tr>
11<\/td>
additionalInfo <\/td>
String<\/td>
Optional<\/td>
Additional information pertaining to transaction.<\/td><\/tr>
12<\/td>
settlementAccount<\/td>
String<\/td>
Optional<\/td>
Sent in FX transactions. Helps the remote institution identify the TSS Account such transactions will be settled to<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n
The credit status confirmation API enables the bank query transactions sent by the transfer service for credit, before the beneficiary is credited<\/p>\n\n\n\n
Request Message description<\/h4>\n\n\n\n
Field#<\/th>
Field name<\/th>
Data type<\/th>
Required<\/th>
Description<\/th><\/tr><\/thead>
1<\/td>
transactionReference<\/td>
String<\/td>
Required<\/td>
Unique transaction reference generated by TS and used in the original request.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n
Endpoint<\/strong><\/p>\n\n\n\n
POST \/transfers\/transaction\/status<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n