Xfers Testing API

API for testing purposes

OpenAPI Specification

xfers-testing-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  description: Welcome to Xfers' API documentation. You can find information on our API endpoint specific to your country.
  version: '3'
  title: Xfers Bank Account Testing API
  contact:
    name: Contact us through our help desk
    url: https://bit.ly/XfersSupport
servers:
- description: Indonesia Production
  url: https://id.xfers.com/api
- description: Indonesia Sandbox for testing
  url: https://sandbox-id.xfers.com/api
tags:
- name: Testing
  description: API for testing purposes
paths:
  /v3/user/verify:
    patch:
      tags:
      - Testing
      servers:
      - description: Singapore Sandbox for testing
        url: https://sandbox.xfers.io/api
      operationId: mockKYCVerification
      x-code-samples:
      - lang: Shell
        source: "curl --location --request PATCH \"$BASE_URL/v3/user/verify\" \\\r\n  --header \"X-XFERS-USER-API-KEY: $CUSTOMER_API_KEY\" \\\r\n  --data \"\""
      summary: Mock KYC Verification
      description: This API verifies the user with corresponding API KEY. This API can only be called from sandbox.
      security:
      - X-XFERS-USER-API-KEY: []
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                message: success
        4XX:
          $ref: '#/components/responses/v3Error:4XX'
  /v3/authorize/hello:
    get:
      tags:
      - Testing
      servers:
      - description: Singapore Sandbox for testing
        url: https://sandbox.xfers.io/api
      operationId: authorizeHello
      x-code-samples:
      - lang: Shell
        source: "curl \"$BASE_URL/v3/authorize/hello\" \\\r\n  -H \"X-XFERS-USER-API-KEY: $CUSTOMER_API_KEY\""
      summary: Check Connection
      description: Use this endpoint to check connection with our server
      security:
      - X-XFERS-USER-API-KEY: []
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                msg: Hello world
        4XX:
          $ref: '#/components/responses/v3Error:4XX'
  /v3/authorize/get_mock_otp:
    get:
      tags:
      - Testing
      servers:
      - description: Singapore Sandbox for testing
        url: https://sandbox.xfers.io/api
      operationId: getMockOtp
      x-code-samples:
      - lang: Shell
        source: "curl --location --request GET \"$BASE_URL/v3/authorize/get_mock_otp?phone_no=%252B6287785725657\" \\\r\n  --header \"X-XFERS-APP-API-KEY: $CUSTOMER_API_KEY\""
      summary: Get Mock OTP
      description: Get a mock OTP. This is only usable in sandbox environment
      security:
      - X-XFERS-APP-API-KEY: []
      parameters:
      - name: phone_no
        in: query
        description: Phone Number. For international number, you can use ’%2B’ to replace the plus(’+’) sign. (i.e. use %2B6287785725657 instead of +6287785725657)
        required: true
        explode: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                otp: '138558'
        4XX:
          $ref: '#/components/responses/v3Error:4XX'
  /v3/user/bank_account/withdrawal_requests/mock_result:
    put:
      operationId: mockWithdrawalResult
      tags:
      - Testing
      servers:
      - description: Singapore Sandbox for testing
        url: https://sandbox.xfers.io/api
      summary: Mock Withdrawal Result
      description: You need to wait for a few seconds after withdrawal creation to run this API. Currently only available in Indonesia
      x-code-samples:
      - lang: Shell
        source: "curl --location --request PUT \"$BASE_URL/v3/user/bank_account/withdrawal_requests/mock_result\" \\\r\n  --header \"Content-Type: application/json\" \\\r\n  --header \"X-XFERS-USER-API-KEY: $CUSTOMER_API_KEY\" \\\r\n  --form \"idempotency_id=Order_1234\" \\\r\n  --form \"status=completed\""
      security:
      - X-XFERS-USER-API-KEY: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
              - status
              - idempotency_id
              properties:
                idempotency_id:
                  type: string
                  description: Idempotency ID you use to create your withdrawal request
                status:
                  type: string
                  enum:
                  - completed
                  - failed
                  description: desired status for withdrawal
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                available_balance: 308446
                ledger_balance: 308446
                withdrawal_request:
                  id: contract_78a3e9bbae474e5ab6fffad8e609f716
                  idempotency_id: Order_1234
                  type: Sobatku/withdrawal
                  status: completed
                  amount: '120000.0'
                  fees: '0.0'
                  account_no: '1680366060'
                  bank_abbrev: BCA
                  express: true
                  value_date: null
                  created_at: '2018-11-01T17:48:42+07:00'
        4XX:
          $ref: '#/components/responses/v3Error:4XX'
  /v3/loans_mock/{id}/mocks:
    post:
      operationId: mockLoanStatus
      tags:
      - Testing
      summary: Mock Loan Status
      description: Mock the Status so you can change its status and get its callback
      x-code-samples:
      - lang: Shell
        source: "curl --location --request POST \"{base_url}/loans_mock/loan_457d2959cff448a1951c589f8c841946/mocks\" \\\r\n  --header \"Content-Type: application/json\" \\\r\n  --header \"X-XFERS-USER-API-KEY: {{user-api-token}}\" \\\r\n  --form \"status=loan_request_approved\""
      security:
      - user-api-token: []
      parameters:
      - name: id
        in: path
        description: ID of the loan you want to request mock status.
        required: true
        explode: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
              - status
              properties:
                status:
                  type: string
                  enum:
                  - loan_request_approved
                  - loan_request_rejected
                  - disbursement_report_completed
                  - disbursement_report_failed
                  description: Mock loan status
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                available_balance: 308446
                ledger_balance: 308446
                withdrawal_request:
                  id: contract_78a3e9bbae474e5ab6fffad8e609f716
                  idempotency_id: Order_1234
                  type: Sobatku/withdrawal
                  status: completed
                  amount: '120000.0'
                  fees: '0.0'
                  account_no: '1680366060'
                  bank_abbrev: BCA
                  express: true
                  value_date: null
                  created_at: '2018-11-01T17:48:42+07:00'
        4XX:
          $ref: '#/components/responses/v3Error:4XX'
  /v3/loans_mock/{id}/repayments/{repayment_id}/mocks:
    post:
      operationId: mockLoanRepaymentStatus
      tags:
      - Testing
      summary: Mock Loan Repayment Status
      description: Mock the Repayment Status so you can change its status and get its callback
      x-code-samples:
      - lang: Shell
        source: "curl --location --request POST \"{base_url}/loans_mock/loan_457d2959cff448a1951c589f8c841946/repayments/loan_repayment_ab442a2957a2468f9df4c6fe9f6b40f6/mock\" \\\r\n  --header \"Content-Type: application/json\" \\\r\n  --header \"X-XFERS-USER-API-KEY: {{user-api-token}}\" \\\r\n  --form \"status=completed\""
      security:
      - user-api-token: []
      parameters:
      - name: id
        in: path
        description: ID of the loan you want to request mock status.
        required: true
        explode: true
        schema:
          type: string
      - name: repayment_id
        in: path
        description: ID of the loan repayment you want to request mock status.
        required: true
        explode: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
              - status
              properties:
                status:
                  type: string
                  enum:
                  - completed
                  description: Mock loan repayment status
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                loan_id: loan_abcdefghi_123
                id: loan_repayment_d2bb1cf12f0c43acb2ac13a06de858f2
                status: completed
                amount: '100000.0'
                collection_fee: '0.0'
                idempotency_id: 2c4c17c4-ec8b-4267-963f-28bc40ebc41a
                created_at: 2019-09-19 05:24:32 UTC
                partner_bank_response:
                  success: true
                  refno: ref05
                  accno: TK001.7
                  accountname: NAMA AKUN
                  period: '6'
                  duedate: '2012-12-12'
                  installment: '16646000.0'
                  installfeeaccount: '0.0'
                  dpd: '238'
                  osprincipal: '389113770.0'
                  osinterest: '123754230.0'
                  ostotal: '512868000.0'
                  overdueprincipal: '80148138.0'
                  overdueinterest: '49861862.0'
                  overduetotal: '130010000.0'
                  penalty: '12118288.0'
                  overdueinstallfee: '0.0'
                  totaloverdueandpenalty: '142128288.0'
                  failurereason: null
                  paymentid: '1.31'
        4XX:
          $ref: '#/components/responses/v3Error:4XX'
  /v3/sandbox/reject_user:
    post:
      tags:
      - Testing
      operationId: mockKYCRejection
      x-code-samples:
      - lang: Shell
        source: "curl --location --request POST \"{base_url}/sandbox/reject_user\" \\\r\n  --header \"X-XFERS-USER-API-KEY: ARsxJCk3htNfy8ym1gKvuqQeFYgrFzXF8YpsSCL_Gnz\" \\\r\n  --data \"{\\\"reason\\\": \\\"{\"selfieQualityUnclear\":true,\"selfieQualityDark\":true}\\\"}\""
      summary: Mock KYC Rejection
      description: This API rejects the user with corresponding API KEY. This API can only be called from sandbox.
      security:
      - user-api-token: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
              - status
              properties:
                reason:
                  type: string
                  description: Rejection reason
                  example: '{"selfieQualityUnclear":true,"selfieQualityDark":true}'
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                verification_status: rejected
                reject_reason: '{"selfieQualityUnclear":true,"selfieQualityDark":true}'
        4XX:
          $ref: '#/components/responses/v3Error:4XX'
  /v3/sandbox/mock_user_with_ocr:
    post:
      tags:
      - Testing
      operationId: mockUserWithOCR
      x-code-samples:
      - lang: Shell
        source: "curl --location --request POST \"{base_url}/sandbox/mock_user_with_ocr\" \\\r\n  --header \"Content-Type: application/json\" \\\r\n  --header \"X-XFERS-APP-API-KEY: ARsxJCk3htNfy8ym1gKvuqQeFYgrFzXF8YpsSCL_Gnz\" \\\r\n  --data \"{\\\"email\\\": \\\"081234567891@xfers.io\\\", \\\"facial_recognition_percentage\\\": 70.2, \\\"ktp_ocr_valid\\\": true}\r\n\r\n\""
      summary: Mock User with OCR
      description: This API mocks a user creation with OCR and FR data. This API can only be called from sandbox.
      security:
      - X-XFERS-APP-API-KEY: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
              - email
              - facial_recognition_percentage
              - ktp_ocr_valid
              properties:
                email:
                  type: string
                  description: User's email address.
                facial_recognition_percentage:
                  type: integer
                  description: Facial recognition mock similarity percentage.
                ktp_ocr_valid:
                  type: boolean
                  description: Set if KTP OCR data is valid/invalid.
            examples:
              Request Body Example:
                summary: Request Body Example
                value:
                  email: 081234567891@xfers.com
                  facial_recognition_percentage: 70.2
                  ktp_ocr_valid: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                email: 081234567891@xfers.io
                ocr_results:
                - id: 139901
                  user_id: 1659930
                  tag: selfie
                  result: '{"face_similarity":"70.2"}'
                - id: 139902
                  user_id: 1659930
                  tag: id_front
                  result: '{"province":"PROVINSI JAWA BARAT","city":"KABUPATEN SUKABUMI","nik":"3202210702960001","name":"RAMDAN FEBRIANSYAH","birth_place":"SUKABUMI","birth_date":"07-02-1996","gender":"LAKI-LAKI","address":"KP CIRANJII","rtrw":"002/003","sub_district":"MEKARJAYA","district":"JAMPANG KULON","religion":"ISLAM","stats":"BELUM KAWIN","job":"BELUMTIDAK BEKERJA","nationality":"WNI","blood_type":"O"}'
                user_api_token:
                  id: 2483701
                  token_hash: ps4igKCfMPQxRz74dToANcMvuv4npFPAg5FXEmzNTFE
                  secret_hash: bjtjZZJnGzJ86UKBp76y3uY6iNTAPMVoPo2HjToRX-U
                  token_type: V2
                  user_id: 1659930
                  version: 3
                  enabled: true
                  last_used: null
                  created_at: '2020-01-27T07:52:18.000Z'
                  updated_at: '2020-01-27T07:52:18.538Z'
                  connect_token_id: 2108325
                  is_kyc_host: false
                  xfers_api_access_template_id: 2
                  old_token_type: null
                  connect_verification_tiers: 7
                  wallet_id: 1
                  allow_negative_balance: false
                  user_wallet_id: null
                  account_id: 1749950
        4XX:
          $ref: '#/components/responses/v3Error:4XX'
