This API will create a request to initiate a RAKMoneyTransfer from a RAKBANK account to a beneficiary. The debit account will depend on the type of the customer initiating the request:
- a pre-paid card customer of the partner, where the pre-paid card bin is sponsored by RAKBANK. In this case, from.customer_id_type in the request body must be set as "Emirates_ID". An internal suspense account associated with the card bin would be debited to make the transfer.
- an IBAN customer of the partner, where the IBAN is linked to an account in RAKBANK. In this case, from.customer_id_type in the request body must be set as "Account_ID". The customer's account is debited to make the transfer.
Pre-register the beneficiary using the Partner Beneficiary Management API and pass only the beneficiary Id of the selected beneficiary to this API. The payment reference Id will be returned in the response for a successful payment request initiation. The GET method allows to fetch the details and the status of the transaction.
Version 2.1.0
- Added new 422 response_code - 20006, in CreateTransactionById response
Version 2.2.0
- Added property "card_bin" inside "from". This field is required in case of prepaid card customers to identify the internal suspense account associated with the prepaid card bin. It is optional when the partner has a single card bin.
- from.customer_id_type also accepts value as "Account_ID" to support IBAN customers of the partner.
- Added Read-only properties "total_credit_amount", "credit_currency_code", "total_debit_amount" and "debit_currency_code" that would be returned in the response.
Version 2.3.0
- Allowing retry based on same transaction_id. In case of API timeout or 500 errors, you may retry upto 3 times with a minimum interval of 60 seconds between every retry. Please ensure to pass the same transaction_id in the path for retry requests. If the previous transaction with the same transaction_id 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.
Version 2.4.0
- Added new field "cash_pickup_point" in response, This field displays the cash collection center for the particular transfer
- Added new field "cash_pickup_pin" in response, This field displays pin no used to collect cash
Attachment | Size |
---|---|
![]() | 2.12 KB |
FAQs
Click Here for FAQs
Response Codes
Click Here for API Response Codes
Reference Data
Click Here for API Reference Data
Basepath
/v2
Paths
/transactions/{transaction_id}
Create Transaction Request
Creates a transaction to initiate payment from a RAKBank account to the customer's beneficiary. A payment request is created and a payment ref Id and charges are returned in the response.
Unique transaction ID that is generated by the client. The transaction_id used to create the payment transaction. Value must not repeat, atleast for a period of six months. Please ensure to pass the same transaction_id in the path for retry requests.
{
"maxLength": 20
}
Unique Id sent by client. Value should be a unique identifier of the request in UUID format.
{
"maxLength": 50
}
Request details to create a payment transaction.
Get Transaction details by passing the transaction_id.
Unique transaction ID that is generated by the client. The transaction_id used to create the payment transaction. Value must not repeat, atleast for a period of six months. Please ensure to pass the same transaction_id in the path for retry requests.
{
"maxLength": 20
}
Unique Id sent by client. Value should be a unique identifier of the request in UUID format.
{
"maxLength": 50
}
Transaction Request Type. Allowed values are 'RAKMoney'
{
"enum": [
"RAKMoney"
]
}
Definitions
{
"properties": {
"href": {
"type": "string",
"example": "https://testapi.rakbank.ae/rb/api/v2/transactions/{transaction_id}",
"description": "Read only field. href value to fetch the resource with the specific transaction_id."
},
"transaction_id": {
"type": "string",
"maxLength": 20,
"description": "Read only field. The client's unique id for the transaction.",
"example": "58215225"
},
"payment_ref_id": {
"type": "string",
"maxLength": 25,
"description": "Read only field. The bank's unique id for the transaction. Returned in the response.",
"example": "14091746202"
},
"start_date": {
"type": "string",
"description": "Read only field. Date when the transaction is submitted. Returned in the response.",
"example": "2017-09-14",
"format": "date"
},
"end_date": {
"type": "string",
"description": "Read only field. Date when the transaction is executed. Returned in the response.",
"example": "2017-09-14",
"format": "date"
},
"status": {
"type": "string",
"maxLength": 5,
"description": "Read only field. Status of the transaction request is returned in the response. | - S = Success. - F = Failure. - P = Processing. , - REJ = HighValue/AML Rejection.",
"example": "S"
},
"status_desc": {
"type": "string",
"maxLength": 254,
"description": "Read only field. Description of the transaction status that is returned in the response.",
"example": "Success"
},
"transaction_type": {
"type": "string",
"enum": [
"RAKMoney"
],
"minLength": 1,
"maxLength": 20,
"description": "Transaction Request Type. Select 'RAKMoney' - in case of RAK Money Transfer",
"example": "RAKMoney"
},
"from": {
"$ref": "#/definitions/from"
},
"to": {
"$ref": "#/definitions/to"
},
"value": {
"$ref": "#/definitions/value"
},
"charges": {
"$ref": "#/definitions/charges",
"description": "Read only field. Charge details are returned in the response."
},
"purpose_code": {
"type": "string",
"minLength": 1,
"maxLength": 20,
"description": "Code for the Purpose of the remittance. Should be among the allowed values provided in the Master data.",
"example": "8"
},
"total_credit_amount": {
"type": "string",
"minLength": 0,
"maxLength": 20,
"description": "Read only field. Total amount that will be transferred to the beneficiary account. Returned in the response.",
"example": "50000.00"
},
"credit_currency_code": {
"type": "string",
"minLength": 1,
"maxLength": 3,
"description": "Read only field. Currency code of the total_credit_amount. Returned in the response.",
"example": "AED"
},
"total_debit_amount": {
"type": "string",
"minLength": 0,
"maxLength": 20,
"description": "Read only field. Total amount that will be debited from the customer account. Returned in the response.",
"example": "2020.00"
},
"debit_currency_code": {
"type": "string",
"minLength": 1,
"maxLength": 3,
"description": "Read only field. Currency code of the total_debit_amount. Returned in the response.",
"example": "AED"
},
"cash_pickup_point": {
"type": "string",
"minLength": 0,
"maxLength": 150,
"description": "Read only field. This displays the cash collection center for the particular transfer. Returned in the response."
},
"cash_pickup_pin": {
"type": "string",
"minLength": 0,
"maxLength": 50,
"description": "Read only field. This displays pin no used to collect cash. Returned in the response."
}
},
"example": {
"transaction_type": "RAKMoney",
"from": {
"customer_id_type": "Emirates_ID",
"customer_id": "123456789234587"
},
"to": {
"beneficiary_id": "101603780046613"
},
"value": {
"currency": "AED",
"amount": "2008"
},
"purpose_code": "8"
},
"additionalProperties": false,
"required": [
"from",
"to",
"value",
"transaction_type",
"purpose_code"
]
}
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"
]
}
This will contain the details of the beneficiary.
{
"properties": {
"href": {
"type": "string",
"example": "https://testapi.rakbank.ae/ra/api/v2/customers/{customer_id_type}:{customer_id}/beneficiaries/{beneficiary_id}",
"description": "Read only field. href value to fetch the resource with a specific beneficiary_id for a registered beneficiary. Returned in the response."
},
"beneficiary_id": {
"type": "string",
"minLength": 1,
"maxLength": 15,
"example": "100001234500001",
"description": "Beneficiary id of a registered beneficiary. Mandatory in the request for transaction_type=RAKMoney."
}
},
"additionalProperties": false,
"required": [
"beneficiary_id"
]
}
This will contain the details of the remitter
{
"properties": {
"customer_id_type": {
"type": "string",
"enum": [
"Emirates_ID",
"Account_ID"
],
"description": "Type of the Customer id of the customer who initiates the transaction. Allowed values: 'Emirates_ID' - for pre paid card customers, 'Account_ID' - for RAKBANK account holding customers",
"example": "Emirates_ID"
},
"customer_id": {
"type": "string",
"minLength": 1,
"maxLength": 20,
"example": "784198368135210",
"description": "Customer id of the customer, corresponding to the customer_id_type, who initiates the transaction. Only MASKED value to be passed. Masked value should be passed in the UAT and Production environments. For information on the masking logic to be followed, see Masking Logic"
},
"card_bin": {
"type": "string",
"minLength": 1,
"maxLength": 6,
"example": "451002",
"description": "Card bin i.e. First 6 digits of the customer's card, who initiates the transaction. This is required only when customer initating the transaction is a pre-paid card customer i.e. when customer_id_type is Emirates_ID and when more than one card bins are supported for the client. This will be used to identify the Debit account for the transaction. "
}
},
"additionalProperties": false,
"required": [
"customer_id",
"customer_id_type"
]
}
Read only field. Charge details are returned in the response.
{
"additionalProperties": false,
"properties": {
"discount": {
"type": "string",
"maxLength": 20,
"description": "Discount applied on the charges"
},
"tax": {
"type": "string",
"maxLength": 20,
"description": "Tax levied for the transaction"
},
"currency": {
"type": "string",
"minLength": 1,
"maxLength": 3,
"description": "Currency code of the charges",
"example": "AED"
},
"amount": {
"type": "string",
"minLength": 1,
"maxLength": 20,
"description": "Charges amount",
"example": "50.00"
},
"total": {
"type": "string",
"maxLength": 20,
"description": "Total Charges amount applied for the transaction"
}
},
"required": [
"amount",
"total",
"currency"
]
}
Transaction amount details
{
"properties": {
"currency": {
"type": "string",
"minLength": 1,
"maxLength": 3,
"description": "Currency code. Allowed values: \"AED\" or a supported currency code corresponding to the beneficiary's bank country code and transfer type.",
"example": "AED"
},
"amount": {
"type": "string",
"minLength": 1,
"maxLength": 20,
"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})?)$",
"description": "Amount Value. Decimal(16,3) values allowed.",
"example": 2001
}
},
"additionalProperties": false,
"required": [
"currency",
"amount"
]
}