This API allows the client to transfer funds between RAKBANK accounts. Debit a single RAKBANK account and credit one or multiple RAKBANK Accounts. The total amount debited and credited should be matched.
Version 1.0.1
- Added property "parent_req_id" that needs to be additionally passed in case of reversal of the original request.
Version 1.1.0
- Allowing retry based on same tran_ref_num. In case of timeout or 500 errors, you may retry upto 3 times with an interval of 60 seconds between every retry. Please ensure to pass the same tran_ref_num in the path for retry requests. If the previous transaction with the same tran_ref_num was posted successfully, then the previous response would be echoed for the retries. If the previous transaction was unsuccessful, then the system will try to reprocess the transaction.
<h3>OAuth Metadata details</h3> OAuth metadata parameter to be passed at the time of generating access token using <a href="/partner-authentication">Partner Authentication API</a> for client credential grant type is mentioned below. For information on OAuth Metadata, see <a href="/security/#oauth-metadata-partnerauth">About the OAuth Metadata</a> <p class="oauth_metadata">oauth_metadata.account_id : {account_id}</p>
Attachment | Size |
---|---|
![]() | 4.28 KB |
OAuth Metadata details
OAuth metadata parameter to be passed at the time of generating access token using Partner Authentication API for client credential grant type is mentioned below. For information on OAuth Metadata, see About the OAuth Metadata
oauth_metadata.account_id : {account_id}
FAQs
Click Here for FAQs
Response Codes
Click Here for API Response Codes
Reference Data
Click Here for API Reference Data
Basepath
/v1
Paths
/internal_transfers/{tran_ref_num}
Create Internal Transfer
Creates an internal fund transfer between RAKBANK accounts. Client needs to ensure that the total credit and debit amounts are balanced across the part_transactions for creating a success transfer. The payment_ref_id and transaction date are returned in the response.
Unique Id sent by client. Value should be a unique identifier of the request in UUID format.
{
"maxLength": 50
}
Unique transaction reference number that is generated by the client. Value must not repeat atleast for a period of six months. Ensure to pass same tran_ref_num in case of retry.
{
"maxLength": 20
}
Request details to create an internal fund transfer.
201 Created
Error
Internal Server Error
Definitions
Details of the Internal Transfer
{
"properties": {
"tran_ref_num": {
"type": "string",
"minLength": 1,
"maxLength": 20,
"description": "Read only field. The client's unique id for the transaction.",
"example": "12345678900987654345"
},
"parent_req_id": {
"type": "string",
"minLength": 1,
"maxLength": 50,
"description": "Required only for Reversals. The header 'MsgId' of the original request that needs to be reversed.",
"example": "4546465465"
},
"part_transactions": {
"description": "Array of Part Transactions",
"type": "array",
"items": {
"$ref": "#/definitions/part_transactions"
}
}
},
"additionalProperties": false,
"required": [
"part_transactions"
]
}
Response object.
{
"properties": {
"tran_ref_num": {
"type": "string",
"minLength": 1,
"maxLength": 20,
"description": "The client's unique id for the transaction.",
"example": "12345678900987654345"
},
"payment_ref_id": {
"type": "string",
"minLength": 1,
"maxLength": 9,
"description": "The bank's unique id for the transaction.",
"example": "M123"
},
"transaction_date": {
"type": "string",
"description": "Date when the transaction is created.",
"example": "2018-09-14",
"format": "date"
}
},
"additionalProperties": false,
"required": [
"tran_ref_num",
"payment_ref_id",
"transaction_date"
]
}
Response in case of error
{
"properties": {
"status": {
"type": "string",
"description": "HTTP Status"
},
"response_code": {
"type": "string",
"description": "API specific error code"
},
"property": {
"type": "string"
},
"response_message": {
"type": "string",
"description": "brief type of the error",
"example": ""
},
"description": {
"type": "string",
"description": "detailed description of the error"
}
},
"additionalProperties": false,
"required": [
"response_code",
"status",
"response_message"
]
}
Array of Part Transactions
{
"properties": {
"part_transaction_type": {
"type": "string",
"enum": [
"C",
"D"
],
"description": "Debit/Credit Indicator of the part transaction. Allowed values are C - Credit, D - Debit.",
"example": "C"
},
"account_id": {
"type": "string",
"minLength": 1,
"maxLength": 16,
"example": "1234xxxxxx567",
"description": "Debit or Credit Account id. Debit Account id should be passed as masked value in the UAT and Production environments. For information on the masking logic to be followed, see Masking Logic"
},
"value": {
"$ref": "#/definitions/value"
},
"value_date": {
"type": "string",
"description": "Value Date of the transaction.",
"example": "2019-01-30T11:10:12Z",
"format": "date-time"
},
"transaction_narration": {
"$ref": "#/definitions/transaction_narration"
},
"rate": {
"type": "string",
"description": "Forex rate applicable for the transaction. This is mandatory for non-AED transactions when rate_code is not MID. The rate can be fetched using FxRate & Charges API."
},
"rate_code": {
"type": "string",
"enum": [
"TTS",
"TTB",
"MID"
],
"description": "Forex rate code applicable for the transaction. Possible values: TTS,TTB,MID. This is mandatory for non-AED transactions. The rate code can be fetched using FxRate & Charges API."
}
},
"additionalProperties": false,
"required": [
"part_transaction_type",
"account_id",
"value",
"value_date",
"transaction_narration"
]
}
Transaction Narrations to appear in the account statement for this transaction.
{
"additionalProperties": false,
"properties": {
"transaction_code": {
"type": "string",
"minLength": 1,
"maxLength": 5,
"description": "Transaction particular Code. This will differ based on the type of transaction. First line of the transaction narration will be the description related to this code.",
"example": "520"
},
"transaction_particular2": {
"type": "string",
"minLength": 1,
"maxLength": 50,
"description": "Second line of the transaction narration.",
"example": "WALLET RECHARGE"
},
"transaction_particulars": {
"type": "string",
"maxLength": 30,
"description": "Third line of the transaction narration",
"example": "2019-02-06 06:34:11.785"
},
"transaction_remarks": {
"type": "string",
"minLength": 1,
"maxLength": 30,
"description": "Second line of the narration. If sent, transaction_particular2 will be ignored.",
"example": "for 1234567890123"
}
},
"required": [
"transaction_code"
]
}
Transaction amount details
{
"properties": {
"currency": {
"type": "string",
"minLength": 1,
"maxLength": 3,
"description": "Currency",
"example": "AED"
},
"amount": {
"type": "string",
"pattern": "^((\\d{1}|\\d{2}|\\d{3}|\\d{4}|\\d{5}|\\d{6}|\\d{7}|\\d{8}|\\d{9}|\\d{10}|\\d{11}|\\d{12}|\\d{13}|\\d{14}|\\d{15}|\\d{16})?\\.?(\\d{1}|\\d{2}|\\d{3})?)$",
"minLength": 1,
"maxLength": 20,
"description": "Amount Value",
"example": 2001
}
},
"additionalProperties": false,
"required": [
"currency",
"amount"
]
}