components:
  examples:
    XFE403:
      summary: XFE403 - ...
      value:
        error: string
        error_code: XFE403
        error_handling: '...'
    XFE111:
      summary: XFE1 - Duplicate credentials
      value:
        error: string
        error_code: XFE111
        error_handling: Particulars already exist. Please make sure you entered the correct parameters.
    XFE3:
      summary: XFE3 - Internal Error
      value:
        error: string
        error_code: XFE3
        error_handling: Unexpected error. Try again later or contact customer support at https://bit.ly/XfersSupport.
    XFE312:
      summary: XFE312 - Conditions not met to close account
      value:
        error: string
        error_code: XFE312
        error_handling: Invalid request to close account. Follow instruction in the response.
    XFE1:
      summary: XFE1 - Server busy
      value:
        error: string
        error_code: XFE1
        error_handling: Follow instructions in the response.
    XFE311:
      summary: XFE311 - Cannot be different wallet type
      value:
        error: string
        error_code: XFE311
        error_handling: Follow instruction in response or contact customer support at https://bit.ly/XfersSupport.
    XFE301:
      summary: XFE301 - Account locked
      value:
        error: string
        error_code: XFE301
        error_handling: Request not available. Please contact customer support at https://bit.ly/XfersSupport.
    XFE108:
      summary: XFE108 - More user information required
      value:
        error: string
        error_code: XFE108
        error_handling: Follow instructions in the response.
    XFE107:
      summary: XFE107 - Only enter one auth_code
      value:
        error: string
        error_code: XFE107
        error_handling: Do not enter both OTP or Google Auth OTP. Only need to enter one.
    XFE402:
      summary: XFE402 - Cannot use placeholder account
      value:
        error: string
        error_code: XFE402
        error_handling: Follow instructions in response.
    XFE502:
      summary: XFE502 - Unexpected BANK API error
      value:
        error: string
        error_code: XFE502
        error_handling: Try again later or contact customer support at https://bit.ly/XfersSupport.
    XFE106:
      summary: XFE106 - No auth_code provided
      value:
        error: string
        error_code: XFE106
        error_handling: Enter either phone OTP or Google Auth OTP
    XFE407:
      summary: XFE407 - Conditions to charge card not met
      value:
        error: string
        error_code: XFE407
        error_handling: Invalid request for this transaction. Make sure you entered the correct txn_id.
    XFE409:
      summary: XFE409 - Order id exist
      value:
        error: string
        error_code: XFE409
        error_handling: Please enter another order_id.
    XFE105:
      summary: XFE105 - Captcha error
      value:
        error: string
        error_code: XFE1
        error_handling: Follow instructions in the response.
    XFE404:
      summary: XFE404 - Forex not supported
      value:
        error: string
        error_code: XFE404
        error_handling: Make sure you call the correct API or contact customer support at https://bit.ly/XfersSupport.
    XFE102:
      summary: XFE102 - Entered value is less than minimum
      value:
        error: string
        error_code: XFE102
        error_handling: Make sure you entered the correct number.
    XFE109:
      summary: XFE109 - Invalid credentials
      value:
        error: string
        error_code: XFE109
        error_handling: Make sure you entered the correct credentials.
    XFE104:
      summary: XFE104 - Media provided too large
      value:
        error: string
        error_code: XFE104
        error_handling: Media too big. Follow the guidelines in the response.
    XFE15:
      summary: XFE15 - Required parameter empty
      value:
        error: string
        error_code: XFE15
        error_handling: Make sure you entered the correct required parameter.
    XFE14:
      summary: XFE14 - API only allowed for fully verified user
      value:
        error: string
        error_code: XFE14
        error_handling: Please submit KYC data to get your account fully verified.
    XFE2:
      summary: XFE2 - Access denied
      value:
        error: string
        error_code: XFE2
        error_handling: Make sure you call the correct API or contact customer support at https://bit.ly/XfersSupport.
    XFE506:
      summary: XFE506 - Bank account already taken
      value:
        error: string
        error_code: XFE506
        error_handling: Please use another bank account.
    XFE309:
      summary: XFE309 - Cannot use same account
      value:
        error: string
        error_code: XFE309
        error_handling: Follow instructions in the response.
    XFE13:
      summary: XFE13 - Record not found
      value:
        error: string
        error_code: XFE13
        error_handling: Please check that you provided the correct API Key and the correct parameters.
    XFE8:
      summary: XFE8 - Cannot retrieve media
      value:
        error: string
        error_code: XFE8
        error_handling: Cannot retrieve media. Please enter a new URL or try again later.
    XFE7:
      summary: XFE7 - Database error
      value:
        error: string
        error_code: XFE7
        error_handling: Follow instructions in the response.
    XFE408:
      summary: XFE408 - Invalid charge request
      value:
        error: string
        error_code: XFE408
        error_handling: Invalid request. Please follow instructions in response or contact customer support at https://bit.ly/XfersSupport.
    XFE302:
      summary: XFE302 - Account deleted
      value:
        error: string
        error_code: XFE302
        error_handling: Request not available. Please contact customer support at https://bit.ly/XfersSupport.
    XFE201:
      summary: XFE201 - Not yet a merchant
      value:
        error: string
        error_code: XFE201
        error_handling: Please verify your merchant or business account.
    XFE103:
      summary: XFE103 - ...
      value:
        error: string
        error_code: XFE103
        error_handling: Follow instructions in the response.
    XFE406:
      summary: XFE406 - Cannot refund prepaid transaction
      value:
        error: string
        error_code: XFE406
        error_handling: Please choose another transaction to refund.
    XFE401:
      summary: XFE401 - Cannot refund charge
      value:
        error: string
        error_code: XFE401
        error_handling: Invalid request. Please call another API or Contact customer support at https://bit.ly/XfersSupport.
    XFE503:
      summary: XFE503 - Failed name check
      value:
        error: string
        error_code: XFE503
        error_handling: Bank account name and name provided have to be similar.
    XFE410:
      summary: XFE410 - Invalid application fee
      value:
        error: string
        error_code: XFE410
        error_handling: Invalid request. Please make changes to the parameters as stated in the response.
    XFE304:
      summary: XFE304- Account closed
      value:
        error: string
        error_code: XFE304
        error_handling: Request not available. Please contact customer support at https://bit.ly/XfersSupport.
    XFE110:
      summary: XFE110 - Cannot sign up twice
      value:
        error: string
        error_code: XFE110
        error_handling: Please sign in instead
    XFE504:
      summary: XFE504 - Maximum number of bank account
      value:
        error: string
        error_code: XFE504
        error_handling: Delete existing bank accounts.
    XFE16:
      summary: XFE16 - Invalid request
      value:
        error: string
        error_code: XFE16
        error_handling: API request not supported. Make sure you entered the correct API key or contact customer support at https://bit.ly/XfersSupport.
    XFE310:
      summary: XFE310 - Cannot use same account
      value:
        error: string
        error_code: XFE310
        error_handling: Follow instructions in the response.
    XFE9:
      summary: XFE9 - ....
      value:
        error: string
        error_code: XFE9
        error_handling: '...'
    XFE601:
      summary: XFE601 - Conditions to withdraw not met. Can be solved by changing amount
      value:
        error: string
        error_code: XFE601
        error_handling: Your withdrawal does not meet the conditions required. Please follow the instructions in the response.
    XFE10:
      summary: XFE10 - Invalid environment
      value:
        error: string
        error_code: XFE10
        error_handling: Request not supported for this environment.
    XFE4:
      summary: XFE4 - Authentication field empty
      value:
        error: string
        error_code: XFE4
        error_handling: Follow instructions in the response.
    XFE307:
      summary: XFE307 - ...
      value:
        error: string
        error_code: XFE307
        error_handling: '...'
    XFE303:
      summary: XFE303 - Account terminated
      value:
        error: string
        error_code: XFE303
        error_handling: Request not available. Please contact customer support at https://bit.ly/XfersSupport.
    XFE101:
      summary: XFE101 - Not local number
      value:
        error: string
        error_code: XFE101
        error_handling: Follow instructions in the response.
    XFE405:
      summary: XFE405 - Charge cannot be refunded
      value:
        error: string
        error_code: XFE405
        error_handling: Only completed contract can be refunded.
    XFE505:
      summary: XFE505 - Bank abbrev provided invalid
      value:
        error: string
        error_code: XFE505
        error_handling: Use GET {{base-api-url}}api/v3/banks to get the correct bank abbrev.
    XFE6:
      summary: XFE6 - Invalid signature
      value:
        error: string
        error_code: XFE6
        error_handling: Follow instructions in the response.
    XFE5:
      summary: XFE5 - Api key is invalid
      value:
        error: string
        error_code: XFE5
        error_handling: Make sure you entered the correct API key or contact customer support at https://bit.ly/XfersSupport
    XFE603:
      summary: XFE603 - Not allowed to carry out request
      value:
        error: string
        error_code: XFE603
        error_handling: Invalid request. Please call another API or contact customer support at https://bit.ly/XfersSupport.
    XFE12:
      summary: XFE12 - Invalid parameter
      value:
        error: string
        error_code: XFE12
        error_handling: Make sure you entered the correct parameters.
    XFE306:
      summary: XFE306 - ...
      value:
        error: string
        error_code: XFE306
        error_handling: '...'
    XFE602:
      summary: XFE602 - Server busy
      value:
        error: string
        error_code: XFE602
        error_handling: Your withdrawal exceeds the limit for the time period. Please change the amount or verify your account.
    XFE11:
      summary: XFE11 - Timeout
      value:
        error: string
        error_code: XFE11
        error_handling: Please try again later.
    XFE308:
      summary: XFE308 - ...
      value:
        error: string
        error_code: XFE308
        error_handling: '...'
    XFE501:
      summary: XFE501 - Expected Bank API error
      value:
        error: string
        error_code: XFE501
        error_handling: Try again later or contact customer support at https://bit.ly/XfersSupport.
    XFE112:
      summary: XFE112 - Repeat request
      value:
        error: string
        error_code: XFE112
        error_handling: API request has already been made. Please follow the instructions in the response or call aother API.
    XFE305:
      summary: XFE305 - ....
      value:
        error: string
        error_code: XFE305
        error_handling: '...'
  schemas:
    error_response:
      type: object
      properties:
        error:
          description: Error Message
          type: string
        error_code:
          description: Xfers' error code XFEXXX
          type: string
        error_handling:
          description: Instruction on how to handle error. Refer to Error Codes tag for more information.
          type: string
  responses:
    v3Error:4XX:
      description: List of possible errors
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error_response'
          examples:
            XFE1:
              $ref: '#/components/examples/XFE1'
            XFE2:
              $ref: '#/components/examples/XFE2'
            XFE3:
              $ref: '#/components/examples/XFE3'
            XFE4:
              $ref: '#/components/examples/XFE4'
            XFE5:
              $ref: '#/components/examples/XFE5'
            XFE6:
              $ref: '#/components/examples/XFE6'
            XFE7:
              $ref: '#/components/examples/XFE7'
            XFE8:
              $ref: '#/components/examples/XFE8'
            XFE9:
              $ref: '#/components/examples/XFE9'
            XFE10:
              $ref: '#/components/examples/XFE10'
            XFE11:
              $ref: '#/components/examples/XFE11'
            XFE12:
              $ref: '#/components/examples/XFE12'
            XFE13:
              $ref: '#/components/examples/XFE13'
            XFE14:
              $ref: '#/components/examples/XFE14'
            XFE15:
              $ref: '#/components/examples/XFE15'
            XFE16:
              $ref: '#/components/examples/XFE16'
            XFE101:
              $ref: '#/components/examples/XFE101'
            XFE102:
              $ref: '#/components/examples/XFE102'
            XFE103:
              $ref: '#/components/examples/XFE103'
            XFE104:
              $ref: '#/components/examples/XFE104'
            XFE105:
              $ref: '#/components/examples/XFE105'
            XFE106:
              $ref: '#/components/examples/XFE106'
            XFE107:
              $ref: '#/components/examples/XFE107'
            XFE108:
              $ref: '#/components/examples/XFE108'
            XFE109:
              $ref: '#/components/examples/XFE109'
            XFE110:
              $ref: '#/components/examples/XFE110'
            XFE111:
              $ref: '#/components/examples/XFE111'
            XFE112:
              $ref: '#/components/examples/XFE112'
            XFE201:
              $ref: '#/components/examples/XFE201'
            XFE301:
              $ref: '#/components/examples/XFE301'
            XFE302:
              $ref: '#/components/examples/XFE302'
            XFE303:
              $ref: '#/components/examples/XFE303'
            XFE304:
              $ref: '#/components/examples/XFE304'
            XFE305:
              $ref: '#/components/examples/XFE305'
            XFE306:
              $ref: '#/components/examples/XFE306'
            XFE307:
              $ref: '#/components/examples/XFE307'
            XFE308:
              $ref: '#/components/examples/XFE308'
            XFE309:
              $ref: '#/components/examples/XFE309'
            XFE310:
              $ref: '#/components/examples/XFE310'
            XFE311:
              $ref: '#/components/examples/XFE311'
            XFE312:
              $ref: '#/components/examples/XFE312'
            XFE401:
              $ref: '#/components/examples/XFE401'
            XFE402:
              $ref: '#/components/examples/XFE402'
            XFE403:
              $ref: '#/components/examples/XFE403'
            XFE404:
              $ref: '#/components/examples/XFE404'
            XFE405:
              $ref: '#/components/examples/XFE405'
            XFE406:
              $ref: '#/components/examples/XFE406'
            XFE407:
              $ref: '#/components/examples/XFE407'
            XFE408:
              $ref: '#/components/examples/XFE408'
            XFE409:
              $ref: '#/components/examples/XFE409'
            XFE410:
              $ref: '#/components/examples/XFE410'
            XFE501:
              $ref: '#/components/examples/XFE501'
            XFE502:
              $ref: '#/components/examples/XFE502'
            XFE503:
              $ref: '#/components/examples/XFE503'
            XFE504:
              $ref: '#/components/examples/XFE504'
            XFE505:
              $ref: '#/components/examples/XFE505'
            XFE506:
              $ref: '#/components/examples/XFE506'
            XFE601:
              $ref: '#/components/examples/XFE601'
            XFE602:
              $ref: '#/components/examples/XFE602'
            XFE603:
              $ref: '#/components/examples/XFE603'
  securitySchemes:
    X-XFERS-USER-API-KEY:
      type: apiKey
      name: X-XFERS-USER-API-KEY
      in: header
      description: You can retrieve this by using [get_token API](../sg/api/cutting-edge#operation/getToken)
externalDocs:
  description: Find out more about Xfers
  url: https://id.xfers.com
x-tagGroups:
- name: User Management
  tags:
  - Registration
  - User Account
  - Bank Account
  - E-signature
- name: Payments
  tags:
  - Charge
  - Payout
  - Withdraw
  - Intents
- name: Loans
  tags:
  - Loans
  - Disbursements
  - Repayments
- name: Appendix
  tags:
  - Testing
  - Error Response
  - Pagination
  - Callback Configuration
  - Try it out with Postman