---
swagger: "2.0"
info:
x-ibm-name: partner-external-bank-transfers-api
title: Partner External Bank Transfers API
version: 1.1.1
description: "This API is available to Partner Institutions to provide external
bank transfers including IPI, UAEFTS and SWIFT to their customers. Partner can
initiate an ad-hoc transfer from their customer's account to an external
bank account i.e. a non-RAKBANK account, by passing all details of the beneficiary
in the request. The API does not require the beneficiary to be pre-registered.
The Payment Reference Id will be returned in the response for a successful payment
request initiation. \nThe API should be invoked only before the daily cutoff time.
Any transfers requests initiated by the customer on the partner App/ Web application
after the cut-off time must be held at the client's side and posted at BOD
(Beginning Of Day) the next business day. There are also daily transaction limits
applicable for the API which needs to be enforced by the client on their App/
Web application. For information on applicable currency-wise cutoff & BOD
times and daily transaction limits, see <a href="/faq-page/#external-transfers">FAQ</a>.\n\nThe
API also allows to fetch the status of the previously created transaction.\n\n\tVersion
1.1.0\n\t\n - Added mandatory field customer_category and optional fields intermediary_bank_BIC,
intermediary_bank_name & remarks in the request.\n - Allowing retry based
on same transaction_id. 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 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.\n\n\t\t\n<h3>OAuth
Metadata details</h3>\nOAuth 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>\n<p class="oauth_metadata">oauth_metadata.account_id
: {account_id}</p>"
contact:
name: API Developer
email: apideveloper@rakbank.ae
name: ""
schemes:
- https
host: sandboxapi.rakbank.ae
basePath: /v1
consumes:
- application/json
produces:
- application/json
securityDefinitions:
oauth:
type: oauth2
description: ""
flow: application
scopes:
external_transfers: For creating a payment to an external account i.e. a non-RAKBank
account and to retrieve status of the payment request
tokenUrl: https://sandboxapi.rakbank.ae/sb/api/v1/partner_auth/token
clientIdHeader:
type: apiKey
in: header
name: X-IBM-Client-Id
security:
- clientIdHeader: []
oauth:
- external_transfers
x-ibm-configuration:
testable: true
enforced: true
phase: realized
paths:
/external_transfers/{transaction_id}:
put:
responses:
201:
description: 201 Created
schema:
$ref: '#/definitions/external_transfers_response'
422:
description: Error
schema:
$ref: '#/definitions/error_response'
500:
description: Internal Server Error
schema:
$ref: '#/definitions/error_response'
parameters:
- name: external_transfers
required: true
in: body
schema:
$ref: '#/definitions/external_transfers'
description: Request details to create a payment transaction.
description: Creates a transaction to initiate payment from a RAKBANK account
to an external bank account by providing details of the beneficiary. A payment
request is created and a payment ref Id and charges are returned in the response.
summary: Create Transaction Request
operationId: CreateTransactionById
parameters:
- $ref: '#/parameters/MsgId'
- $ref: '#/parameters/transaction_id'
/external_transfers/{transaction_id}/transaction_status:
get:
responses:
200:
description: 200 OK
schema:
$ref: '#/definitions/transaction_status'
422:
description: Error
schema:
$ref: '#/definitions/error_response'
500:
description: Internal Sever Error
schema:
$ref: '#/definitions/error_response'
operationId: GetTransactionStatus
description: Get Transaction status by passing the transaction_id.
parameters:
- $ref: '#/parameters/MsgId'
- $ref: '#/parameters/transaction_id'
definitions:
error_response:
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
description: Response in case of error
to:
properties:
name:
type: string
minLength: 1
maxLength: 64
description: Name of the beneficiary.
example: Gordan
other_account_id:
type: string
minLength: 1
maxLength: 50
description: Account id of the beneficiary. Will hold IBAN when other_bank_country=AE.
example: "963521478"
other_account_currency:
type: string
minLength: 1
maxLength: 3
description: Currency of the beneficiary account. Same as Remitting curreny.
example: AED
other_bank_name:
type: string
minLength: 1
maxLength: 35
description: Bank Name of the beneficiary bank.
example: ICICI
other_bank_BIC:
type: string
minLength: 1
maxLength: 12
description: BIC code of the beneficiary bank. Mandatory in the request for
within UAE AED transactions, i.e. when other_bank_country=AE and other_account_currency=AED.
For all other types of transactions, must be passed if beneficiary bank
BIC was provided by the customer.
example: ADCBAEAAXXX
other_branch_name:
type: string
minLength: 1
maxLength: 35
description: Branch Name of the beneficiary bank. Mandatory in the request
when other_bank_country is not AE. Default value '001' to be sent in the
request when other_bank_country=AE and other_account_currency is not AED.
Not required when other_bank_country=AE and other_account_currency=AED.
example: PB-POTHUHERA.
other_branch_addr1:
type: string
minLength: 1
maxLength: 100
description: Address of the beneficiary bank.
example: 15th Main,
other_branch_addr2:
type: string
minLength: 1
maxLength: 32
description: City of the beneficiary bank. Mandatory in the request when other_bank_country
is not AE. Default value 'AE' to be sent in the request when other_bank_country=AE
and other_account_currency is not AED. Not required when other_bank_country=AE
and other_account_currency=AED.
example: Colombo
other_bank_country:
type: string
minLength: 1
maxLength: 2
description: ISO 2 character country code of the beneficiary bank.
address:
$ref: '#/definitions/address'
description: Address of residence or incorporation of the beneficiary.
intermediary_bank_name:
type: string
minLength: 1
maxLength: 35
description: Intermediary Bank Name.
example: AXIS Bank
intermediary_bank_BIC:
type: string
minLength: 1
maxLength: 12
description: Intermediary Bank BIC.
example: AXISINBB
additionalProperties: false
required:
- name
- other_account_id
- other_account_currency
- other_bank_name
- other_bank_country
- address
description: This will contain the details of the external account.
from:
properties:
customer_id_type:
type: string
enum:
- Account_ID
description: Type of the Customer id of the customer who initiates the transaction.
Allowed values - Account_ID
example: Account_ID
customer_id:
type: string
minLength: 1
maxLength: 20
example: 1234xxxxxx567
description: Customer id of the customer, corresponding to the customer_id_type,
who initiates the transaction. Masked value should be passed in the UAT
and Production environments. For information on the masking logic to be
followed, see Masking Logic
additionalProperties: false
required:
- customer_id
- customer_id_type
description: This will contain the details of the remitter
value:
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
description: Transaction amount details
address:
properties:
line_1:
type: string
minLength: 1
maxLength: 100
description: Address line 1 of the beneficiary
line_2:
type: string
minLength: 1
maxLength: 100
description: Address line 2 of the beneficiary
line_3:
type: string
minLength: 1
maxLength: 100
description: Address line 3 of the beneficiary
city:
type: string
minLength: 1
maxLength: 100
description: City of the beneficiary
state:
type: string
minLength: 1
maxLength: 100
description: State of the beneficiary
district:
type: string
minLength: 1
maxLength: 100
description: District of the beneficiary
country:
type: string
minLength: 1
maxLength: 2
description: Country of residence or incorporation of the Beneficiary. ISO
2 Character Country Code.
additionalProperties: false
required:
- country
external_transfers:
properties:
from:
$ref: '#/definitions/from'
to:
$ref: '#/definitions/to'
value:
$ref: '#/definitions/value'
purpose_code:
type: string
minLength: 1
maxLength: 40
description: code for the Purpose of the remittance. Should be one of the
values provided in the Master data.
example: "8"
rate:
type: string
description: Fx Rate that will apply for the transfer. This should be the
rate returned in Forex Rate & Charges API. However, this will only be an
indicative rate. The actual rate applied for the transaction may differ
in the scenario where the rate in the system has changed at the time of
processing of the transaction, i.e. after the transaction has cleared AML
screening.
example: "2.957223"
rate_code:
type: string
minLength: 1
maxLength: 5
description: Fx Rate Code that will apply for the transfer. This should be
the rate_code returned in Fx Rate & Charges API.
example: TTS
charges_type:
type: string
enum:
- BEN
- SHA
- OUR
description: 'Charge Type selected by the customer. Valid options: BEN - All
charges to Beneficiary, SHA - Share the charges, OUR - All charges to be
charged to the customer.'
example: BEN
is_CBWSI_payment:
type: string
enum:
- "Y"
- "N"
description: 'Flag to identify if customer has selected Immediate Payment
option for WithinUAE transactions. Valid options: Y - Immediate Payment,
N - UAEFTS/SWIFT Payment. Applicable for payments up to AED 10,000 initiated
by individual customers, when payments are made to eligible banks only and
when Remitting Currency is AED, i.e. other_account_currency=AED, and with
an eligible Purpose code. For information on eligible banks and eligilble
purpose codes, see FAQ. If not
passed, transaction will be routed through UAEFTS. '
remarks:
type: array
items:
type: string
minLength: 1
maxLength: 32
minItems: 1
maxItems: 3
description: Optional Transaction Remarks line1, line2 and line3.
example:
- line1
- line2
- line3
customer_category:
type: string
enum:
- Individual
- Business
description: 'Category of the customer initiating the transfer. Valid options:
Individual - for Individual customers, Business - for business customers.'
example: Individual
additionalProperties: false
required:
- from
- to
- value
- purpose_code
- charges_type
- customer_category
external_transfers_response:
description: Response object
properties:
transaction_id:
type: string
maxLength: 20
description: The client's unique id for the transaction.
example: "58215225"
payment_ref_id:
type: string
maxLength: 25
description: The bank's unique id for the transaction.
example: "14091746202"
end_date:
type: string
description: Date when the transaction is executed.
example: "2017-09-14"
format: date
total_debit_amount:
type: string
minLength: 0
maxLength: 20
description: Total amount that will be debited for this transaction, including
charges.
example: "2020.00"
debit_currency_code:
type: string
minLength: 1
maxLength: 3
description: Currency code of the total_debit_amount.
example: AED
transaction_status:
description: Transaction status object.
$ref: '#/definitions/transaction_status'
additionalProperties: false
required:
- transaction_id
- payment_ref_id
- end_date
- total_debit_amount
- debit_currency_code
transaction_status:
description: Transaction status object. The PUT method will only return the href
to the associated transaction_status resource.
properties:
status:
type: string
maxLength: 5
description: Status of the transaction. This is only returned in the response
of GetTransactionStatus operation. | - S = (Success) indicates the reciept
of ACK from SWIFT/UAEFTS server, - F = (Failure) indicates the reciept
of NACK from SWIFT/UAEFTS server, - P = (Processing) indicates any other
status (Eg. Ready, Awaiting Authorization, etc…) from SWIFT/UAEFTS server
example: S
status_desc:
type: string
maxLength: 254
description: Description of the transaction status. This is only returned
in the response of GetTransactionStatus operation.
example: Success
href:
type: string
example: https://testapi.rakbank.ae/rb/api/v1/external_transfers/1232144/transaction_status
description: href value to fetch the transaction status of a specific transaction_id.
additionalProperties: false
tags: []
parameters:
transaction_id:
name: transaction_id
type: string
maxLength: 20
required: true
in: path
description: Unique transaction ID that is generated by the client. The transaction_id
used to create the payment transaction. This must not repeat atleast for a period
of six months. Please ensure to pass the same transaction_id in the path for
retry requests.
MsgId:
name: MsgId
type: string
maxLength: 50
required: true
in: header
description: Unique Id sent by client. Value should be a unique identifier of
the request in UUID format.
x-ibm-endpoints:
- endpointUrl: https://sandboxapi.rakbank.ae/sb/api
type:
- production
- development
...