--- swagger: "2.0" info: title: Partner Retail Account Applications API version: 1.3.0 x-ibm-name: partner-retail-account-applications-api description: "The Partner Retail Account Application API is available to partner institutions to initiate the basic account opening process for their new retail customers and to update KYC details of the customer once document verification is completed from their end. The scanned documents need to be uploaded separately to a SFTP server. Post verification of the documents by the RAKBank operations and compliance teams, the customer onboarding and account opening would be completed and the status would be notified to the partner.\n\nThe on-boarding process invloves three stages during which the Partner Retail Account Application API is invoked by the Partner:\n\n - Stage 1 : The applicant enters his/her basic details and uploads scanned copy of the Emirates ID on the Partner App\n - Stage 2 : The partner performs physical verification of the applicant's Emirates ID and collects KYC details, signed Consent and FATCA/CRS form copies of the applicant\n \ - Stage 3 : The applicant provides additional KYC documents/details if requested at the end of Stage 2 by RAKBank Compliance Team\n\n\n\tVersion 1.1.0\n\n - Added new operation UpdateRetailAccountApplication that allows you to pass certain details of the customer along with status update, once customer verification has been completed on your end.\n - UpdateRetailAccountApplicationStatus can be used only when status needs to be updated for eg. in case of rejections.\n - "demographic" property has been renamed to "countries_dealing_with". Similarly a few fatca related fields have been renamed.\n\n\n\tVersion 1.1.1\n\n - Added field employer_name under employment. Corrected length of field IBAN to 23.\n - Added "income" under applicant.\n - Corrected Valid values for employment_type.\n \ - New documents.type "VISAUID" added, mandatory for UpdateRetailAccountApplication operation.\n\n\n\tVersion 1.2.0\n\n - status field in application_status definition can also have the value "ADDITIONAL_COMPLIANCE_INFO_PROVIDED" - indicating that additional information/documents requested by RAKBank Compliance team has been provided by partner.\n - Added fields "remarks" under application_status. Remarks can be provided when passing status as 'ADDITIONAL_COMPLIANCE_INFO_PROVIDED' in UpdateRetailAccountApplicationStatus operation.\n - Added field "is_addtnl_doc_provided" under application_status. Indicates whether additional customer document requested by RAKBank Compliance team has been uploaded by the partner to the SFTP server. Valid values: true or false. Mandatory when passing status as 'ADDITIONAL_COMPLIANCE_INFO_PROVIDED' in UpdateRetailAccountApplicationStatus operation.\n\n\n\tVersion 1.3.0\n\n - Added "second_nationality" which is mandatory for customers with dual nationality.\n - Added "monthly_income" under income.\n - Additional "employment_type" values added for dependants.\n - "employer_name" should have sponsor name when "employment_type" is passed as Retired/Housewife/PENSIONER.\n \ - Document type VISA, VISAUID are not required to be passed in case of GCC Nationals.\n \ - "industry_subsegment_code" now takes a pipe separated list of values and required only when applicant's "employment_type" is 'Self employed' or 'A' (Salaried & Self-employed)." contact: email: apideveloper@rakbank.ae name: API Developer name: "" schemes: - https host: sandboxapi.rakbank.ae basePath: /v1 consumes: - application/json produces: - application/json securityDefinitions: oauth: type: oauth2 description: "" flow: application scopes: retail_account_applications: "" tokenUrl: https://sandboxapi.rakbank.ae/rb/api/v1/partner_auth/token clientIdHeader: type: apiKey in: header name: X-IBM-Client-Id security: - clientIdHeader: [] oauth: - retail_account_applications x-ibm-configuration: testable: false enforced: true phase: realized paths: /retail/account_applications: post: responses: 201: description: Created schema: $ref: '#/definitions/retail_account_applications_response' 401: description: Unauthorized schema: $ref: '#/definitions/error_response' 403: description: Forbidden schema: $ref: '#/definitions/error_response' 422: description: Error schema: $ref: '#/definitions/error_response' 500: description: Internal Server Error schema: $ref: '#/definitions/error_response' tags: [] summary: This is used to submit an application for a new account opening for a new retail customer. operationId: CreateRetailAccountApplication parameters: - name: retail_account_applications required: true in: body schema: $ref: '#/definitions/retail_account_applications' description: All the customer and account details for creating a retail account application /retail/account_applications/{account_application_id}: post: responses: 200: description: 200 OK schema: $ref: '#/definitions/retail_account_applications_response' 401: description: Unauthorized schema: $ref: '#/definitions/error_response' 403: description: Forbidden schema: $ref: '#/definitions/error_response' 422: description: Error schema: $ref: '#/definitions/error_response' 500: description: Internal Server Error schema: $ref: '#/definitions/error_response' tags: [] summary: This is used to update KYC details of an applicant after completion of document verification on your end. operationId: UpdateRetailAccountApplication parameters: - name: account_application_id required: true in: path type: string maxLength: 30 description: Application Id returned in the CreateRetailAccountApplication operation response. - name: retail_account_applications required: true in: body schema: $ref: '#/definitions/retail_account_applications' description: additional details of the application /retail/account_applications/{account_application_id}/application_status: post: responses: 200: description: 200 OK schema: $ref: '#/definitions/application_status' 401: description: Unauthorized schema: $ref: '#/definitions/error_response' 403: description: Forbidden schema: $ref: '#/definitions/error_response' 422: description: Error schema: $ref: '#/definitions/error_response' 500: description: Internal Server Error schema: $ref: '#/definitions/error_response' tags: [] summary: This operation is used to update the statuses "CUSTOMER_REJECTED" or "ADDITIONAL_COMPLIANCE_INFO_PROVIDED" during Stages 2 and 3 of the on-boarding process respectively. operationId: UpdateRetailAccountApplicationStatus parameters: - name: account_application_id required: true in: path type: string maxLength: 30 description: Application Id returned in the CreateRetailAccountApplication operation response. - name: application_status required: true in: body schema: $ref: '#/definitions/application_status' description: status of the application 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. definitions: error_response: properties: response_code: type: string description: API specific error code response_message: type: string description: breif details of the error status: type: string description: HTTP Status description: type: string description: detailed description of the error property: type: string additionalProperties: false description: Response in case of error required: - response_code - response_message - status application_status: properties: status: type: string enum: - CUSTOMER_VERIFIED - CUSTOMER_REJECTED - ADDITIONAL_COMPLIANCE_INFO_PROVIDED description: "Status to be updated. Valid values: \n- CUSTOMER_VERIFIED - indicating customer has been physically verified by partner. This status is can be passed in UpdateRetailAccountApplication operation during Stage 2 of the on-boarding process and all applicant fields marked as \"Required in the UpdateRetailAccountApplication operation\" must be supplied. \n- CUSTOMER_REJECTED - indicating customer has been rejected by partner. This status can be passed in UpdateRetailAccountApplicationStatus operation during Stage 2.\n- ADDITIONAL_COMPLIANCE_INFO_PROVIDED - indicating that additional information/documents requested by RAKBank Compliance team has been provided by partner. This status can be passed in UpdateRetailAccountApplicationStatus operation during Stage 3 of the on-boarding process.'\n" example: CUSTOMER_VERIFIED remarks: type: string maxLength: 3000 description: Remarks from partner if any. Remarks can be provided when passing status as 'ADDITIONAL_COMPLIANCE_INFO_PROVIDED' in UpdateRetailAccountApplicationStatus operation. is_addtnl_doc_provided: type: boolean description: 'Indicates whether additional customer document requested by RAKBank Compliance team has been uploaded by the partner to the SFTP server. Valid values: true or false. Mandatory when passing status as ''ADDITIONAL_COMPLIANCE_INFO_PROVIDED'' in UpdateRetailAccountApplicationStatus operation.' example: true additionalProperties: false required: - status retail_account_applications: properties: account_application_id: type: string maxLength: 30 description: Read only field. Application Id. example: YAP-0000000001 applicant: description: Holds applicant details $ref: '#/definitions/applicant' account: description: Holds account details. Required in the CreateRetailAccountApplication operation. $ref: '#/definitions/account' application_status: description: Holds account status. Required in the UpdateRetailAccountApplication operation. $ref: '#/definitions/application_status' additionalProperties: false required: - applicant retail_account_applications_response: description: Response object. properties: account_application_id: type: string maxLength: 30 description: Application Id for this request. example: YAP-0000000001 additionalProperties: false required: - account_application_id applicant: properties: first_name: type: string maxLength: 80 description: Applicant First Name. Required in the CreateRetailAccountApplication operation. example: John middle_name: type: string maxLength: 80 description: Applicant Middle Name. Optional field. Can be passed in the CreateRetailAccountApplication operation. example: Smith last_name: type: string maxLength: 80 description: Applicant Last Name. Required in the CreateRetailAccountApplication operation. example: Murray title: type: string maxLength: 25 description: Customer Title. Required in the CreateRetailAccountApplication operation. example: Mr. gender: type: string enum: - M - F maxLength: 1 description: Gender of the applicant. Values can include "M","F". Required in the CreateRetailAccountApplication operation. example: M date_of_birth: type: string description: Date of Birth of the applicant. Required in the CreateRetailAccountApplication operation. example: "1981-04-17" format: date nationality: type: string maxLength: 5 description: Nationality of the applicant. See Country Code values, for allowed list of values. Required in the CreateRetailAccountApplication operation. example: IN second_nationality: type: string maxLength: 5 description: Second Nationality of the applicant. See Country Code values, for allowed list of values. Required in the CreateRetailAccountApplication operation for applicants with dual nationality. example: US marital_status: type: string enum: - D - S - M - W - O maxLength: 20 description: "Marital Status. Values can include :\n- \"D\" - Divorced,\n- \"S\" - Single,\n- \"M\" - Married,\n- \"W\" - Widowed or \n- \"O\" - Others \n\nRequired in the UpdateRetailAccountApplication operation.\n" example: M PEP: type: string enum: - NPEP - LPEP - FPEP description: "Politicially exposed person. Values can include :\n- \"NPEP\" - NOT PEP,\n- \"LPEP\" - LOCAL PEP, \n- \"FPEP\" - FOREIGN PEP\n\nRequired in the CreateRetailAccountApplication operation.\n" example: NPEP documents: description: "Identification Documents of the applicant. \n- Document type EMID mandatory in CreateRetailAccountApplication operation.\n- Document type PPT mandatory in UpdateRetailAccountApplication operation.\n- Document type VISA, VISAUID mandatory in UpdateRetailAccountApplication operation for Non GCC Nationals.\n" type: array items: $ref: '#/definitions/documents' addresses: type: array items: $ref: '#/definitions/addresses' description: Addresses of the applicant. Required in the CreateRetailAccountApplication operation. phones: type: array items: $ref: '#/definitions/phones' description: Phone details of the applicant. Required in the CreateRetailAccountApplication operation. emails: type: array items: $ref: '#/definitions/emails' description: Emails of the applicant. Required in the CreateRetailAccountApplication operation. employment: $ref: '#/definitions/employment' description: This aggregate hold the employment details of the applicant. Required in the UpdateRetailAccountApplication operation. countries_dealing_with: type: string maxLength: 100 description: List of countries the customer is dealing with. Multiple values to be passed pipe separated. See Country Code values, for allowed list of country codes. The values will be codes and not description. Required in the CreateRetailAccountApplication operation. example: AE|IN|US city_of_birth: type: string maxLength: 50 description: City of Birth. Required in the UpdateRetailAccountApplication operation. example: Dubai country_of_birth: type: string maxLength: 5 description: Country of Birth. See Country Code values, for allowed list of values. Required in the UpdateRetailAccountApplication operation. example: UAE report_country_details: type: string maxLength: 500 description: OECD Report Country details. Required in the CreateRetailAccountApplication operation. See No TIN Reason Code values, for allowed list of Reason Code values when No TIN is available. example: USA~123445~~remarks| UAE~~No tax number~remarks | IND~ABC12345~Reason B~ us_relation: type: string enum: - C - "N" - O - R description: "US Relation. Valid values :\n- C - Recalcitrant Customer,\n- N - Not Reportable,\n- O - No,\n- R - Yes-Reportable \n\nRequired in the CreateRetailAccountApplication operation.\n" example: "N" tin_number: type: string maxLength: 50 description: TIN number available as part of FATCA details. If applicable, must be passed in the CreateRetailAccountApplication operation. fatca_reason: type: string maxLength: 200 description: FATCA eligible reason. For multiple FATCA reasons, should be pipe (|) separated. If applicable, must be passed in the CreateRetailAccountApplication operation. See FATCA Reason values, for allowed list of values. example: CURRENT US ADDR fatca_documents_collected: type: string maxLength: 200 description: FATCA documents collected. Should be pipe (|) separated for multiple documents collected. If applicable, must be passed in the CreateRetailAccountApplication operation. See FATCA Documents Collected, for allowed list of values. example: ID DOC|LOSS OF NAT CERT|SELF-ATTEST FORM|W8|W9 fatca_signed_date: type: string description: Holds the value of Signed Date, Should be past date. If applicable, must be passed in the CreateRetailAccountApplication operation. format: date example: "2017-01-01" income: $ref: '#/definitions/income' description: This aggregate hold the income details of the applicant. Required in the UpdateRetailAccountApplication operation. additionalProperties: false description: Holds the details of the Applicant required: - documents documents: properties: type: type: string enum: - PPT - VISA - EMID - VISAUID description: List of values include - "PPT" -Passport - "VISA" - Visa File number - "EMID" - Emirates ID - "VISAUID" - Visa UID number example: PPT number: type: string maxLength: 100 description: Document Number example: G5533782 issue_date: type: string format: date maxLength: 10 description: Date of issue of the document. Mandatory for type=VISA & type=PPT. example: "2017-10-30" expiry_date: type: string format: date maxLength: 10 description: Expiry date of the document example: "2019-10-30" issue_country: type: string description: Document issued country example: IN additionalProperties: false description: Holds the details of the documents used to identify a person. required: - type - number - expiry_date addresses: properties: type: type: string enum: - RESIDENCE - MAILING description: Holds address type. Valid values are "RESIDENCE", "MAILING". example: MAILING line_1: type: string maxLength: 50 description: Holds flat number and Building Name. example: 202 Sky Tower line_2: type: string maxLength: 50 description: Holds Street details of the address. example: 23rd Streeet po_box: type: string maxLength: 200 description: P O Box number example: "685" city: type: string maxLength: 5 description: Holds city details. Accepts IATA 3-Letter Codes. example: DXB country: type: string maxLength: 2 description: Holds country details. ISO 2 character Country Codes. See Country Code values, for allowed list of values. example: AE preferred: type: boolean description: Holds preferred flag value.(true or false) example: "true" additionalProperties: false description: Holds Address Details of the applicant required: - type - line_1 - city - country - line_2 - preferred - po_box employment: properties: employment_type: type: string description: Employment Type of the applicant. See Employment Type values, for allowed list of values. example: Salaried employer_name: type: string maxLength: 250 description: Employer Name of the applicant. Should have sponsor name when "employment_type" is passed as Retired/Housewife/PENSIONER. example: 1 occupation: type: string maxLength: 100 description: Occupation of the applicant. See Occupation values, for allowed list of values. example: 1 industry_segment_code: type: string maxLength: 5 description: Segment Code of the Industry. See Industry Segment Code values, for allowed list of values. example: BFS industry_subsegment_code: type: string maxLength: 5 description: Sub segment Code of the Industry. Required only when applicant's "employment_type" is 'Self employed' or 'A' (Salaried & Self-employed). Multiple values can be passed pipe separated. See Industry Sub Segment Code values, for allowed list of values. example: 13|AD|9 additionalProperties: true description: Holds of the employment details of the applicant required: - industry_segment_code - employment_type - employer_name - occupation income: properties: monthly_income: type: number minLength: 1 maxLength: 15 description: Holds the value of Declared Salary or Monthly Income (AED). example: 50000 expected_monthly_credit_turnover_AED: type: number minLength: 1 maxLength: 20 description: Holds the value of ˜Expected Monthly Credit Turn Over (AED). Decimal(16,3) values allowed. example: 50000 monthly_cash_credit_turnover_percentage: type: string minLength: 1 maxLength: 6 description: Holds the value of Monthly Cash Credit Turnover %. Decimal(3,2) values allowed. example: 25.500000 monthly_noncash_credit_turnover_percentage: type: string minLength: 1 maxLength: 6 description: Holds the value of Monthly Non Cash Credit Turnover %. Decimal(3,2) values allowed. example: 70 highest_cash_credit_transaction_AED: type: string minLength: 1 maxLength: 20 description: Holds the value of Highest Cash Credit Transaction (AED). Decimal(16,3) values allowed. example: 5000 highest_noncash_credit_transaction_AED: type: string minLength: 1 maxLength: 20 description: Holds the value of Highest Non Cash Credit Transaction (AED). Decimal(16,3) values allowed. example: 10000 additionalProperties: true description: Holds of the income details of the applicant required: - expected_monthly_credit_turnover_AED - monthly_cash_credit_turnover_percentage - monthly_noncash_credit_turnover_percentage - highest_cash_credit_transaction_AED - highest_noncash_credit_transaction_AED - monthly_income phones: properties: type: type: string enum: - CELLPH1 description: Holds Type of the Phone. Valid Values are "CELLPH1" - mobile no., example: CELLPH1 country_code: type: string maxLength: 10 description: Holds the country_code for the phone number example: 971 number: type: string maxLength: 25 description: Holds the mobile phone number example: "563358985" additionalProperties: false description: Holds contact details of the applicant required: - type - country_code - number emails: properties: type: type: string enum: - HOMEEML description: Holds Email Address Type. Valid values - "HOMEEML" - Personal email id example: HOMEEML email: type: string maxLength: 150 description: Holds email address value. example: abc@email.com additionalProperties: false description: Holds mail details of the applicant required: - email - type account: properties: IBAN: type: string maxLength: 23 description: IBAN Number allocated to the customer example: AE1234562323323 additionalProperties: false required: - IBAN description: Hold the IBAN account details tags: [] x-ibm-endpoints: - endpointUrl: https://sandboxapi.rakbank.ae/sb/api type: - production - development ...