Currencycloud Withdrawal Accounts API
Manage withdrawal accounts
Manage withdrawal accounts
openapi: 3.0.3
info:
title: api-onboarding Account Usage Withdrawal Accounts API
version: v1
description: Manage withdrawal accounts
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: Withdrawal Accounts
description: Manage withdrawal accounts
paths:
/withdrawal_accounts/find:
get:
tags:
- Withdrawal Accounts
x-api-group: manage
summary: Find Withdrawal Account
description: Lists all withdrawal accounts assigned to an account.
operationId: FindWithdrawlAccount
produces:
- application/json
parameters:
- name: X-Auth-Token
in: header
required: true
type: string
description: Authentication token
minLength: 32
- name: account_id
in: query
required: false
type: string
description: The UUID of a sub-account you want to see the withdrawal accounts for. If omitted the withdrawal accounts for the house account and all sub-accounts are returned.
format: uuid
responses:
'200':
description: Success.
schema:
type: object
properties:
withdrawal_accounts:
type: array
items:
$ref: '#/definitions/WithdrawalAccount'
pagination:
$ref: '#/definitions/Pagination'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'400':
description: Client error.
x-errors:
- code: account_id_is_not_valid_uuid
category: account_id
message: account_id should be in UUID format
params: ''
schema:
$ref: '#/definitions/GetWithdrawalAccountError'
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.
x-errors:
- code: account_not_found
message: Account was not found for this id
params: ''
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.
default:
description: Unexpected error.
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
/withdrawal_accounts/{withdrawal_account_id}/pull_funds:
post:
tags:
- Withdrawal Accounts
x-api-group: manage
summary: Pull Funds From Withdrawal Account
description: Submits an ACH pull request from a specific withdrawal account. The funds will be pulled into the account the specified withdrawal account is related to.
operationId: PullFundsFromWithdrawalAccount
produces:
- application/json
parameters:
- name: X-Auth-Token
in: header
required: true
type: string
description: Authentication token
minLength: 32
- name: withdrawal_account_id
in: path
required: true
type: string
description: The withdrawal account ID you want to pull the funds from. The funds will be pulled into the account ID related to this withdrawal account.
format: uuid
- name: reference
in: formData
required: true
type: string
description: The reference you want on the statement.
minLength: 1
maxLength: 255
- name: amount
in: formData
required: true
type: number
description: The amount of funds to pull in USD.
pattern: ^\d+(\.\d{1,3})?$
responses:
'200':
description: Success.
schema:
$ref: '#/definitions/WithdrawalPullFundsRequestDetails'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'400':
description: Client error.
x-errors:
- code: withdrawal_account_not_found
category: id
message: No withdrawal account found for this account
params: ''
- code: withdrawal_account_id_is_not_valid_uuid
category: id
message: withdrawal_account_id should be in UUID format
params: ''
- code: reference_is_required
category: reference
message: reference is required
params: ''
- code: reference_invalid
category: reference
message: Only characters, digits, spaces, '_' and '-' allowed
params: ''
- code: reference_too_long
category: reference
message: Reference cannot be longer than 10 characters
params: ''
- code: amount_is_required
category: amount
message: amount is required
params: ''
- code: amount_is_in_invalid_format
category: amount
message: amount should be of numeric type with 2 dp
params: '{ "type" => "numeric_with_precision", "precision" => 2 }'
- code: amount_not_positive
category: amount
message: Amount should be positive
params: ''
- code: amount_not_allowed
category: amount
message: Amount should be up to 100000 limit
params: ''
schema:
$ref: '#/definitions/WithdrawalPullFundsRequestError'
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.
x-errors:
- code: account_not_found
message: Account was not found for this id
params: ''
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.
default:
description: Unexpected error.
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:
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
WithdrawalPullFundsRequestError:
type: object
description: 'Client error information for the Post WithdrawalAccount PullFunds 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
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: {}
GetWithdrawalAccountError:
type: object
description: 'Client error information for the Get WithdrawalAccount 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
WithdrawalPullFundsRequestDetails:
type: object
description: Details of a Withdrawal Pull Request.
required:
- id
- withdrawal_account_id
- reference
- amount
- created_at
additionalProperties: false
properties:
id:
type: string
description: The ID for the Pull Request.
withdrawal_account_id:
type: string
description: The ID of the withdrawal account to pull funds from.
reference:
type: string
description: The reference provided at the time the request was made.
amount:
type: string
description: The amount to be pulled from the withdrawal account.
created_at:
type: string
format: date-time
description: Date the pull funds request record was created.
example:
id: 82214b7e-9192-4d9e-82cf-e2c4b1670f23
withdrawal_account_id: ffb9fdea-312b-4bc8-beb9-5e44ee2d2a8c
reference: Reference
amount: 1000.0
created_at: '2019-04-18T08:17:22+00:00'
WithdrawalAccount:
type: object
description: Withdrawal account
required:
- id
- account_name
- account_holder_name
- account_holder_dob
- routing_code
- account_number
- currency
- account_id
additionalProperties: false
properties:
id:
type: string
description: The UUID of the withdrawal account.
account_name:
type: string
description: The name of the withdrawal account.
account_holder_name:
type: string
description: The name of the withdrawal account holder.
account_holder_dob:
type: string
format: date
description: The DOB of the withdrawal account holder.
routing_code:
type: string
description: The routing code of the withdrawal account.
account_number:
type: string
description: The account number of the withdrawal account.
currency:
type: string
description: The currency of the withdrawal account.
account_id:
type: string
description: The UUID of the CurrencyCloud account the withdrawal account is linked to.
example:
id: ffb9fdea-312b-4bc8-beb9-5e44ee2d2a8c
account_name: TestAccount
account_holder_name: John Smith
account_holder_dob: '1987-05-12'
routing_code: 987654321
account_number: 0123456789
currency: USD
account_id: 82214b7e-9192-4d9e-82cf-e2c4b1670f23
Pagination:
type: object
description: Pagination.
properties:
total_entries:
type: integer
total_pages:
type: integer
current_page:
type: integer
per_page:
type: integer
description: Number of results per page.
previous_page:
type: integer
next_page:
type: integer
order:
type: string
description: The field name by which the results are sorted.
order_asc_desc:
type: string
enum:
- asc
- desc
default: asc
description: Whether results are sorted in ascending or descending order.
example:
total_entries: 1
total_pages: 1
current_page: 1
per_page: 25
previous_page: -1
next_page: 2
order: created_at
order_asc_desc: asc