Currencycloud Demo API

Requests that are only available in the Demo environment.

OpenAPI Specification

currencycloud-demo-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: api-onboarding Account Usage Demo API
  version: v1
  description: Requests that are only available in the Demo environment.
servers:
- url: /onboarding
  description: Relative URL
- url: https://api.currencycloud.com/onboarding
  description: Production server (uses live data)
- url: https://devapi.currencycloud.com/onboarding
  description: Dev server (uses test data)
tags:
- name: Demo
  description: Requests that are only available in the Demo environment.
paths:
  /demo/funding/create:
    post:
      tags:
      - Demo
      x-api-group: collect
      summary: Emulate inbound funds
      description: Triggers a production-like flow for processing funds, topping up CM balance or rejecting the transaction without topping up CM balance. This resource is only available in the Currencycloud Demo environment; it is not implemented in the Production environment.
      operationId: SimulateFunding
      consumes:
      - multipart/form-data
      produces:
      - application/json
      parameters:
      - name: X-Auth-Token
        in: header
        required: true
        type: string
        description: Authentication token
        minLength: 32
      - name: id
        in: formData
        required: true
        type: string
        description: Unique value in UUID format, user-generated with each request.
        format: uuid
      - name: sender_name
        in: formData
        required: false
        type: string
        default: Test sender
        description: Sender's name.
        minLength: 1
        maxLength: 255
      - name: sender_address
        in: formData
        required: false
        type: string
        description: Sender's address.
        minLength: 1
        maxLength: 255
      - name: sender_country
        in: formData
        required: false
        type: string
        description: Two character ISO sender country code.
        format: iso3166-1-alpha-2
        pattern: ^[A-Z]{2}$
      - name: sender_reference
        in: formData
        required: false
        type: string
        description: Sender reference.
        minLength: 1
        maxLength: 255
      - name: sender_account_number
        in: formData
        required: false
        type: string
        description: Sender account number.
        minLength: 1
        maxLength: 255
      - name: sender_routing_code
        in: formData
        required: false
        type: string
        description: Sender routing code.
        minLength: 1
        maxLength: 255
      - name: receiver_account_number
        in: formData
        required: true
        type: string
        description: A client's virtual account number or its sub-account (as seen in Find Funding Accounts).
        minLength: 1
        maxLength: 255
      - name: receiver_routing_code
        in: formData
        required: false
        type: string
        description: A client's virtual account routing code or its sub-account (as seen in Find Funding Accounts).
        minLength: 1
        maxLength: 255
      - name: amount
        in: formData
        required: true
        type: number
        description: Amount of the emulated transaction.
        pattern: ^\d+(\.\d{1,3})?$
      - name: currency
        in: formData
        required: true
        type: string
        description: Three-digit currency code.
        format: iso-4217
        pattern: ^[A-Z]{3}$
      - name: action
        in: formData
        required: false
        type: string
        enum:
        - approve
        - reject
        default: approve
        description: Allows you to trigger approval or rejection behaviour.
      - name: on_behalf_of
        in: formData
        required: false
        type: string
        description: A contact UUID for the sub-account you're acting on behalf of.
        format: uuid
      responses:
        '200':
          description: Success.
          schema:
            $ref: '#/definitions/SimulateFunding'
          headers:
            X-Request-Id:
              type: string
              description: A unique reference for the request.
        '400':
          description: Client error.
          x-errors:
          - code: id_cant_be_blank
            category: id
            message: ID can't be blank
            params: ''
          - code: id_has_invalid_format
            category: id
            message: ID should be in UUID format
            params: ''
          - code: receiver_account_number_cant_be_blank
            category: receiver_account_number
            message: Receiver account number can't be blank
            params: ''
          - code: receiver_account_number_not_found
            category: receiver_account_number
            message: Receiver account number not found
            params: ''
          - code: sender_country_is_invalid
            category: sender_country
            message: Sender country is invalid
            params: ''
          - code: sender_country_has_invalid_format
            category: sender_country
            message: Sender country is not a valid ISO 3166 country code
            params: ''
          - code: amount_cant_be_blank
            category: amount
            message: Amount can't be blank
            params: ''
          - code: amount_must_be_greater_than_0
            category: amount
            message: Amount must be greater than 0
            params: ''
          - code: amount_must_be_less_than_1000000000000
            category: amount
            message: Amount must be less than 1 000 000 000 000
            params: ''
          - code: amount_is_invalid
            category: amount
            message: Amount should be numeric with 2 decimal points separated by '.'
            params: ''
          - code: action_is_invalid
            category: action
            message: 'Action is invalid, should be in range: approve, reject'
            params: ''
          - code: currency_cant_be_blank
            category: currency
            message: Currency can't be blank
            params: ''
          - code: currency_is_invalid
            category: currency
            message: Currency is invalid
            params: ''
          - code: currency_has_invalid_format
            category: currency
            message: Currency is not a valid ISO 4217 currency code
            params: ''
          - code: currency_not_supported_by_account
            category: currency
            message: Currency not supported by account
            params: ''
          - code: on_behalf_of_is_not_valid_uuid
            category: on_behalf_of
            message: on_behalf_of should be in UUID format
            params: ''
          - code: on_behalf_of_self
            category: on_behalf_of
            message: You cannot act on behalf of your own Contact
            params: ''
          - code: id_has_already_been_taken
            category: id
            message: ID was already used in a previous request
            params: ''
          schema:
            $ref: '#/definitions/CreateSimulateFundingError'
          headers:
            X-Request-Id:
              type: string
              description: A unique reference for the request.
        '401':
          description: Unauthorized.
          x-errors:
          - code: invalid_supplied_credentials
            category: username
            message: Authentication failed with the supplied credentials
            params: ''
          schema:
            $ref: '#/definitions/UnauthorizedError'
          headers:
            X-Request-Id:
              type: string
              description: A unique reference for the request.
        '403':
          description: Forbidden.
          x-errors:
          - code: permission_denied
            message: permission_denied
            params: ''
          schema:
            $ref: '#/definitions/ForbiddenError'
          headers:
            X-Request-Id:
              type: string
              description: A unique reference for the request.
        '404':
          description: Resource not found.
          headers:
            X-Request-Id:
              type: string
              description: A unique reference for the request.
        '429':
          description: Too many requests.
          x-errors:
          - code: too_many_requests
            category: base
            message: Too many requests have been made to the api. Please refer to the Developer Center for more information
            params: ''
          schema:
            $ref: '#/definitions/RateLimitError'
          headers:
            X-Request-Id:
              type: string
              description: A unique reference for the request.
        '500':
          description: Internal server error
          x-errors:
          - code: internal_server_error
            category: base
            message: Internal server error
            params: ''
          headers:
            X-Request-Id:
              type: string
              description: A unique reference for the request.
        '503':
          description: Service is temporary unavailable
          x-errors:
          - code: service_unavailable
            category: base
            message: Service is temporarily unavailable
            params: ''
          headers:
            X-Request-Id:
              type: string
              description: A unique reference for the request.
