Currencycloud Demo API

Requests that are only available in the Demo environment.

Operations 1

POST /demo/funding/create Emulate inbound funds #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/currencycloud:currencycloud-demo-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

currencycloud-demo-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: The Currencycloud API is a robust, predictable, easy-to-use API for converting money between currencies and making payments around the world. Dynamically register sub-accounts to provide white labeled money transfer services to your own customers.
  version: 2.43.0
  title: Currencycloud Demo API
  termsOfService: https://www.currencycloud.com/terms-and-conditions/
  contact:
    name: support
    email: support@currencycloud.com
servers:
- url: https://devapi.currencycloud.com/v2
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
      parameters:
      - name: X-Auth-Token
        in: header
        required: true
        description: Authentication token
        schema:
          type: string
          minLength: 32
      responses:
        '200':
          description: Success.
          headers:
            X-Request-Id:
              description: A unique reference for the request.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimulateFunding'
        '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: ''
          headers:
            X-Request-Id:
              description: A unique reference for the request.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateSimulateFundingError'
        '401':
          description: Unauthorized.
          x-errors:
          - code: invalid_supplied_credentials
            category: username
            message: Authentication failed with the supplied credentials
            params: ''
          headers:
            X-Request-Id:
              description: A unique reference for the request.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: Forbidden.
          x-errors:
          - code: permission_denied
            message: permission_denied
            params: ''
          headers:
            X-Request-Id:
              description: A unique reference for the request.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '404':
          description: Resource not found.
          headers:
            X-Request-Id:
              description: A unique reference for the request.
              schema:
                type: string
        '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: ''
          headers:
            X-Request-Id:
              description: A unique reference for the request.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
        '500':
          description: Internal server error
          x-errors:
          - code: internal_server_error
            category: base
            message: Internal server error
            params: ''
          headers:
            X-Request-Id:
              description: A unique reference for the request.
              schema:
                type: string
        '503':
          description: Service is temporary unavailable
          x-errors:
          - code: service_unavailable
            category: base
            message: Service is temporarily unavailable
            params: ''
          headers:
            X-Request-Id:
              description: A unique reference for the request.
              schema:
                type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                id:
                  type: string
                  format: uuid
                  description: Unique value in UUID format, user-generated with each request.
                sender_name:
                  type: string
                  default: Test sender
                  maxLength: 255
                  minLength: 1
                  description: Sender's name.
                sender_address:
                  type: string
                  maxLength: 255
                  minLength: 1
                  description: Sender's address.
                sender_country:
                  type: string
                  format: iso3166-1-alpha-2
                  pattern: ^[A-Z]{2}$
                  description: Two character ISO sender country code.
                sender_reference:
                  type: string
                  maxLength: 255
                  minLength: 1
                  description: Sender reference.
                sender_account_number:
                  type: string
                  maxLength: 255
                  minLength: 1
                  description: Sender account number.
                sender_routing_code:
                  type: string
                  maxLength: 255
                  minLength: 1
                  description: Sender routing code.
                receiver_account_number:
                  type: string
                  maxLength: 255
                  minLength: 1
                  description: A client's virtual account number or its sub-account (as seen in Find Funding Accounts).
                receiver_routing_code:
                  type: string
                  maxLength: 255
                  minLength: 1
                  description: A client's virtual account routing code or its sub-account (as seen in Find Funding Accounts).
                amount:
                  type: number
                  pattern: ^\d+(\.\d{1,3})?$
                  description: Amount of the emulated transaction.
                currency:
                  type: string
                  format: iso-4217
                  pattern: ^[A-Z]{3}$
                  description: Three-digit currency code.
                action:
                  type: string
                  enum:
                  - approve
                  - reject
                  default: approve
                  description: Allows you to trigger approval or rejection behaviour.
                on_behalf_of:
                  type: string
                  format: uuid
                  description: A contact UUID for the sub-account you're acting on behalf of.
              required:
              - id
              - receiver_account_number
              - amount
              - currency
components:
  schemas:
    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
    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
    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
    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'
    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: {}
externalDocs:
  description: API overview
  url: https://www.currencycloud.com/developers/