--- swagger: "2.0" info: x-ibm-name: partner-internal-bank-transfers-api title: Partner Internal Bank Transfers API version: 1.1.0 description: "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.\n\n\tVersion 1.0.1\n\t\n \ - Added property "parent_req_id" that needs to be additionally passed in case of reversal of the original request.\n \n \t\n\tVersion 1.1.0\n\t\n \ - 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.\n\n \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: internal_transfers: To transfer funds from a RAKBANK account to another RAKBANK account tokenUrl: https://sandboxapi.rakbank.ae/rb/api/oauth2/token clientIdHeader: type: apiKey in: header name: X-IBM-Client-Id security: - oauth: - internal_transfers clientIdHeader: [] x-ibm-configuration: testable: true enforced: true phase: realized paths: /internal_transfers/{tran_ref_num}: put: responses: 201: description: 201 Created schema: $ref: '#/definitions/internal_transfers_response' 422: description: Error schema: $ref: '#/definitions/error_response' 500: description: Internal Server Error schema: $ref: '#/definitions/error_response' parameters: - name: internal_transfers required: true in: body schema: $ref: '#/definitions/internal_transfers' description: Request details to create an internal fund transfer. description: 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. summary: Create Internal Transfer operationId: CreateInternalTransfer parameters: - 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. - name: tran_ref_num type: string maxLength: 20 required: true in: path description: 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. definitions: internal_transfers: 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 description: Details of the Internal Transfer internal_transfers_response: description: 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 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 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 description: Array of Part Transactions transaction_narration: 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 description: Transaction Narrations to appear in the account statement for this transaction. 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 tags: [] x-ibm-endpoints: - endpointUrl: https://sandboxapi.rakbank.ae/sb/api type: - production - development ...