components:
  securitySchemes:
    AuthToken:
      type: apiKey
      in: header
      name: X-Auth-Token
definitions:
  SimulateFunding:
    type: object
    description: SimulateFunding
    required:
    - id
    - account_id
    - state
    - sender_name
    - sender_address
    - sender_country
    - sender_reference
    - sender_account_number
    - sender_routing_code
    - receiver_account_number
    - receiver_routing_code
    - amount
    - currency
    - action
    - short_reference
    - updated_at
    - created_at
    additionalProperties: false
    properties:
      id:
        type: string
        description: The unique UUID for the simulated fund.
      account_id:
        type: string
        description: The account UUID the simulated fund was created for.
      state:
        type: string
        description: The state of the simulated fund.
      sender_name:
        type: string
        description: The sender's name.
      sender_address:
        type: string
        description: The sender's address.
      sender_country:
        type: string
        description: Two-digit sender country.
      sender_reference:
        type: string
        description: Sender reference.
      sender_account_number:
        type: string
        description: Sender account number.
      sender_routing_code:
        type: string
        description: Sender routing code.
      receiver_account_number:
        type: string
        description: A client or its sub-account's account number.
      receiver_routing_code:
        type: string
        description: Routing code for a client or its sub-account.
      amount:
        type: string
        description: Amount of the emulated transaction.
      currency:
        type: string
        description: Three-digit currency code.
      action:
        type: string
        description: Allows you to trigger approval or rejection behaviour.
        enum:
        - approve
        - reject
      short_reference:
        type: string
        description: The reference generated by the system to identify the fund.
      created_at:
        type: string
        description: The date-time the SSI was added to the account.
        format: date-time
      updated_at:
        type: string
        description: The date-time the SSI was last updated on the account.
        format: date-time
    example:
      id: 2090939e-b2f7-3f2b-1363-jfy28d74kc72
      account_id: 2090939e-b2f7-3f2b-1363-4d235b3f58af
      state: pending
      sender_name: Mr. Sender
      sender_address: Some Street
      sender_country: GB
      sender_reference: sender-ref"
      sender_account_number: 22223333
      sender_routing_code: 222333
      receiver_account_number: 22213332
      receiver_routing_code: 776813
      amount: '150.53'
      currency: GBP
      action: reject
      short_reference: REF-22122
      created_at: '2018-05-14T14:18:30+00:00'
      updated_at: '2018-05-14T14:18:30+00:00'
  RateLimitError:
    type: object
    description: Too many requests.
    required:
    - error_code
    - error_messages
    properties:
      error_code:
        type: string
        description: A high-level error code for the whole request.
      error_messages:
        type: object
        description: Detailed error information for individual input parameters that failed validation. Object keys are the names of the invalid input parameters. Each parameter may have one or more reasons why it failed.
        additionalProperties:
          type: array
          items:
            type: object
            description: An object that represents one of the reasons why the input parameter failed.
            required:
            - code
            - message
            properties:
              code:
                type: string
                description: A unique code that identifies this validation/error.
              message:
                type: string
                description: An explanation of the error in English.
              params:
                type: object
                default: {}
                description: Relevant validation rules that failed. This can be used for translations.
                example:
                  minlength: 1
                  maxlength: 255
  UnauthorizedError:
    type: object
    description: Authorization error.
    required:
    - error_code
    - error_messages
    properties:
      error_code:
        type: string
        description: A high-level error code for the whole request.
        enum:
        - auth_failed
      error_messages:
        type: object
        description: Detailed error information for individual input parameters that failed validation. Object keys are the names of the invalid input parameters. Each parameter may have one or more reasons why it failed.
        additionalProperties:
          type: array
          items:
            type: object
            description: An object that represents one of the reasons why the input parameter failed.
            required:
            - code
            - message
            properties:
              code:
                type: string
                description: A unique code that identifies this error. It can be used for translations.
              message:
                type: string
                description: An explanation of the error in English.
              params:
                type: object
                default: {}
                description: Relevant validation rules that failed. This can be used for translations.
                example:
                  minlength: 1
                  maxlength: 255
    example:
      error_code: auth_failed
      error_messages:
        api_key:
        - code: invalid_supplied_credentials
          message: Authentication failed with the supplied credentials
          params: {}
  ForbiddenError:
    type: object
    description: Permission error.
    required:
    - error_code
    - error_messages
    properties:
      error_code:
        type: string
        description: A high-level error code for the whole request.
        enum:
        - auth_failed
      error_messages:
        type: object
        description: Detailed error information on what permissions are missing so that the request could not be fulfilled
        additionalProperties:
          type: array
          items:
            type: object
            description: An object that represents the reasons why the request was not permitted.
            required:
            - code
            - message
            properties:
              code:
                type: string
                description: A unique code that identifies this error. It can be used for translations.
              message:
                type: string
                description: An explanation of the error in English.
              params:
                type: object
                default: {}
                description: Relevant validation rules that failed. This can be used for translations.
                example:
                  minlength: 1
                  maxlength: 255
  CreateSimulateFundingError:
    type: object
    description: 'Client error information for the Create Simulated Funding endpoint.

      '
    required:
    - error_code
    - error_messages
    properties:
      error_code:
        type: string
        description: A high-level error code for the whole request.
      error_messages:
        type: object
        description: Detailed error information for individual input parameters that failed validation. Object keys are the names of the invalid input parameters. Each parameter may have one or more reasons why it failed.
        additionalProperties:
          type: array
          items:
            type: object
            description: An object that represents one of the reasons why the input parameter failed.
            required:
            - code
            - message
            properties:
              code:
                type: string
                description: A unique code that identifies this error. It can be used for translations.
              message:
                type: string
                description: An explanation of the error in English.
              params:
                type: object
                default: {}
                description: Relevant validation rules that failed. This can be used for translations.
                example:
                  minlength: 1
                  maxlength: 255