openapi: 3.0.2 info: description: | ## Terms and Definitions Throughout this document and the Velo platform the following terms are used: * **Payor.** An entity (typically a corporation) which wishes to pay funds to one or more payees via a payout. * **Payee.** The recipient of funds paid out by a payor. * **Payment.** A single transfer of funds from a payor to a payee. * **Payout.** A batch of Payments, typically used by a payor to logically group payments (e.g. by business day). Technically there need be no relationship between the payments in a payout - a single payout can contain payments to multiple payees and/or multiple payments to a single payee. * **Sandbox.** An integration environment provided by Velo Payments which offers a similar API experience to the production environment, but all funding and payment events are simulated, along with many other services such as OFAC sanctions list checking. ## Overview The Velo Payments API allows a payor to perform a number of operations. The following is a list of the main capabilities in a natural order of execution: * Authenticate with the Velo platform * Maintain a collection of payees * Query the payor’s current balance of funds within the platform and perform additional funding * Issue payments to payees * Query the platform for a history of those payments This document describes the main concepts and APIs required to get up and running with the Velo Payments platform. It is not an exhaustive API reference. For that, please see the separate Velo Payments API Reference. ## API Considerations The Velo Payments API is REST based and uses the JSON format for requests and responses. Most calls are secured using OAuth 2 security and require a valid authentication access token for successful operation. See the Authentication section for details. Where a dynamic value is required in the examples below, the {token} format is used, suggesting that the caller needs to supply the appropriate value of the token in question (without including the { or } characters). Where curl examples are given, the –d @filename.json approach is used, indicating that the request body should be placed into a file named filename.json in the current directory. Each of the curl examples in this document should be considered a single line on the command-line, regardless of how they appear in print. ## Authenticating with the Velo Platform Once Velo backoffice staff have added your organization as a payor within the Velo platform sandbox, they will create you a payor Id, an API key and an API secret and share these with you in a secure manner. You will need to use these values to authenticate with the Velo platform in order to gain access to the APIs. The steps to take are explained in the following: create a string comprising the API key (e.g. 44a9537d-d55d-4b47-8082-14061c2bcdd8) and API secret (e.g. c396b26b-137a-44fd-87f5-34631f8fd529) with a colon between them. E.g. 44a9537d-d55d-4b47-8082-14061c2bcdd8:c396b26b-137a-44fd-87f5-34631f8fd529 base64 encode this string. E.g.: NDRhOTUzN2QtZDU1ZC00YjQ3LTgwODItMTQwNjFjMmJjZGQ4OmMzOTZiMjZiLTEzN2EtNDRmZC04N2Y1LTM0NjMxZjhmZDUyOQ== create an HTTP **Authorization** header with the value set to e.g. Basic NDRhOTUzN2QtZDU1ZC00YjQ3LTgwODItMTQwNjFjMmJjZGQ4OmMzOTZiMjZiLTEzN2EtNDRmZC04N2Y1LTM0NjMxZjhmZDUyOQ== perform the Velo authentication REST call using the HTTP header created above e.g. via curl: ``` curl -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Basic NDRhOTUzN2QtZDU1ZC00YjQ3LTgwODItMTQwNjFjMmJjZGQ4OmMzOTZiMjZiLTEzN2EtNDRmZC04N2Y1LTM0NjMxZjhmZDUyOQ==" \ 'https://api.sandbox.velopayments.com/v1/authenticate?grant_type=client_credentials' ``` If successful, this call will result in a **200** HTTP status code and a response body such as: ``` { "access_token":"19f6bafd-93fd-4747-b229-00507bbc991f", "token_type":"bearer", "expires_in":1799, "scope":"..." } ``` ## API access following authentication Following successful authentication, the value of the access_token field in the response (indicated in green above) should then be presented with all subsequent API calls to allow the Velo platform to validate that the caller is authenticated. This is achieved by setting the HTTP Authorization header with the value set to e.g. Bearer 19f6bafd-93fd-4747-b229-00507bbc991f such as the curl example below: ``` -H "Authorization: Bearer 19f6bafd-93fd-4747-b229-00507bbc991f " ``` If you make other Velo API calls which require authorization but the Authorization header is missing or invalid then you will get a **401** HTTP status response. license: name: Apache License 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html title: Velo Payments APIs version: 2.30.53 x-logo: url: https://apidocs.velopayments.com/velo-logo-e9573185_new.svg servers: - description: Velo Payments Sandbox for testing url: https://api.sandbox.velopayments.com/ - description: Velo Payments Production URL url: https://api.payouts.velopayments.com security: - OAuth2: [] tags: - description: | A payee is a person you wish to transfer money to. In this section you will find API opertions for working with Payees. name: Payees - description: Payee invitation is a process of inviting individual payees to the Velo platform. In this sction you will find APIs for working with Payee Invitations. name: Payee Invitation - description: A Payor is the entity which is sending money. Here you will find the available APIs for working with Payors. name: Payors - description: Payout Service APIs allow you to create and instruct payouts to payees. name: Payouts - description: Payment Audit Service APIs allow you to see the history of fundings, payouts, and payments to payees. name: Payment Audit Service - description: |

When a payor creates a payee then an invite token is emailed to the invited payee

Payees use this token to onboard to the platform

There are several required tasks that the payee must perform before they are accepted onto the platform

name: Invites - description: |

Verification tokens allow users to complete authenitcation flows such as user invite, MFA registration and password reset

Tokens have an expiry and are one-time use only

name: Tokens - description: |

This document, including all counts herein, and the Velo Payments API are the intellectual property of Velo Payments. The Velo Payment API and your use of the Velo Payment API, is goverend by and subject to the Velo Payments Terms of Use

© Velo Payments, Inc.

name: Legal paths: /v1/authenticate: post: description: |

Use this endpoint to obtain an access token for calling Velo Payments APIs.

You need your API key and API secret issued by Velo

To login and get an access token the API key and API secret must be Base64 encoded by concatenating them with a colon between them

e.g. Given an ApiKey: 44a9537d-d55d-4b47-8082-14061c2bcdd8 and ApiSecret: c396b26b-137a-44fd-87f5-34631f8fd529

Using a Base64 encode function Base64Encoder().encode("44a9537d-d55d-4b47-8082-14061c2bcdd8:c396b26b-137a-44fd-87f5-34631f8fd529")

Included as a Basic Authorization header: -H "Authorization: Basic NDRhOTUzN2QtZDU1ZC00YjQ3LTgwODItMTQwNjFjMmJjZGQ4OmMzOTZiMjZiLTEzN2EtNDRmZC04N2Y1LTM0NjMxZjhmZDUyOQ=="

operationId: veloAuth parameters: - description: OAuth grant type. Should use 'client_credentials' in: query name: grant_type schema: default: client_credentials type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/AuthResponse' description: Valid Authenication response headers: Cache-Control: description: Ensure clients do not cache request required: true schema: default: no-store type: string Pragma: description: Ensure clients do not cache request required: true schema: default: no-cache type: string security: - basicAuth: [] summary: Authentication endpoint tags: - Login /v1/logout: post: description: |

Given a valid access token in the header then log out the authenticated user or client

Will revoke the token

operationId: logout responses: 204: description: User has been logged out 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: Logout tags: - Login x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v1/logout' -i -X POST \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer 93560bbb-5e79-492a-97b5-1ffbdf1cfeb8' /v1/password/reset: post: description: |

Reset password

An email with an embedded link will be sent to the receipient of the email address

The link will contain a token to be used for resetting the password

operationId: resetPassword requestBody: content: application/json: schema: $ref: '#/components/schemas/ResetPasswordRequest' description: An Email address to send the reset password link to required: true responses: 204: description: the request was accepted 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure security: [] summary: Reset password tags: - Login x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v1/password/reset' -i -X POST \ -H 'Content-Type: application/json' \ -d '{"email":"foo@example.com"}' /v1/validate: post: description: |

The second part of login involves validating using an MFA device

An access token with PRE_AUTH authorities is required

operationId: validateAccessToken parameters: - description: Bearer token authorization leg of validate in: header name: Authorization required: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/AccessTokenValidationRequest' description: | An OTP from the user's registered MFA Device required: true responses: 200: content: application/json: schema: $ref: '#/components/schemas/AccessTokenResponse' description: User request has been validated 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: validate tags: - Login x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v1/validate' -i -X POST \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer 93560bbb-5e79-492a-97b5-1ffbdf1cfeb8' \ -d '{"otp":"123456"}' /v2/users: get: description: Get a paginated response listing the Users operationId: listUsers parameters: - description: The Type of the User. in: query name: type required: false schema: $ref: '#/components/schemas/UserType' - description: The status of the User. in: query name: status required: false schema: $ref: '#/components/schemas/UserStatus' - description: The entityId of the User. in: query name: entityId required: false schema: format: uuid type: string - description: The Type of the Payee entity. Either COMPANY or INDIVIDUAL. in: query name: payeeType required: false schema: $ref: '#/components/schemas/PayeeType' - description: Page number. Default is 1. in: query name: page required: false schema: default: 1 format: int32 type: integer - description: The number of results to return in a page in: query name: pageSize required: false schema: default: 25 format: int32 maximum: 100 minimum: 1 type: integer - description: | List of sort fields (e.g. ?sort=email:asc,lastName:asc) Default is email:asc 'name' The supported sort fields are - email, lastNmae. in: query name: sort required: false schema: default: email:asc pattern: '[a-zA-Z]+[:desc|:asc]' type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/PagedUserResponse' description: Paginated list of Users filtered by query parameters 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: List Users tags: - Users x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v2/users?pageSize=2&page=8&status=DISABLED' -i -X GET \ -H 'Authorization: Bearer 6dd5e976-e329-462f-bd6b-25d463cf02fd' \ -H 'Content-Type: application/json' /v2/users/{userId}: delete: description: | Delete User by Id. operationId: deleteUserByIdV2 parameters: - description: The UUID of the User. in: path name: userId required: true schema: format: uuid type: string responses: 204: description: request completed okay 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Delete a User tags: - Users x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v2/users/d4ca564-f2ee-4725-97c2-7193a093f0f1' -i -X DELETE \ -H 'Authorization: Bearer 3387c417-464c-41a6-b25e-6630f0a06093' \ -H 'Content-Type: application/json' get: description: | Get a Single User by Id. operationId: getUserByIdV2 parameters: - description: The UUID of the User. in: path name: userId required: true schema: format: uuid type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/UserResponse' description: Get User Details x-contracts: - contractId: 1 headers: Content-Type: application/json body: id: 5782f21b-03ab-4f4c-a2ca-ca1e1141eeee email: foo@example.com firstName: Foo lastName: Bar status: ENABLED smsNumber: +44123555000 primaryContactNumber: +44123555001 secondaryContactNumber: +44123555002 entityId: 93742f58-d584-4527-b187-19a90a70fe89 roles: - payor.admin mfaStatus: REGISTERED mfaType: TOTP lockedOut: false 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Get User tags: - Users x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v2/users/d4ca564-f2ee-4725-97c2-7193a093f0f1' -i -X GET \ -H 'Authorization: Bearer 3387c417-464c-41a6-b25e-6630f0a06093' \ -H 'Content-Type: application/json' /v2/users/{userId}/disable: post: description: |

If a user is enabled this endpoint will disable them

The invoker must have the appropriate permission

A user cannot disable themself

When a user is disabled any active access tokens will be revoked and the user will not be able to log in

operationId: disableUserV2 parameters: - description: The UUID of the User. in: path name: userId required: true schema: format: uuid type: string responses: 204: description: Success the user was disabled or was already disabled 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Disable a User tags: - Users x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v2/users/79a6fdaa-f4bb-47b7-9c1f-f6fd99c156a0/disable' -i -X POST \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer 93560bbb-5e79-492a-97b5-1ffbdf1cfeb8' /v2/users/{userId}/enable: post: description: |

If a user has been disabled this endpoints will enable them

The invoker must have the appropriate permission

A user cannot enable themself

If the user is a payor user and the payor is disabled this operation is not allowed

If enabling a payor user would breach the limit for master admin payor users the request will be rejected

operationId: enableUserV2 parameters: - description: The UUID of the User. in: path name: userId required: true schema: format: uuid type: string responses: 204: description: Success the user was enabled or was already enabled 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Enable a User tags: - Users x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v2/users/79a6fdaa-f4bb-47b7-9c1f-f6fd99c156a0/enable' -i -X POST \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer 93560bbb-5e79-492a-97b5-1ffbdf1cfeb8' /v2/users/invite: post: description: | Create a User and invite them to the system operationId: inviteUser requestBody: content: application/json: schema: $ref: '#/components/schemas/InviteUserRequest' description: Details of User to invite required: true responses: 204: description: No Content. The user was invited successfully 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 409: content: application/json: schema: $ref: '#/components/schemas/inline_response_409' description: | The request contained data that would result in a duplicate value 412: content: application/json: schema: $ref: '#/components/schemas/inline_response_412' description: | The request could not be completed as a precondition was not met summary: Invite a User tags: - Users x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v2/users/invite' -i -X POST \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer 93560bbb-5e79-492a-97b5-1ffbdf1cfeb8' \ -d '{"email":"foo@example.com", \ "mfaType":"YUBIKEY", \ "smsNumber":"+4411223344556", \ "primaryContactNumber":"+4411223344556", \ "secondaryContactNumber":null, \ "roles":["payor.admin"], \ "firstName":"Foo", \ "lastName":"Bar", \ "entityId":"f84e437a-50a4-4e45-9223-e0601e370a79", \ "verificationCode":null \ }' /v2/users/{userId}/roleUpdate: post: description: |

Update the user's Role

operationId: roleUpdate parameters: - description: The UUID of the User. in: path name: userId required: true schema: format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/RoleUpdateRequest' description: The Role to change to required: true responses: 204: description: request completed okay 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Update User Role tags: - Users x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v2/users/ad19fc24-0cf6-4c15-a571-754b015b18e0/roleUpdate' -i -X POST \ -H 'Authorization: Bearer 147c0008-2ec1-4009-9e2e-1f435f02a69b' \ -H 'Content-Type: application/json' \ -d '{"role":"payor.admin", \ "verificationCode": "123456" \ }' /v2/users/{userId}/mfa/unregister: post: description: |

Unregister the MFA device for the user

If the user does not require further verification then a register new MFA device token will be sent to them via their email address

operationId: unregisterMFA parameters: - description: The UUID of the User. in: path name: userId required: true schema: format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UnregisterMFARequest' description: The MFA Type to unregister required: true responses: 204: description: the MFA Type to unregister 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Unregister MFA for the user tags: - Users x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v2/users/79a6fdaa-f4bb-47b7-9c1f-f6fd99c156a0/mfa/unregister' -i -X POST \ -H 'Content-Type: application/json' \ -d '{"mfaType":"TOTP", \ "verificationCode":"123456", \ }' /v2/users/{userId}/tokens: post: description: |

Resend the specified token

The token to resend must already exist for the user

It will be revoked and a new one issued

operationId: resendToken parameters: - description: The UUID of the User. in: path name: userId required: true schema: format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ResendTokenRequest' description: The type of token to resend required: true responses: 204: description: request completed okay 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: Resend a token tags: - Tokens - Users x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v2/users/79a6fdaa-f4bb-47b7-9c1f-f6fd99c156a0/tokens' -i -X POST \ -H 'Authorization: Bearer 147c0008-2ec1-4009-9e2e-1f435f02a69b' \ -H 'Content-Type: application/json' \ -d '{"tokenType":"MFA_REGISTRATION"}' /v2/users/{userId}/unlock: post: description: | If a user is locked this endpoint will unlock them operationId: unlockUserV2 parameters: - description: The UUID of the User. in: path name: userId required: true schema: format: uuid type: string responses: 204: description: Success the user was unlocked or was already unlocked 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Unlock a User tags: - Users x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v2/users/79a6fdaa-f4bb-47b7-9c1f-f6fd99c156a0/unlock' -i -X POST \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer 93560bbb-5e79-492a-97b5-1ffbdf1cfeb8' /v2/users/{userId}/userDetailsUpdate: post: description: |

Update the profile details for the given user

When updating Payor users with the role of payor.master_admin a verificationCode is required

operationId: userDetailsUpdate parameters: - description: The UUID of the User. in: path name: userId required: true schema: format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UserDetailsUpdateRequest' description: The details of the user to update required: true responses: 204: description: request completed okay 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available 409: content: application/json: schema: $ref: '#/components/schemas/inline_response_409' description: | The request contained data that would result in a duplicate value summary: Update User Details tags: - Users x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v2/users/ad19fc24-0cf6-4c15-a571-754b015b18e0/userDetailsUpdate' -i -X POST \ -H 'Authorization: Bearer 147c0008-2ec1-4009-9e2e-1f435f02a69b' \ -H 'Content-Type: application/json' \ -d '{"firstName: "Foo", \ "lastName": "Bar", \ "primaryContactNumber": "+1234567890", \ "secondaryContactNumber": "+!234567890", \ "email": "foo@example.com", \ "smsNumber": "+1234567890", \ "mfaType": "TOTP", \ "verificationCode": "123456" \ }' /v2/users/registration/sms: post: description: |

Register an Sms number and send an OTP to it

Used for manual verification of a user

The backoffice user initiates the request to send the OTP to the user's sms

The user then reads back the OTP which the backoffice user enters in the verifactionCode property for requests that require it

operationId: registerSms requestBody: content: application/json: schema: $ref: '#/components/schemas/RegisterSmsRequest' description: a SMS Number to send an OTP to required: true responses: 204: description: request completed okay 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: Register SMS Number tags: - Users x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v2/users/registration/sms' -i -X POST \ -H 'Authorization: Bearer 147c0008-2ec1-4009-9e2e-1f435f02a69b' \ -H 'Content-Type: application/json' \ -d '{"smsNumber":"+4411223344556"}' /v2/users/self: get: description: | Get the user's details operationId: getSelf responses: 200: content: application/json: schema: $ref: '#/components/schemas/UserResponse' description: Get User Details 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: Get Self tags: - Users x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v2/users/self' -i -X GET \ -H 'Authorization: Bearer 3387c417-464c-41a6-b25e-6630f0a06093' \ -H 'Content-Type: application/json' /v2/users/self/userDetailsUpdate: post: description: |

Update the profile details for the given user

Only Payee user types are supported

operationId: userDetailsUpdateForSelf requestBody: content: application/json: schema: $ref: '#/components/schemas/PayeeUserSelfUpdateRequest' description: The details of the user to update required: true responses: 204: description: request completed okay 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 409: content: application/json: schema: $ref: '#/components/schemas/inline_response_409' description: | The request contained data that would result in a duplicate value summary: Update User Details for self tags: - Users x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v2/users/self/userDetailsUpdate' -i -X POST \ -H 'Authorization: Bearer 147c0008-2ec1-4009-9e2e-1f435f02a69b' \ -H 'Content-Type: application/json' \ -d '{"firstName: "Foo", \ "lastName": "Bar", \ "primaryContactNumber": "+1234567890", \ "secondaryContactNumber": "+!234567890", \ "email": "foo@example.com", \ "smsNumber": "+1234567890", \ }' /v2/users/self/mfa/unregister: post: description: |

Unregister the MFA device for the user

If the user does not require further verification then a register new MFA device token will be sent to them via their email address

operationId: unregisterMFAForSelf parameters: - description: Bearer token authorization leg of validate in: header name: Authorization required: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/SelfMFATypeUnregisterRequest' description: The MFA Type to unregister required: true responses: 204: description: the MFA Type to unregister 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: Unregister MFA for Self tags: - Users x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v2/users/self/mfa/unregister' -i -X POST \ -H 'Content-Type: application/json' \ -d '{"mfaType":"TOTP"}' /v2/users/self/password: post: description: | Update password for self operationId: updatePasswordSelf requestBody: content: application/json: schema: $ref: '#/components/schemas/SelfUpdatePasswordRequest' description: The password required: true responses: 204: description: the password was submitted and accepted 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: Update Password for self tags: - Users x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v2/users/self/password' -i -X POST \ -H 'Content-Type: application/json' \ -d '{"oldpassword":"abcd_12345", \ "newPassword": "myNewPassword"}' /v2/users/self/password/validate: post: description: | validate the password and return a score operationId: validatePasswordSelf requestBody: content: application/json: schema: $ref: '#/components/schemas/PasswordRequest' description: The password required: true responses: 200: content: application/json: schema: $ref: '#/components/schemas/ValidatePasswordResponse' description: the password was checked and a score returned 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: Validate the proposed password tags: - Users x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v2/users/self/password/validate' -i -X POST \ -H 'Content-Type: application/json' \ -d '{"password":"abcd_12345"}' /v1/payors/{payorId}: get: deprecated: true description: | Get a Single Payor by Id. operationId: getPayorById parameters: - description: The Payor Id in: path name: payorId required: true schema: format: uuid type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/PayorV1' description: Get Payor Details x-contracts: - contractId: 1 headers: Content-Type: application/json;charset=UTF-8 body: payorId: 0a818933-087d-47f2-ad83-2f986ed087eb payorName: Joe address: line1: 101 California Street city: San Francisco zipOrPostcode: "94111" country: US primaryContactName: Joe primaryContactPhone: 1231231234 primaryContactEmail: foo@example.com kycState: PASSED_KYC manualLockout: false payeeGracePeriodProcessingEnabled: true payeeGracePeriodDays: 90 dbaName: FlyByNight, Inc allowsLanguageChoice: false reminderEmailsOptOut: false language: EN supportContact: support@example.com collectiveAlias: MyAlias maxMasterPayorAdmins: 2 404: content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Payor Id Not Found x-contracts: - contractId: 2 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: Get Payor tags: - Payors x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v1/payors/126969bd-6a18-47ec-96e1-57559afecf32' -i -X GET \ -H 'Authorization: Bearer 3387c417-464c-41a6-b25e-6630f0a06093' \ -H 'Content-Type: application/json' x-contracts: - contractId: 1 name: Test Get Payor contractPath: /v1/payors/0a818933-087d-47f2-ad83-2f986ed087eb serviceName: payor-service - contractId: 2 name: Test Payor Not Found contractPath: /v1/payors/00000000-0000-0000-0000-000000000000 serviceName: payor-service /v2/payors/{payorId}: get: description: | Get a Single Payor by Id. operationId: getPayorByIdV2 parameters: - description: The Payor Id in: path name: payorId required: true schema: format: uuid type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/PayorV2' description: Get Payor Details x-contracts: - contractId: 1 headers: Content-Type: application/json;charset=UTF-8 body: payorId: 0a818933-087d-47f2-ad83-2f986ed087eb payorXid: ABC_12345678 payorName: Joe address: line1: 101 California Street city: San Francisco zipOrPostcode: 94111 country: US primaryContactName: Joe primaryContactPhone: 1231231234 primaryContactEmail: foo@example.com kycState: PASSED_KYC manualLockout: false payeeGracePeriodProcessingEnabled: true payeeGracePeriodDays: 90 dbaName: FlyByNight, Inc allowsLanguageChoice: false reminderEmailsOptOut: false language: EN supportContact: support@example.com collectiveAlias: MyAlias maxMasterPayorAdmins: 2 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Payor Id Not Found x-contracts: - contractId: 2 summary: Get Payor tags: - Payors x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v2/payors/126969bd-6a18-47ec-96e1-57559afecf32' -i -X GET \ -H 'Authorization: Bearer 3387c417-464c-41a6-b25e-6630f0a06093' \ -H 'Content-Type: application/json' x-contracts: - contractId: 1 name: Test Get Payor V2 contractPath: /v2/payors/0a818933-087d-47f2-ad83-2f986ed087eb serviceName: payor-service - contractId: 2 name: Test Payor Not Found V2 contractPath: /v2/payors/00000000-0000-0000-0000-000000000000 serviceName: payor-service /v1/payors/{payorId}/applications: post: description: Create an application for the given Payor ID. Applications are programatic users which can be assigned unique keys. operationId: payorCreateApplicationRequest parameters: - description: The Payor Id in: path name: payorId required: true schema: format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/PayorCreateApplicationRequest' description: Details of application to create required: true x-contracts: - contractId: 1 headers: Content-Type: application/json body: name: foo description: a foo application matchers: headers: - key: Content-Type regex: application/json.* body: - path: $.name type: by_regex predefined: non_empty - path: $.description type: by_regex predefined: non_empty responses: 201: description: Success headers: Location: description: location schema: type: string x-contracts: - contractId: 1 mathers: headers: - key: Location predefined: non_blank 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 409: content: application/json: schema: $ref: '#/components/schemas/inline_response_409' description: | The request contained data that would result in a duplicate value summary: Create Application tags: - Payors x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v1/payors/79a6fdaa-f4bb-47b7-9c1f-f6fd99c156a0/applications' -i -X POST \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer 93560bbb-5e79-492a-97b5-1ffbdf1cfeb8' \ -d '{"name":"foo","description":"a foo application"}' x-contracts: - contractId: 1 name: Test Create Application contractPath: /v1/payors/835ac62e-616c-4261-bf38-63366db78c0d/applications serviceName: payor-service /v1/payors/{payorId}/applications/{applicationId}/keys: post: description: Create an an API key for the given payor Id and application Id operationId: payorCreateApiKeyRequest parameters: - description: The Payor Id in: path name: payorId required: true schema: format: uuid type: string - description: Application ID in: path name: applicationId required: true schema: format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/PayorCreateApiKeyRequest' description: Details of application API key to create required: true x-contracts: - contractId: 4 headers: Content-Type: application/json body: name: Key Name description: A key description roles: - payor.admin matchers: headers: - key: Content-Type regex: application/json.* body: - path: $.name type: by_regex predefined: non_empty - path: $.description type: by_regex predefined: non_empty - path: $.roles type: by_regex predefined: non_empty responses: 200: content: application/json: schema: $ref: '#/components/schemas/PayorCreateApiKeyResponse' description: HTTP Ok, key created x-contracts: - contractId: 4 headers: Content-Type: application/json body: apiKey: 385d4506-e7dd-446e-a092-5f30b98e7b26 apiSecret: f25767d9-342a-48ac-a788-0a7a38ae6fb3 matchers: headers: - key: Content-Type regex: application/json.* body: - path: $.apiKey type: by_regex predefined: non_empty - path: $.apiSecret type: by_regex predefined: non_empty 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Create API Key tags: - Payors x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v1/payors/79a6fdaa-f4bb-47b7-9c1f-f6fd99c156a0/applications/ba08877f-9d96-41e4-9c26-44a872d856ae/keys' -i -X POST \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer 698f1609-c616-48f0-b8d5-03373e9fbd40' \ -d '{"name":"foo","description":"a foo key","roles":["foo.role"]}' x-contracts: - contractId: 4 name: Create an API key for a payor contractPath: /v1/payors/0a818933-087d-47f2-ad83-2f986ed087eb/applications/ba08877f-9d96-41e4-9c26-44a872d856ae/keys serviceName: payor-service /v1/payors/{payorId}/reminderEmailsUpdate: post: description: | Update the emailRemindersOptOut field for a Payor. This API can be used to opt out or opt into Payor Reminder emails. These emails are typically around payee events such as payees registering and onboarding. operationId: payorEmailOptOut parameters: - description: The Payor Id in: path name: payorId required: true schema: format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/PayorEmailOptOutRequest' description: Reminder Emails Opt-Out Request required: true x-contracts: - contractId: 1 headers: Content-Type: application/json body: reminderEmailsOptOut: true - contractId: 2 headers: Content-Type: application/json body: reminderEmailsOptOut: true responses: 202: description: HTTP Accepted x-contracts: - contractId: 1 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Payor Id Not Found x-contracts: - contractId: 2 summary: Reminder Email Opt-Out tags: - Payors x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v1/payors/d8d49d3a-0712-4ad0-bb14-2e308d240233/reminderEmailsUpdate' -i -X POST \ -H 'Authorization: Bearer fc825fad-e4a7-49e5-b6d9-9b9aa47a19c8' \ -H 'Content-Type: application/json' \ -d '{"reminderEmailsOptOut":true}' x-contracts: - contractId: 1 name: Test Email Opt-Out serviceName: payor-service contractPath: /v1/payors/0a818933-087d-47f2-ad83-2f986ed087eb/reminderEmailsUpdate - contractId: 2 name: Test Not Found serviceName: payor-service contractPath: /v1/payors/00000000-0000-0000-0000-000000000000/reminderEmailsUpdate /v1/payors/{payorId}/branding/logos: post: description: Add Payor Logo. Logo file is used in your branding, and emails sent to payees. operationId: payorAddPayorLogo parameters: - description: The Payor Id in: path name: payorId required: true schema: format: uuid type: string requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/PayorLogoRequest' description: Image file to upload required: true responses: 204: description: No Content 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Add Logo tags: - Payors x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v1/payors/450ecb66-df18-4d0c-b557-f718782775df/branding/logos' -i -X POST \ -H 'Content-Type: multipart/form-data' \ -F 'logo=@mylogo.png;type=image/png' /v1/payors/{payorId}/branding: get: description: Get the payor branding details. operationId: payorGetBranding parameters: - description: The Payor Id in: path name: payorId required: true schema: format: uuid type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/PayorBrandingResponse' description: HTTP Ok, key created x-contracts: - contractId: 1 body: payorName: Payor1 logoUrl: http://example.com collectiveAlias: customer supportContact: support@example.com dbaName: FlybyNight Inc matchers: headers: - key: Content_type regex: application/json.* body: - path: $.payorName type: by_regex predefined: non_empty - path: $.logoUrl type: by_regex predefined: non_empty - path: $.collectiveAlias type: by_regex predefined: non_empty - path: $.supportContact type: by_regex predefined: non_empty - path: $.dbaName type: by_regex predefined: non_empty 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Payor Id Not Found x-contracts: - contractId: 2 summary: Get Branding tags: - Payors x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v1/payors/450ecb66-df18-4d0c-b557-f718782775df/branding' -i -X GET \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer d60eef1c-bea6-4f7e-8755-e916268ad4ff' x-contracts: - contractId: 1 name: Get Payor Branding Details description: Test to get branding details for payor label: Payor_Branding priority: 10 ignored: false contractPath: /v1/payors/0a818933-087d-47f2-ad83-2f986ed087eb/branding serviceName: payor-service - contractId: 2 name: Get Payor Brandding Details - not found description: Test to not found status returned by API label: Payor_Branding priority: 20 contractPath: /v1/payors/00000000-0000-0000-0000-000000000000/branding serviceName: payor-service /v1/payorLinks: get: description: This endpoint allows you to list payor links operationId: payorLinks parameters: - description: The Payor ID from which to start the query to show all descendants in: query name: descendantsOfPayor required: false schema: format: uuid type: string - description: Look for the parent payor details for this payor id in: query name: parentOfPayor required: false schema: format: uuid type: string - description: | List of additional Payor fields to include in the response for each Payor. The values of payorId and payorName and always included for each Payor - 'fields' allows you to add to this. Example: ```fields=primaryContactEmail,kycState``` - will include payorId+payorName+primaryContactEmail+kycState for each Payor Default if not specified is to include only payorId and payorName. The supported fields are any combination of: primaryContactEmail,kycState in: query name: fields required: false schema: type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/PayorLinksResponse' description: Details of Payor Links x-contracts: - contractId: 1 headers: Content-Type: application/json body: links: - linkId: 65514617-d18d-4bb4-8cee-09b3e7625fc9 fromPayorId: 51e93026-2f47-4dfd-a5ff-c0da0954a847 linkType: PARENT_OF toPayorId: b0b09d8a-866c-4703-833e-2ff9106e185b - linkId: 6a91b045-6f42-4f9f-a627-f97f66d39bef fromPayorId: b0b09d8a-866c-4703-833e-2ff9106e185b linkType: PARENT_OF toPayorId: 15486051-aa39-430d-8926-a4bc2fea1d04 payors: - payorId: 51e93026-2f47-4dfd-a5ff-c0da0954a847 payorName: Payor One - payorId: b0b09d8a-866c-4703-833e-2ff9106e185b payorName: Payor Two - payorId: 15486051-aa39-430d-8926-a4bc2fea1d04 payorName: Payor Three matchers: headers: - key: Content-Type regex: application/json.* - contractId: 2 headers: Content-Type: application/json body: links: - linkId: 65514617-d18d-4bb4-8cee-09b3e7625fc9 fromPayorId: 51e93026-2f47-4dfd-a5ff-c0da0954a847 linkType: PARENT_OF toPayorId: b0b09d8a-866c-4703-833e-2ff9106e185b - linkId: 6a91b045-6f42-4f9f-a627-f97f66d39bef fromPayorId: b0b09d8a-866c-4703-833e-2ff9106e185b linkType: PARENT_OF toPayorId: 15486051-aa39-430d-8926-a4bc2fea1d04 payors: - payorId: 51e93026-2f47-4dfd-a5ff-c0da0954a847 payorName: Payor One primaryContactEmail: payorone@somewhere.com kycState: FAILED_KYC - payorId: b0b09d8a-866c-4703-833e-2ff9106e185b payorName: Payor Two primaryContactEmail: payortwo@anothersite.com kycState: PASSED_KYC - payorId: 15486051-aa39-430d-8926-a4bc2fea1d04 payorName: Payor Three primaryContactEmail: payorthree@example.com kycState: REQUIRES_KYC matchers: headers: - key: Content-Type regex: application/json.* 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: List Payor Links tags: - Payors x-contracts: - contractId: 1 ignored: true name: Test List Payor Links - default Payor fields request: queryParameters: - key: descendantsOfPayor value: 0a818933-087d-47f2-ad83-2f986ed087eb serviceName: payor-service - contractId: 2 ignored: true name: Test List Payor Links - all Payor fields requested request: queryParameters: - key: descendantsOfPayor value: 0a818933-087d-47f2-ad83-2f986ed087eb - key: fields value: primaryContactEmail,kycState serviceName: payor-service x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v1/payorLinks?descendantsOfPayor=0a818933-087d-47f2-ad83-2f986ed087eb' -i -X GET \ -H 'Authorization: Bearer 3387c417-464c-41a6-b25e-6630f0a06093' \ -H 'Content-Type: application/json' post: description: This endpoint allows you to create a payor link. operationId: createPayorLinks requestBody: content: application/json: schema: $ref: '#/components/schemas/CreatePayorLinkRequest' description: Request to create a payor link required: true responses: 201: description: HTTP Creeated headers: Location: description: URI to location of created resource schema: example: http://example.com/resourcepath/123123123 type: string 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions security: - oAuthVeloBackOffice: [] summary: Create a Payor Link tags: - Payors Private /v3/payees/{payeeId}: delete: deprecated: true description: |

Use v4 instead

This API will delete Payee by Id (UUID). Deletion by ID is not allowed if:

* Payee ID is not found

* If Payee has not been on-boarded

* If Payee is in grace period

* If Payee has existing payments

operationId: deletePayeeByIdV3 parameters: - description: The UUID of the payee. in: path name: payeeId required: true schema: example: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 format: uuid type: string responses: 204: description: No content. Payee Id accepted for deletion. 400: description: Bad Request. Payee Id failed validation for deletion. 404: description: Payee Id not found summary: Delete Payee by Id tags: - Payees get: deprecated: true description: |

Use v4 instead

Get Payee by Id

operationId: getPayeeByIdV3 parameters: - description: The UUID of the payee. in: path name: payeeId required: true schema: example: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 format: uuid type: string - description: | Optional. If omitted or set to false, any Personal Identifiable Information (PII) values are returned masked. If set to true, and you have permission, the PII values will be returned as their original unmasked values. in: query name: sensitive required: false schema: type: boolean responses: 200: content: application/json: schema: $ref: '#/components/schemas/PayeeDetailResponseV3' description: Success response, request completed okay x-contracts: - contractId: 1 headers: Content-Type: application/json body: payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 payorRefs: - payorId: 9ac75325-5dcd-42d5-b992-175d7e0a035e remoteId: remoteId invitationStatus: PENDING email: bob@example.com onboardedStatus: CREATED watchlistStatus: PENDING watchlistOverrideExpiresAtTimestamp: 2019-02-04T00:00:00Z watchlistOverrideComment: watchlist override comment language: fr created: 2018-01-02T00:00:00Z country: US displayName: Cuthbert, Barney payeeType: Individual disabled: false disabledComment: disabled comment disabledUpdatedTimestamp: 2018-02-03T00:00:00Z address: line1: 100 Battery Street line2: line2 line3: line3 line4: line4 city: San Francisco countyOrProvince: California zipOrPostcode: "94018" country: US individual: name: title: Mr firstName: Barney otherNames: Grubb lastName: Cuthbert nationalIdentification: XXXXX4321 dateOfBirth: XXXX-XX-XX cellphoneNumber: "0800800800" watchlistStatusUpdatedTimestamp: 2018-02-04T00:00:00Z gracePeriodEndDate: 2019-12-23 enhancedKycCompleted: true kycCompletedTimestamp: 2018-02-04T00:00:00Z pausePayment: false pausePaymentTimestamp: 2018-02-04T00:00:00Z marketingOptInDecision: true marketingOptInTimestamp: 2018-02-03T00:00:00Z acceptTermsAndConditionsTimestamp: 2018-01-02T00:00:00Z - contractId: 2 headers: Content-Type: application/json body: payeeId: 01b51877-2a17-427a-b2b0-d73f2b136315 payorRefs: - payorId: 9ac75325-5dcd-42d5-b992-175d7e0a035e remoteId: remoteId invitationStatus: PENDING email: bob@example.com onboardedStatus: CREATED watchlistStatus: PENDING watchlistOverrideExpiresAtTimestamp: 2019-02-04T00:00:00Z watchlistOverrideComment: watchlist override comment language: fr created: 2018-01-02T00:00:00Z country: US displayName: Cuthbert, Barney payeeType: Company disabled: false disabledComment: disabled comment disabledUpdatedTimestamp: 2018-02-03T00:00:00Z address: line1: 100 Battery Street line2: line2 line3: line3 line4: line4 city: San Francisco countyOrProvince: California zipOrPostcode: "94018" country: US company: name: WIDGET CORP taxId: "223344556" operatingName: SAMPLE DBA NAME cellphoneNumber: "0800800800" watchlistStatusUpdatedTimestamp: 2018-02-04T00:00:00Z gracePeriodEndDate: 2019-12-23 enhancedKycCompleted: true kycCompletedTimestamp: 2018-02-04T00:00:00Z pausePayment: false pausePaymentTimestamp: 2018-02-04T00:00:00Z marketingOptInDecision: true marketingOptInTimestamp: 2018-02-03T00:00:00Z acceptTermsAndConditionsTimestamp: 2018-01-02T00:00:00Z - contractId: 4 headers: Content-Type: application/json body: payeeId: 026cc3c8-3a0c-4083-a05b-e908048c1b08 payorRefs: - payorId: 9ac75325-5dcd-42d5-b992-175d7e0a035e remoteId: remoteId invitationStatus: PENDING email: bob@example.com onboardedStatus: CREATED watchlistStatus: PENDING watchlistOverrideExpiresAtTimestamp: 2019-02-04T00:00:00Z watchlistOverrideComment: watchlist override comment language: fr created: 2018-01-02T00:00:00Z country: US displayName: Cuthbert, Barney payeeType: Individual disabled: false disabledComment: disabled comment disabledUpdatedTimestamp: 2018-02-03T00:00:00Z address: line1: 100 Battery Street line2: line2 line3: line3 line4: line4 city: San Francisco countyOrProvince: California zipOrPostcode: "94018" country: US individual: name: title: Mr firstName: Barney otherNames: Grubb lastName: Cuthbert nationalIdentification: "987654321" dateOfBirth: 1970-05-20 cellphoneNumber: "0800800800" watchlistStatusUpdatedTimestamp: 2018-02-04T00:00:00Z gracePeriodEndDate: 2019-12-23 enhancedKycCompleted: true kycCompletedTimestamp: 2018-02-04T00:00:00Z pausePayment: false pausePaymentTimestamp: 2018-02-04T00:00:00Z marketingOptInDecision: true marketingOptInTimestamp: 2018-02-03T00:00:00Z acceptTermsAndConditionsTimestamp: 2018-01-02T00:00:00Z 404: description: Payee Not found x-contracts: - contractId: 3 summary: Get Payee by Id tags: - Payees x-contracts: - contractId: 1 name: Get Individual Payee v3 serviceName: payee-service contractPath: /v3/payees/2aa5d7e0-2ecb-403f-8494-1865ed0454e9 - contractId: 2 name: Get Company Payee v3 serviceName: payee-service contractPath: /v3/payees/01b51877-2a17-427a-b2b0-d73f2b136315 - contractId: 3 name: Payee Id Not Found v3 serviceName: payee-service contractPath: /v3/payees/e67cbda6-c031-4aae-8e72-922fe76c7a24 - contractId: 4 name: Get Payee sensitive true v3 serviceName: payee-service contractPath: /v3/payees/026cc3c8-3a0c-4083-a05b-e908048c1b08 /v3/payees: get: deprecated: true description: |

Use v4 instead

Get a paginated response listing the payees for a payor. operationId: listPayeesV3 parameters: - description: The account owner Payor ID in: query name: payorId required: true schema: format: uuid type: string x-contracts: - contractId: 1 value: 0a818933-087d-47f2-ad83-2f986ed087eb matchers: - type: equal_to value: 0a818933-087d-47f2-ad83-2f986ed087eb - description: The watchlistStatus of the payees. in: query name: watchlistStatus required: false schema: $ref: '#/components/schemas/WatchlistStatusV3' - description: Payee disabled in: query name: disabled required: false schema: type: boolean - description: The onboarded status of the payees. in: query name: onboardedStatus required: false schema: $ref: '#/components/schemas/OnboardedStatusV4' - description: Email address in: query name: email required: false schema: example: bob@example.com format: email type: string - description: The display name of the payees. in: query name: displayName required: false schema: example: Bob Smith type: string - description: The remote id of the payees. in: query name: remoteId required: false schema: example: remoteId123 type: string - description: The onboarded status of the payees. in: query name: payeeType required: false schema: $ref: '#/components/schemas/PayeeType_2' - description: The country of the payee - 2 letter ISO 3166-1 country code (upper case) in: query name: payeeCountry required: false schema: example: US type: string - description: Page number. Default is 1. in: query name: page required: false schema: default: 1 example: 1 format: int32 type: integer - description: Page size. Default is 25. Max allowable is 100. in: query name: pageSize required: false schema: default: 25 example: 25 format: int32 type: integer - description: | List of sort fields (e.g. ?sort=onboardedStatus:asc,name:asc) Default is name:asc 'name' is treated as company name for companies - last name + ',' + firstName for individuals The supported sort fields are - payeeId, displayName, payoutStatus, onboardedStatus. in: query name: sort required: false schema: default: displayName:asc example: displayName:asc pattern: '[a-zA-Z]+[:desc|:asc]' type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/PagedPayeeResponseV3' description: Details of Payee x-contracts: - contractId: 1 headers: Content-Type: application/json body: page: numberOfElements: 1 totalElements: 1 totalPages: 23 page: 9, pageSize: 2 links: - rel: first href: https://api.sandbox.velopayments.com/v3/payees?payorId=1982b223-73b7-419d-a2e1-e64362b0ee8b&page=1&pageSize=2&sort=displayName:asc content: - payeeId: ee2cc9a1-34dd-4ab6-91e3-db111d08d995 matchers: headers: - key: Content-Type regex: application/json.* body: - path: $.page.numberOfElements type: by_regex predefined: number - path: $.page.totalElements type: by_regex predefined: number - path: $.page.totalPages type: by_regex predefined: number - path: $.page.page type: by_regex predefined: number - path: $.page.pageSize type: by_regex predefined: number - path: $.links type: by_type minOccurrence: 1 maxOccurrence: 5 - path: $.links[0].href type: by_regex predefined: url - path: $.content type: by_type minOccurrence: 1 - path: $.content[0].payeeId type: by_regex predefined: uuid - path: $.content[0].email type: by_regex predefined: email - path: $.content[0].created type: by_regex value: ([\d]{4})-([\d]{2})-([\d]{2})T([\d]{2}):([\d]{2}):([\d]{2})*(.([\d]{1,3}))Z - path: $.content[0].payorRefs[0].payorId type: by_regex predefined: uuid 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: List Payees tags: - Payees x-contracts: - contractId: 1 name: Test List Payees All params for v3 headers: Content-Type: application/json request: queryParameters: - key: page value: 1 - key: pageSize value: 30 - key: watchlistStatus value: PASSED - key: onboardedStatus value: CREATED - key: email value: testemail@example.com - key: displayName value: foo - key: remoteId value: 123123123asdf - key: payeeType value: Individual - key: payeeCountry value: US serviceName: payee-service x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v3/payees?pageSize=2&page=8&payorId=9cade13d-0c55-41a7-9e6d-164e8b138b40&watchlistStatus=PASSED&onboardedStatus=INVITED&email=foo@example.com&displayName=Bar&remoteId=remote&payeeCountry=US&payeeType=Individual' -i -X GET \ -H 'Authorization: Bearer 6dd5e976-e329-462f-bd6b-25d463cf02fd' \ -H 'Content-Type: application/json' post: deprecated: true description: |

Use v4 instead

Initiate the process of creating 1 to 2000 payees in a batch Use the response location header to query for status (201 - Created, 400 - invalid request body. In addition to standard semantic validations, a 400 will also result if there is a duplicate remote id within the batch / if there is a duplicate email within the batch, i.e. if there is a conflict between the data provided for one payee within the batch and that provided for another payee within the same batch). The validation at this stage is intra-batch only. Validation against payees who have already been invited occurs subsequently during processing of the batch. operationId: createPayeeV3 requestBody: content: application/json: schema: $ref: '#/components/schemas/CreatePayeesRequestV3' multipart/form-data: schema: properties: payorId: format: uuid type: string file: description: CSV File of payee data items: $ref: '#/components/schemas/CreatePayeesCSVRequestV3' type: array type: object description: Post payees to create. x-contracts: - contractId: 1 headers: Content-Type: application/json body: payorId: 0a818933-087d-47f2-ad83-2f986ed087eb payees: - type: Individual remoteId: remoteId email: bob@example.com address: line1: 100 Battery Street line2: line2 line3: line3 line4: line4 city: San Francisco countyOrProvince: California zipOrPostcode: "94018" country: US paymentChannel: paymentChannelName: My Payment Channel accountNumber: "12345678" routingNumber: "123456789" countryCode: US currency: USD accountName: Foo Account individual: name: title: Mr firstName: Barney otherNames: Grubb lastName: Cuthbert nationalIdentification: "987654321" dateOfBirth: 1970-05-20 language: fr - type: Company remoteId: remoteId email: bob@example.com address: line1: 100 Battery Street line2: line2 line3: line3 line4: line4 city: San Francisco countyOrProvince: California zipOrPostcode: "94018" country: US paymentChannel: paymentChannelName: My Payment Channel accountNumber: "12345678" routingNumber: "123456789" countryCode: US currency: USD accountName: Foo Account company: name: ABC Payee Corp taxId: "223344556" language: fr matchers: headers: - key: Content-Type regex: application/json.* body: - path: $.payorId type: by_regex predefined: uuid - path: $.payees type: by_regex predefined: non_empty - contractId: 2 headers: Content-Type: multipart/form-data multipart: params: payorId: 0a818933-087d-47f2-ad83-2f986ed087eb named: - paramName: file fileName: filename.csv fileContent: | type,remoteId,email,addressLine1,addressLine2,addressLine3,addressLine4,addressCity,addressCountyOrProvince,addressZipOrPostcode,addressCountry,individualNationalIdentification,individualDateOfBirth,individualTite,individualFirstName,individualOtherNames,individualLastName,companyName,companyEIN,paymentChannelAccountNumber,paymentChannelRoutingNumber,paymentChannelIban,paymentChannelAccountName,paymentChannelCountryCode,paymentChannelCurrency,challengeDescription,challengeValue,payeeLanguage\n Individual,remoteId123,bob@example.com,Address line 1,Address line 2,Address line 3,Address line 4,The City,The County,The Zip,GB,123456789,1970-02-25,Mr,Bob,Hungry,Wiggins,,,12345678,123456789,,Account name,US,USD,Challenge Description,Challenge Value,EN\n Company,remoteId1234,jim@example.com,Address line 1,Address line 2,Address line 3,Address line 4,The City,The County,The Zip,GB,,,,,,,ABC Corp,987654321,,,1234567890123456789012345678901234,Account name,US,USD,,,FR\n responses: 201: content: application/json: schema: $ref: '#/components/schemas/CreatePayeesCSVResponseV3' description: HTTP Created. Body created only on CSV requests x-contracts: - contractId: 1 headers: Location: https://api.sandbox.velopayments.com/v3/payees/batch/dbe7df3a-6b75-4bcb-97c5-45d25f828267 matchers: headers: - key: Location type: by_regex predefined: url - contractId: 2 headers: Content-Type: application/json Location: https://api.sandbox.velopayments.com/v3/payees/batch/dbe7df3a-6b75-4bcb-97c5-45d25f828267 matchers: headers: - key: Location type: by_regex predefined: url - key: Content-Type regex: application/json.* 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: Initiate Payee Creation tags: - Payee Invitation x-contracts: - contractId: 1 name: Create Payees by JSON v3 serviceName: payee-service - contractId: 2 name: Create Payees by CSV v3 serviceName: payee-service x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v3/payees' -i -X POST \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer 829d8ec0-00a3-4c95-8234-ad09500bb627' \ -d '{"payorId":"7ddebfed-0624-4bce-848d-40ffe818a2df","payees":[{"type":"Individual","remoteId":"remoteId", "email":"bob@example.com","address":{"line1":"100 Battery Street","line2":"line2","line3":"line3", "line4":"line4","city":"San Francisco","countyOrProvince":"California","zipOrPostcode":"94018","country":"US"}, "paymentChannel":{"paymentChannelName":"My Payment Channel","accountNumber":"12345678","routingNumber":"123456789", "countryCode":"US","currency":"USD","accountName":"Foo Account"},"individual":{"name":{"title":"Mr", "firstName":"Barney","otherNames":"Grubb","lastName":"Cuthbert"},"nationalIdentification":"987654321", "dateOfBirth":"1970-05-20"},"ofacOverride":false,"language":"fr"},{"type":"Company","remoteId":"remoteId", "email":"bob@example.com","address":{"line1":"100 Battery Street","line2":"line2","line3":"line3", "line4":"line4","city":"San Francisco","countyOrProvince":"California","zipOrPostcode":"94018","country":"US"}, "paymentChannel":{"paymentChannelName":"My Payment Channel","accountNumber":"12345678","routingNumber":"123456789", "countryCode":"US","currency":"USD","accountName":"Foo Account"},"company":{"name":"ABC Payee Corp", "taxId":"223344556"},"ofacOverride":false,"language":"fr"}]}' /v3/payees/batch/{batchId}: get: deprecated: true description: |

Use v4 instead

Fetch the status of a specific batch of payees. The batch is fully processed when status is ACCEPTED and pendingCount is 0 ( 200 - OK, 404 - batch not found ). operationId: queryBatchStatusV3 parameters: - description: Batch Id in: path name: batchId required: true schema: format: uuid type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/QueryBatchResponseV3' description: Get Batch Status 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: Query Batch Status tags: - Payee Invitation x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v3/payees/batch/cb6ff8c6-85e9-45a6-b7d9-d05305db67f3' -i -X GET \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer f01caad1-5ae5-454d-9467-5053e459fe45' /v3/payees/{payeeId}/invite: post: deprecated: true description: |

Use v4 instead

Resend an invite to the Payee The payee must have already been invited by the payor and not yet accepted or declined

Any previous invites to the payee by this Payor will be invalidated

operationId: resendPayeeInviteV3 parameters: - description: The UUID of the payee. in: path name: payeeId required: true schema: example: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/InvitePayeeRequestV3' description: Provide Payor Id in body of request required: true responses: 200: description: the request was accepted 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 409: content: application/json: schema: $ref: '#/components/schemas/inline_response_409' description: | The request contained data that would result in a duplicate value summary: Resend Payee Invite tags: - Payee Invitation x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v3/payees/5032e339-2e24-4fca-bfc9-f6a66e3157dd/invite' -i -X POST \ -H 'Authorization: Bearer 5e40dde3-ff1c-4d69-94b0-3a6e96fd789e' \ -H 'Content-Type: application/json' \ -d '{"payorId":"545e29bd-75a8-4354-8192-ae68bab59d7b"}' /v3/payees/payors/{payorId}/invitationStatus: get: deprecated: true description: |

Use v4 instead

Returns a filtered, paginated list of payees associated with a payor, along with invitation status and grace period end date.

operationId: getPayeesInvitationStatusV3 parameters: - description: The account owner Payor ID in: path name: payorId required: true schema: example: 9ac75325-5dcd-42d5-b992-175d7e0a035e format: uuid type: string - description: The UUID of the payee. in: query name: payeeId required: false schema: example: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 format: uuid type: string - description: The invitation status of the payees. in: query name: invitationStatus required: false schema: $ref: '#/components/schemas/InvitationStatusV4' - description: Page number. Default is 1. in: query name: page required: false schema: default: 1 example: 1 format: int32 type: integer - description: Page size. Default is 25. Max allowable is 100. in: query name: pageSize required: false schema: default: 25 example: 25 format: int32 type: integer responses: 200: content: application/json: schema: $ref: '#/components/schemas/PagedPayeeInvitationStatusResponseV3' description: Get Payees with Invitaion status - filters of payeeId and invitationStatus x-contracts: - contractId: 1 headers: Content-Type: application/json body: page: numberOfElements: 1 totalElements: 1 totalPages: 1 page: 1 pageSize: 25 links: - rel: first href: http://localhost:62142/v3/payees/payors/f20b038b-e841-4d80-9175-b47c6cf19bc1/invitationStatus?payeeId=c3d60e1f-a4d0-4273-b501-bfa81c70d56b&invitationStatus=ACCEPTED&page=1&pageSize=25 content: - payeeId: c3d60e1f-a4d0-4273-b501-bfa81c70d56b matchers: headers: - key: Content-Type regex: application/json.* body: - path: $.page type: by_type minOccurrence: 1 - path: $.page.numberOfElements type: by_regex predefined: number - path: $.page.totalElements type: by_regex predefined: number - path: $.page.totalPages type: by_regex predefined: number - path: $.page.page type: by_regex predefined: number - path: $.page.pageSize type: by_regex predefined: number - path: $.links type: by_type minOccurrence: 1 maxOccurrence: 5 - path: $.links[0].href type: by_regex predefined: url - path: $.content type: by_type minOccurrence: 1 - path: $.content[0].payeeId type: by_regex predefined: uuid 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: Get Payee Invitation Status tags: - Payee Invitation x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v3/payees/payors/f20b038b-e841-4d80-9175-b47c6cf19bc1/invitationStatus?payeeId=c3d60e1f-a4d0-4273-b501-bfa81c70d56b&invitationStatus=ACCEPTED' -i -X GET \ -H 'Authorization: Bearer ed73aa9a-b51b-44cb-a8e9-11e2fb85046b' /v3/payees/deltas: get: deprecated: true description: |

Use v4 instead

Get a paginated response listing payee changes.

operationId: listPayeeChangesV3 parameters: - description: The Payor ID to find associated Payees in: query name: payorId required: true schema: format: uuid type: string x-contracts: - contractId: 1 value: 0a818933-087d-47f2-ad83-2f986ed087eb matchers: - type: equal_to value: 0a818933-087d-47f2-ad83-2f986ed087eb - description: The updatedSince filter in the format YYYY-MM-DDThh:mm:ss+hh:mm in: query name: updatedSince required: true schema: format: date-time type: string x-contracts: - contractId: 1 value: 2019-01-20T09:00:00+00:00 matchers: - type: equal_to value: 2019-01-20T09:00:00+00:00 - description: Page number. Default is 1. in: query name: page required: false schema: default: 1 example: 1 format: int32 type: integer - description: Page size. Default is 100. Max allowable is 1000. in: query name: pageSize required: false schema: default: 100 example: 100 format: int32 type: integer responses: 200: content: application/json: schema: $ref: '#/components/schemas/PayeeDeltaResponseV3' description: Details of Payee Changes x-contracts: null 400: description: Bad Request summary: List Payee Changes tags: - Payees x-contracts: - contractId: 1 name: Test List Payee Changes V3 ignored: true request: queryParameters: - key: page value: 1 - key: pageSize value: 30 serviceName: payee-service x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v3/payees/deltas?pageSize=2&page=8&payorId=0a818933-087d-47f2-ad83-2f986ed087eb&updatedSince=2019-01-20T09:00:00+00:00' -i -X GET \ -H 'Authorization: Bearer 6dd5e976-e329-462f-bd6b-25d463cf02fd' \ -H 'Content-Type: application/json' /v3/payees/{payeeId}/remoteIdUpdate: post: deprecated: true description: |

Use v4 instead

Update the remote Id for the given Payee Id.

parameters: - description: The UUID of the payee. in: path name: payeeId required: true schema: example: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateRemoteIdRequestV3' description: Request to update payee remote id v3 required: true responses: 204: description: Accepted, No Content 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available 409: content: application/json: schema: $ref: '#/components/schemas/inline_response_409' description: | The request contained data that would result in a duplicate value summary: Update Payee Remote Id tags: - Payees /v3/payees/{payeeId}/payeeDetailsUpdate: post: deprecated: true description: |

Use v4 instead

Update payee details for the given Payee Id.

operationId: payeeDetailsUpdateV3 parameters: - description: The UUID of the payee. in: path name: payeeId required: true schema: example: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdatePayeeDetailsRequestV3' description: Request to update payee details required: true responses: 204: description: Request accepted 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: Update Payee Details tags: - Payees x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v3/payees/77f84ae9-42df-49d7-941b-47360347f86f/payeeDetailsUpdate' -i -X POST \ -H 'Authorization: Bearer ed73aa9a-b51b-44cb-a8e9-11e2fb85046b' \ -H 'Content-Type: application/json' \ -d '{ "address": { "line1": "line1", "line2": "line2", "line3": "line3", "line4": "line4", "city": "City", "countyOrProvince": "county", "zipOrPostcode": "BS11AA", "country": "US" }, "individual": { "name": { "title": "Mr", "firstName": "A", "otherNames": "P", "lastName": "Smith" }, "nationalIdentification": "987654321", "dateOfBirth": "1970-04-03" } }' /v4/payees/{payeeId}: delete: description: |

This API will delete Payee by Id (UUID). Deletion by ID is not allowed if:

* Payee ID is not found

* If Payee has not been on-boarded

* If Payee is in grace period

* If Payee has existing payments

operationId: deletePayeeByIdV4 parameters: - description: The UUID of the payee. in: path name: payeeId required: true schema: example: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 format: uuid type: string responses: 204: description: No content. Payee Id accepted for deletion. 400: description: Bad Request. Payee Id failed validation for deletion. 404: description: Payee Id not found summary: Delete Payee by Id tags: - Payees get: description: Get Payee by Id operationId: getPayeeByIdV4 parameters: - description: The UUID of the payee. in: path name: payeeId required: true schema: example: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 format: uuid type: string - description: | Optional. If omitted or set to false, any Personal Identifiable Information (PII) values are returned masked. If set to true, and you have permission, the PII values will be returned as their original unmasked values. in: query name: sensitive required: false schema: type: boolean responses: 200: content: application/json: schema: $ref: '#/components/schemas/PayeeDetailResponseV4' description: Success response, request completed okay x-contracts: - contractId: 1 headers: Content-Type: application/json body: payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 payorRefs: - payorId: 9ac75325-5dcd-42d5-b992-175d7e0a035e remoteId: remoteId invitationStatus: PENDING email: bob@example.com onboardedStatus: CREATED watchlistStatus: PENDING watchlistOverrideExpiresAtTimestamp: 2019-02-04T00:00:00Z watchlistOverrideComment: watchlist override comment language: fr created: 2018-01-02T00:00:00Z country: US displayName: Cuthbert, Barney payeeType: Individual disabled: false disabledComment: disabled comment disabledUpdatedTimestamp: 2018-02-03T00:00:00Z address: line1: 100 Battery Street line2: line2 line3: line3 line4: line4 city: San Francisco countyOrProvince: California zipOrPostcode: "94018" country: US individual: name: title: Mr firstName: Barney otherNames: Grubb lastName: Cuthbert nationalIdentification: XXXXX4321 dateOfBirth: XXXX-XX-XX cellphoneNumber: "0800800800" watchlistStatusUpdatedTimestamp: 2018-02-04T00:00:00Z gracePeriodEndDate: 2019-12-23 enhancedKycCompleted: true kycCompletedTimestamp: 2018-02-04T00:00:00Z pausePayment: false pausePaymentTimestamp: 2018-02-04T00:00:00Z marketingOptInDecision: true marketingOptInTimestamp: 2018-02-03T00:00:00Z acceptTermsAndConditionsTimestamp: 2018-01-02T00:00:00Z - contractId: 2 headers: Content-Type: application/json body: payeeId: 01b51877-2a17-427a-b2b0-d73f2b136315 payorRefs: - payorId: 9ac75325-5dcd-42d5-b992-175d7e0a035e remoteId: remoteId invitationStatus: PENDING email: bob@example.com onboardedStatus: CREATED watchlistStatus: PENDING watchlistOverrideExpiresAtTimestamp: 2019-02-04T00:00:00Z watchlistOverrideComment: watchlist override comment language: fr created: 2018-01-02T00:00:00Z country: US displayName: Cuthbert, Barney payeeType: Company disabled: false disabledComment: disabled comment disabledUpdatedTimestamp: 2018-02-03T00:00:00Z address: line1: 100 Battery Street line2: line2 line3: line3 line4: line4 city: San Francisco countyOrProvince: California zipOrPostcode: "94018" country: US company: name: WIDGET CORP taxId: "223344556" operatingName: SAMPLE DBA NAME cellphoneNumber: "0800800800" watchlistStatusUpdatedTimestamp: 2018-02-04T00:00:00Z gracePeriodEndDate: 2019-12-23 enhancedKycCompleted: true kycCompletedTimestamp: 2018-02-04T00:00:00Z pausePayment: false pausePaymentTimestamp: 2018-02-04T00:00:00Z marketingOptInDecision: true marketingOptInTimestamp: 2018-02-03T00:00:00Z acceptTermsAndConditionsTimestamp: 2018-01-02T00:00:00Z - contractId: 4 headers: Content-Type: application/json body: payeeId: 026cc3c8-3a0c-4083-a05b-e908048c1b08 payorRefs: - payorId: 9ac75325-5dcd-42d5-b992-175d7e0a035e remoteId: remoteId invitationStatus: PENDING email: bob@example.com onboardedStatus: CREATED watchlistStatus: PENDING watchlistOverrideExpiresAtTimestamp: 2019-02-04T00:00:00Z watchlistOverrideComment: watchlist override comment language: fr created: 2018-01-02T00:00:00Z country: US displayName: Cuthbert, Barney payeeType: Individual disabled: false disabledComment: disabled comment disabledUpdatedTimestamp: 2018-02-03T00:00:00Z address: line1: 100 Battery Street line2: line2 line3: line3 line4: line4 city: San Francisco countyOrProvince: California zipOrPostcode: "94018" country: US individual: name: title: Mr firstName: Barney otherNames: Grubb lastName: Cuthbert nationalIdentification: "987654321" dateOfBirth: 1970-05-20 cellphoneNumber: "0800800800" watchlistStatusUpdatedTimestamp: 2018-02-04T00:00:00Z gracePeriodEndDate: 2019-12-23 enhancedKycCompleted: true kycCompletedTimestamp: 2018-02-04T00:00:00Z pausePayment: false pausePaymentTimestamp: 2018-02-04T00:00:00Z marketingOptInDecision: true marketingOptInTimestamp: 2018-02-03T00:00:00Z acceptTermsAndConditionsTimestamp: 2018-01-02T00:00:00Z 404: description: Payee Not found x-contracts: - contractId: 3 summary: Get Payee by Id tags: - Payees x-contracts: - contractId: 1 name: Get Individual Payee v4 serviceName: payee-service contractPath: /v4/payees/2aa5d7e0-2ecb-403f-8494-1865ed0454e9 - contractId: 2 name: Get Company Payee v4 serviceName: payee-service contractPath: /v4/payees/01b51877-2a17-427a-b2b0-d73f2b136315 - contractId: 3 name: Payee Id Not Found v4 serviceName: payee-service contractPath: /v4/payees/e67cbda6-c031-4aae-8e72-922fe76c7a24 - contractId: 4 name: Get Payee sensitive true v4 serviceName: payee-service contractPath: /v4/payees/026cc3c8-3a0c-4083-a05b-e908048c1b08 /v4/payees/{payeeId}/payeeDetailsUpdate: post: description: |

Update payee details for the given Payee Id.

Payors may only update the payee details if the payee has not yet onboarded

operationId: payeeDetailsUpdateV4 parameters: - description: The UUID of the payee. in: path name: payeeId required: true schema: example: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdatePayeeDetailsRequestV4' description: Request to update payee details required: true responses: 204: description: Request accepted 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: Update Payee Details tags: - Payees x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v4/payees/77f84ae9-42df-49d7-941b-47360347f86f/payeeDetailsUpdate' -i -X POST \ -H 'Authorization: Bearer ed73aa9a-b51b-44cb-a8e9-11e2fb85046b' \ -H 'Content-Type: application/json' \ -d '{ "address": { "line1": "line1", "line2": "line2", "line3": "line3", "line4": "line4", "city": "City", "countyOrProvince": "county", "zipOrPostcode": "BS11AA", "country": "US" }, "individual": { "name": { "title": "Mr", "firstName": "A", "otherNames": "P", "lastName": "Smith" }, "nationalIdentification": "987654321", "dateOfBirth": "1970-04-03" } }' /v4/payees/{payeeId}/remoteIdUpdate: post: description: |

Update the remote Id for the given Payee Id.

parameters: - description: The UUID of the payee. in: path name: payeeId required: true schema: example: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateRemoteIdRequestV4' description: Request to update payee remote id v4 required: true responses: 204: description: Accepted, No Content 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available 409: content: application/json: schema: $ref: '#/components/schemas/inline_response_409' description: | The request contained data that would result in a duplicate value summary: Update Payee Remote Id tags: - Payees /v4/payees: get: description: Get a paginated response listing the payees for a payor. operationId: listPayeesV4 parameters: - description: The account owner Payor ID in: query name: payorId required: true schema: format: uuid type: string x-contracts: - contractId: 1 value: 0a818933-087d-47f2-ad83-2f986ed087eb matchers: - type: equal_to value: 0a818933-087d-47f2-ad83-2f986ed087eb - description: The watchlistStatus of the payees. in: query name: watchlistStatus required: false schema: $ref: '#/components/schemas/WatchlistStatusV3' - description: Payee disabled in: query name: disabled required: false schema: type: boolean - description: The onboarded status of the payees. in: query name: onboardedStatus required: false schema: $ref: '#/components/schemas/OnboardedStatusV4' - description: Email address in: query name: email required: false schema: example: bob@example.com format: email type: string - description: The display name of the payees. in: query name: displayName required: false schema: example: Bob Smith type: string - description: The remote id of the payees. in: query name: remoteId required: false schema: example: remoteId123 type: string - description: The onboarded status of the payees. in: query name: payeeType required: false schema: $ref: '#/components/schemas/PayeeType_2' - description: The country of the payee - 2 letter ISO 3166-1 country code (upper case) in: query name: payeeCountry required: false schema: example: US type: string - description: The ofacStatus of the payees. in: query name: ofacStatus required: false schema: $ref: '#/components/schemas/OfacStatusV4' - description: Page number. Default is 1. in: query name: page required: false schema: default: 1 example: 1 format: int32 type: integer - description: Page size. Default is 25. Max allowable is 100. in: query name: pageSize required: false schema: default: 25 example: 25 format: int32 type: integer - description: | List of sort fields (e.g. ?sort=onboardedStatus:asc,name:asc) Default is name:asc 'name' is treated as company name for companies - last name + ',' + firstName for individuals The supported sort fields are - payeeId, displayName, payoutStatus, onboardedStatus. in: query name: sort required: false schema: default: displayName:asc example: displayName:asc pattern: '[a-zA-Z]+[:desc|:asc]' type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/PagedPayeeResponseV4' description: Details of Payee x-contracts: - contractId: 1 headers: Content-Type: application/json body: page: numberOfElements: 1 totalElements: 1 totalPages: 23 page: 9, pageSize: 2 links: - rel: first href: https://api.sandbox.velopayments.com/v4/payees?payorId=1982b223-73b7-419d-a2e1-e64362b0ee8b&page=1&pageSize=2&sort=displayName:asc content: - payeeId: ee2cc9a1-34dd-4ab6-91e3-db111d08d995 matchers: headers: - key: Content-Type regex: application/json.* body: - path: $.page.numberOfElements type: by_regex predefined: number - path: $.page.totalElements type: by_regex predefined: number - path: $.page.totalPages type: by_regex predefined: number - path: $.page.page type: by_regex predefined: number - path: $.page.pageSize type: by_regex predefined: number - path: $.links type: by_type minOccurrence: 1 maxOccurrence: 5 - path: $.links[0].href type: by_regex predefined: url - path: $.content type: by_type minOccurrence: 1 - path: $.content[0].payeeId type: by_regex predefined: uuid - path: $.content[0].email type: by_regex predefined: email - path: $.content[0].created type: by_regex value: ([\d]{4})-([\d]{2})-([\d]{2})T([\d]{2}):([\d]{2}):([\d]{2})*(.([\d]{1,3}))Z - path: $.content[0].payorRefs[0].payorId type: by_regex predefined: uuid 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: List Payees tags: - Payees x-contracts: - contractId: 1 name: Test List Payees All params for v4 headers: Content-Type: application/json request: queryParameters: - key: page value: 1 - key: pageSize value: 30 - key: watchlistStatus value: PASSED - key: onboardedStatus value: CREATED - key: email value: testemail@example.com - key: displayName value: foo - key: remoteId value: 123123123asdf - key: payeeType value: Individual - key: payeeCountry value: US serviceName: payee-service x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v4/payees?pageSize=2&page=8&payorId=9cade13d-0c55-41a7-9e6d-164e8b138b40&watchlistStatus=PASSED&onboardedStatus=INVITED&email=foo@example.com&displayName=Bar&remoteId=remote&payeeCountry=US&payeeType=Individual' -i -X GET \ -H 'Authorization: Bearer 6dd5e976-e329-462f-bd6b-25d463cf02fd' \ -H 'Content-Type: application/json' post: description: | Initiate the process of creating 1 to 2000 payees in a batch Use the response location header to query for status (201 - Created, 400 - invalid request body. In addition to standard semantic validations, a 400 will also result if there is a duplicate remote id within the batch / if there is a duplicate email within the batch, i.e. if there is a conflict between the data provided for one payee within the batch and that provided for another payee within the same batch). The validation at this stage is intra-batch only. Validation against payees who have already been invited occurs subsequently during processing of the batch. operationId: v4CreatePayee requestBody: content: application/json: schema: $ref: '#/components/schemas/CreatePayeesRequestV4' multipart/form-data: schema: properties: payorId: format: uuid type: string file: description: CSV File of payee data items: $ref: '#/components/schemas/CreatePayeesCSVRequestV4' type: array type: object description: Post payees to create. x-contracts: - contractId: 1 headers: Content-Type: application/json body: payorId: 0a818933-087d-47f2-ad83-2f986ed087eb payees: - type: Individual remoteId: remoteId email: bob@example.com address: line1: 100 Battery Street line2: line2 line3: line3 line4: line4 city: San Francisco countyOrProvince: California zipOrPostcode: "94018" country: US paymentChannel: paymentChannelName: My Payment Channel accountNumber: "12345678" routingNumber: "123456789" countryCode: US currency: USD accountName: Foo Account individual: name: title: Mr firstName: Barney otherNames: Grubb lastName: Cuthbert nationalIdentification: "987654321" dateOfBirth: 1970-05-20 language: fr - type: Company remoteId: remoteId email: bob@example.com address: line1: 100 Battery Street line2: line2 line3: line3 line4: line4 city: San Francisco countyOrProvince: California zipOrPostcode: "94018" country: US paymentChannel: paymentChannelName: My Payment Channel accountNumber: "12345678" routingNumber: "123456789" countryCode: US currency: USD accountName: Foo Account company: name: ABC Payee Corp taxId: "223344556" language: fr matchers: headers: - key: Content-Type regex: application/json.* body: - path: $.payorId type: by_regex predefined: uuid - path: $.payees type: by_regex predefined: non_empty - contractId: 2 headers: Content-Type: multipart/form-data multipart: params: payorId: 0a818933-087d-47f2-ad83-2f986ed087eb named: - paramName: file fileName: filename.csv fileContent: | type,remoteId,email,addressLine1,addressLine2,addressLine3,addressLine4,addressCity,addressCountyOrProvince,addressZipOrPostcode,addressCountry,individualNationalIdentification,individualDateOfBirth,individualTitle,individualFirstName,individualOtherNames,individualLastName,companyName,companyEIN,paymentChannelAccountNumber,paymentChannelRoutingNumber,paymentChannelIban,paymentChannelAccountName,paymentChannelCountryCode,paymentChannelCurrency,challengeDescription,challengeValue,payeeLanguage\n Individual,remoteId123,bob@example.com,Address line 1,Address line 2,Address line 3,Address line 4,The City,The County,The Zip,GB,123456789,1970-02-25,Mr,Bob,Hungry,Wiggins,,,12345678,123456789,,Account name,US,USD,Challenge Description,Challenge Value,EN\n Company,remoteId1234,jim@example.com,Address line 1,Address line 2,Address line 3,Address line 4,The City,The County,The Zip,GB,,,,,,,ABC Corp,987654321,,,1234567890123456789012345678901234,Account name,US,USD,,,FR\n responses: 201: content: application/json: schema: $ref: '#/components/schemas/CreatePayeesCSVResponseV4' description: HTTP Created. Body created only on CSV requests x-contracts: - contractId: 1 headers: Location: https://api.sandbox.velopayments.com/v4/payees/batch/dbe7df3a-6b75-4bcb-97c5-45d25f828267 matchers: headers: - key: Location type: by_regex predefined: url - contractId: 2 headers: Content-Type: application/json Location: https://api.sandbox.velopayments.com/v4/payees/batch/dbe7df3a-6b75-4bcb-97c5-45d25f828267 matchers: headers: - key: Location type: by_regex predefined: url - key: Content-Type regex: application/json.* 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: Initiate Payee Creation tags: - Payee Invitation x-contracts: - contractId: 1 name: Create Payees by JSON v4 serviceName: payee-service - contractId: 2 name: Create Payees by CSV v4 serviceName: payee-service x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v4/payees' -i -X POST \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer 829d8ec0-00a3-4c95-8234-ad09500bb627' \ -d '{"payorId":"7ddebfed-0624-4bce-848d-40ffe818a2df","payees":[{"type":"Individual","remoteId":"remoteId", "email":"bob@example.com","address":{"line1":"100 Battery Street","line2":"line2","line3":"line3", "line4":"line4","city":"San Francisco","countyOrProvince":"California","zipOrPostcode":"94018","country":"US"}, "paymentChannel":{"paymentChannelName":"My Payment Channel","accountNumber":"12345678","routingNumber":"123456789", "countryCode":"US","currency":"USD","accountName":"Foo Account"},"individual":{"name":{"title":"Mr", "firstName":"Barney","otherNames":"Grubb","lastName":"Cuthbert"},"nationalIdentification":"987654321", "dateOfBirth":"1970-05-20"},"ofacOverride":false,"language":"fr"},{"type":"Company","remoteId":"remoteId", "email":"bob@example.com","address":{"line1":"100 Battery Street","line2":"line2","line3":"line3", "line4":"line4","city":"San Francisco","countyOrProvince":"California","zipOrPostcode":"94018","country":"US"}, "paymentChannel":{"paymentChannelName":"My Payment Channel","accountNumber":"12345678","routingNumber":"123456789", "countryCode":"US","currency":"USD","accountName":"Foo Account"},"company":{"name":"ABC Payee Corp", "taxId":"223344556"},"ofacOverride":false,"language":"fr"}]}' /v4/payees/batch/{batchId}: get: description: | Fetch the status of a specific batch of payees. The batch is fully processed when status is ACCEPTED and pendingCount is 0 ( 200 - OK, 404 - batch not found ). operationId: queryBatchStatusV4 parameters: - description: Batch Id in: path name: batchId required: true schema: format: uuid type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/QueryBatchResponseV4' description: Get Batch Status 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: Query Batch Status tags: - Payee Invitation x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v4/payees/batch/cb6ff8c6-85e9-45a6-b7d9-d05305db67f3' -i -X GET \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer f01caad1-5ae5-454d-9467-5053e459fe45' /v4/payees/{payeeId}/invite: post: description: |

Resend an invite to the Payee The payee must have already been invited by the payor and not yet accepted or declined

Any previous invites to the payee by this Payor will be invalidated

operationId: resendPayeeInviteV4 parameters: - description: The UUID of the payee. in: path name: payeeId required: true schema: example: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/InvitePayeeRequestV4' description: Provide Payor Id in body of request required: true responses: 200: description: the request was accepted 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 409: content: application/json: schema: $ref: '#/components/schemas/inline_response_409' description: | The request contained data that would result in a duplicate value summary: Resend Payee Invite tags: - Payee Invitation x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v4/payees/5032e339-2e24-4fca-bfc9-f6a66e3157dd/invite' -i -X POST \ -H 'Authorization: Bearer 5e40dde3-ff1c-4d69-94b0-3a6e96fd789e' \ -H 'Content-Type: application/json' \ -d '{"payorId":"545e29bd-75a8-4354-8192-ae68bab59d7b"}' /v4/payees/payors/{payorId}/invitationStatus: get: description: | Returns a filtered, paginated list of payees associated with a payor, along with invitation status and grace period end date. operationId: getPayeesInvitationStatusV4 parameters: - description: The account owner Payor ID in: path name: payorId required: true schema: example: 9ac75325-5dcd-42d5-b992-175d7e0a035e format: uuid type: string - description: The UUID of the payee. in: query name: payeeId required: false schema: example: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 format: uuid type: string - description: The invitation status of the payees. in: query name: invitationStatus required: false schema: $ref: '#/components/schemas/InvitationStatusV4' - description: Page number. Default is 1. in: query name: page required: false schema: default: 1 example: 1 format: int32 type: integer - description: Page size. Default is 25. Max allowable is 100. in: query name: pageSize required: false schema: default: 25 example: 25 format: int32 type: integer responses: 200: content: application/json: schema: $ref: '#/components/schemas/PagedPayeeInvitationStatusResponseV4' description: Get Payees with Invitaion status - filters of payeeId and invitationStatus x-contracts: - contractId: 1 headers: Content-Type: application/json body: page: numberOfElements: 1 totalElements: 1 totalPages: 1 page: 1 pageSize: 25 links: - rel: first href: http://localhost:62142/v4/payees/payors/f20b038b-e841-4d80-9175-b47c6cf19bc1/invitationStatus?payeeId=c3d60e1f-a4d0-4273-b501-bfa81c70d56b&invitationStatus=ACCEPTED&page=1&pageSize=25 content: - payeeId: c3d60e1f-a4d0-4273-b501-bfa81c70d56b matchers: headers: - key: Content-Type regex: application/json.* body: - path: $.page type: by_type minOccurrence: 1 - path: $.page.numberOfElements type: by_regex predefined: number - path: $.page.totalElements type: by_regex predefined: number - path: $.page.totalPages type: by_regex predefined: number - path: $.page.page type: by_regex predefined: number - path: $.page.pageSize type: by_regex predefined: number - path: $.links type: by_type minOccurrence: 1 maxOccurrence: 5 - path: $.links[0].href type: by_regex predefined: url - path: $.content type: by_type minOccurrence: 1 - path: $.content[0].payeeId type: by_regex predefined: uuid 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: Get Payee Invitation Status tags: - Payee Invitation x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v4/payees/payors/f20b038b-e841-4d80-9175-b47c6cf19bc1/invitationStatus?payeeId=c3d60e1f-a4d0-4273-b501-bfa81c70d56b&invitationStatus=ACCEPTED' -i -X GET \ -H 'Authorization: Bearer ed73aa9a-b51b-44cb-a8e9-11e2fb85046b' /v4/payees/deltas: get: description: | Get a paginated response listing payee changes (updated since a particular time) to a limited set of fields: - dbaName - displayName - email - onboardedStatus - payeeCountry - payeeId - remoteId operationId: listPayeeChangesV4 parameters: - description: The Payor ID to find associated Payees in: query name: payorId required: true schema: format: uuid type: string x-contracts: - contractId: 1 value: 0a818933-087d-47f2-ad83-2f986ed087eb matchers: - type: equal_to value: 0a818933-087d-47f2-ad83-2f986ed087eb - description: The updatedSince filter in the format YYYY-MM-DDThh:mm:ss+hh:mm in: query name: updatedSince required: true schema: format: date-time type: string x-contracts: - contractId: 1 value: 2019-01-20T09:00:00+00:00 matchers: - type: equal_to value: 2019-01-20T09:00:00+00:00 - description: Page number. Default is 1. in: query name: page required: false schema: default: 1 example: 1 format: int32 type: integer - description: Page size. Default is 100. Max allowable is 1000. in: query name: pageSize required: false schema: default: 100 example: 100 format: int32 type: integer responses: 200: content: application/json: schema: $ref: '#/components/schemas/PayeeDeltaResponseV4' description: Details of Payee Changes x-contracts: null 400: description: Bad Request summary: List Payee Changes tags: - Payees x-contracts: - contractId: 1 name: Test List Payee Changes V4 ignored: true request: queryParameters: - key: page value: 1 - key: pageSize value: 30 serviceName: payee-service x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v4/payees/deltas?pageSize=2&page=8&payorId=0a818933-087d-47f2-ad83-2f986ed087eb&updatedSince=2019-01-20T09:00:00+00:00' -i -X GET \ -H 'Authorization: Bearer 6dd5e976-e329-462f-bd6b-25d463cf02fd' \ -H 'Content-Type: application/json' /v1/sourceAccounts: description: List Source Accounts get: deprecated: true description: List source accounts. operationId: getSourceAccounts parameters: - description: Physical Account Name in: query name: physicalAccountName required: false schema: type: string - description: The account owner Payor ID in: query name: payorId required: false schema: format: uuid type: string - description: Page number. Default is 1. in: query name: page required: false schema: default: 1 format: int32 type: integer - description: The number of results to return in a page in: query name: pageSize required: false schema: default: 25 format: int32 maximum: 100 minimum: 1 type: integer - description: | List of sort fields e.g. ?sort=name:asc Default is name:asc The supported sort fields are - fundingRef in: query name: sort required: false schema: default: fundingRef:asc pattern: '[fundingRef]+[:desc|:asc]' type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/ListSourceAccountResponse' description: List Source Account response 400: description: Invalid Request Parameters 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 404: description: Not Found summary: Get list of source accounts tags: - Funding Manager x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v1/sourceAccounts?payorId=a2967711-df07-41e5-b5ea-f563088911c6' -i -X GET \ -H 'Authorization: Bearer 757a7dbf-2afb-45ec-877c-2aa3857c8e08' summary: List Source Accounts /v1/sourceAccounts/{sourceAccountId}: description: Get details about given source account. get: deprecated: true description: Get details about given source account. operationId: getSourceAccount parameters: - description: Source account id in: path name: sourceAccountId required: true schema: format: uuid type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/SourceAccountResponse' description: Source account response 400: description: Bad Request, Invalid path parameter 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Get details about given source account. tags: - Funding Manager x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v1/sourceAccounts/126895a8-ba3d-44e8-9b34-84ee579cee7a' -i -X GET \ -H 'Authorization: Bearer a016f840-dafc-4b10-95f5-70ecc75a02d1' summary: Get Source Account /v1/sourceAccounts/{sourceAccountId}/achFundingRequest: post: deprecated: true description: Instruct a funding request to transfer funds from the payor’s funding bank to the payor’s balance held within Velo. operationId: createAchFundingRequest parameters: - description: Source account id in: path name: sourceAccountId required: true schema: format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/FundingRequestV1' description: Body to included amount to be funded required: true responses: 202: description: Request Accepted 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Create Funding Request tags: - Funding Manager x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v1/sourceAccounts/533b082b-b3eb-4712-8242-0fd3a307033f/achFundingRequest' -i -X POST \ -H 'Authorization: Bearer 67c1b4fc-29ce-425c-863b-950163a5e971' \ -H 'Content-Type: application/json' \ -d '{"amount":999990}' /v1/sourceAccounts/{sourceAccountId}/notifications: post: description: Set notifications for a given source account operationId: setNotificationsRequest parameters: - description: Source account id in: path name: sourceAccountId required: true schema: format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/SetNotificationsRequest' description: Body to included minimum balance to set required: true responses: 204: description: Request Fulfilled 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Set notifications tags: - Funding Manager x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v1/sourceAccounts/533b082b-b3eb-4712-8242-0fd3a307033f/notifications' -i -X POST \ -H 'Authorization: Bearer 67c1b4fc-29ce-425c-863b-950163a5e971' \ -H 'Content-Type: application/json' \ -d '{"minimumBalance":900}' /v2/sourceAccounts/{sourceAccountId}/fundingRequest: post: deprecated: true description: Instruct a funding request to transfer funds from the payor’s funding bank to the payor’s balance held within Velo (202 - accepted, 400 - invalid request body, 404 - source account not found). operationId: createFundingRequest parameters: - description: Source account id in: path name: sourceAccountId required: true schema: format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/FundingRequestV2' description: Body to included amount to be funded required: true responses: 202: description: Request Accepted 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Create Funding Request tags: - Funding Manager x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v2/sourceAccounts/533b082b-b3eb-4712-8242-0fd3a307033f/fundingRequest' -i -X POST \ -H 'Authorization: Bearer 67c1b4fc-29ce-425c-863b-950163a5e971' \ -H 'Content-Type: application/json' \ -d '{"amount":999990}' /v2/sourceAccounts: description: List Source Accounts get: deprecated: true description: List source accounts. operationId: getSourceAccountsV2 parameters: - description: Physical Account Name in: query name: physicalAccountName required: false schema: type: string - description: The physical account ID in: query name: physicalAccountId required: false schema: format: uuid type: string - description: The account owner Payor ID in: query name: payorId required: false schema: format: uuid type: string - description: The funding account ID in: query name: fundingAccountId required: false schema: format: uuid type: string - description: Page number. Default is 1. in: query name: page required: false schema: default: 1 format: int32 type: integer - description: The number of results to return in a page in: query name: pageSize required: false schema: default: 25 format: int32 maximum: 100 minimum: 1 type: integer - description: | List of sort fields e.g. ?sort=name:asc Default is name:asc The supported sort fields are - fundingRef, name, balance in: query name: sort required: false schema: default: fundingRef:asc pattern: '[fundingRef|name|balance]+[:desc|:asc]' type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/ListSourceAccountResponseV2' description: List Source Account response 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Get list of source accounts tags: - Funding Manager x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v2/sourceAccounts?payorId=a2967711-df07-41e5-b5ea-f563088911c6' -i -X GET \ -H 'Authorization: Bearer 757a7dbf-2afb-45ec-877c-2aa3857c8e08' summary: List Source Accounts /v2/sourceAccounts/{sourceAccountId}: description: Get details about given source account. get: deprecated: true description: Get details about given source account. operationId: getSourceAccountV2 parameters: - description: Source account id in: path name: sourceAccountId required: true schema: format: uuid type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/SourceAccountResponseV2' description: Source account response 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Get details about given source account. tags: - Funding Manager x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v2/sourceAccounts/126895a8-ba3d-44e8-9b34-84ee579cee7a' -i -X GET \ -H 'Authorization: Bearer a016f840-dafc-4b10-95f5-70ecc75a02d1' summary: Get Source Account /v2/sourceAccounts/{sourceAccountId}/transfers: post: deprecated: true description: Transfer funds between source accounts for a Payor. The 'from' source account is identified in the URL, and is the account which will be debited. The 'to' (destination) source account is in the body, and is the account which will be credited. Both source accounts must belong to the same Payor. There must be sufficient balance in the 'from' source account, otherwise the transfer attempt will fail. operationId: transferFunds parameters: - description: The 'from' source account id, which will be debited in: path name: sourceAccountId required: true schema: format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/TransferRequest' description: Body required: true responses: 204: description: Request Processed 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Transfer Funds between source accounts tags: - Funding Manager x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v2/sourceAccounts/533b082b-b3eb-4712-8242-0fd3a307033f/transfers' -i -X POST \ -H 'Authorization: Bearer 67c1b4fc-29ce-425c-863b-950163a5e971' \ -H 'Content-Type: application/json' \ -d '{ "toSourceAccountId": "a99f93f9-6845-451d-a1f5-f3c841599dd7", "amount": 10000, "currency": "USD" }' /v1/fundingAccounts: get: deprecated: true description: Get the funding accounts. operationId: getFundingAccounts parameters: - in: query name: payorId required: false schema: format: uuid type: string - in: query name: sourceAccountId required: false schema: format: uuid type: string - description: Page number. Default is 1. in: query name: page required: false schema: default: 1 format: int32 type: integer - description: The number of results to return in a page in: query name: pageSize required: false schema: default: 25 format: int32 maximum: 100 minimum: 1 type: integer - description: List of sort fields (e.g. ?sort=accountName:asc,name:asc) Default is accountName:asc The supported sort fields are - accountName, name and currency. in: query name: sort required: false schema: default: accountName:asc pattern: '[a-zA-Z]+[:desc|:asc]' type: string - in: query name: sensitive required: false schema: default: false type: boolean responses: 200: content: application/json: schema: $ref: '#/components/schemas/ListFundingAccountsResponse' description: Get Funding Accounts Response 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure summary: Get Funding Accounts tags: - Funding Manager /v1/fundingAccounts/{fundingAccountId}: get: deprecated: true description: Get Funding Account by ID operationId: getFundingAccount parameters: - in: path name: fundingAccountId required: true schema: format: uuid type: string - in: query name: sensitive required: false schema: default: false type: boolean responses: 200: content: application/json: schema: $ref: '#/components/schemas/FundingAccountResponse' description: Funding Account Response 400: description: Bad Request 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Get Funding Account tags: - Funding Manager /v2/fundingAccounts: get: description: Get the funding accounts. operationId: getFundingAccountsV2 parameters: - in: query name: payorId required: false schema: format: uuid type: string - description: The descriptive funding account name in: query name: name required: false schema: type: string - description: The 2 letter ISO 3166-1 country code (upper case) in: query name: country required: false schema: example: US type: string - description: The ISO 4217 currency code in: query name: currency required: false schema: example: USD type: string - description: The type of funding account. in: query name: type required: false schema: $ref: '#/components/schemas/FundingAccountType' - description: Page number. Default is 1. in: query name: page required: false schema: default: 1 format: int32 type: integer - description: The number of results to return in a page in: query name: pageSize required: false schema: default: 25 format: int32 maximum: 100 minimum: 1 type: integer - description: List of sort fields (e.g. ?sort=accountName:asc,name:asc) Default is accountName:asc The supported sort fields are - accountName, name. in: query name: sort required: false schema: default: accountName:asc pattern: '[a-zA-Z]+[:desc|:asc]' type: string - in: query name: sensitive required: false schema: default: false type: boolean responses: 200: content: application/json: schema: $ref: '#/components/schemas/ListFundingAccountsResponse_2' description: Get Funding Accounts Response 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure summary: Get Funding Accounts tags: - Funding Manager post: description: Create Funding Account operationId: createFundingAccountV2 requestBody: content: application/json: examples: fbo: summary: FBO Example value: type: FBO name: My FBO Account payorId: ee53e01d-c078-43fd-abd4-47e92f4a06cf accountName: My Account Name accountNumber: 1231231234556 routingNumber: 123456789 wubs: summary: WUBS value: type: WUBS_DECOUPLED name: My WUBS Account payorId: ee53e01d-c078-43fd-abd4-47e92f4a06cf currency: USD schema: $ref: '#/components/schemas/CreateFundingAccountRequestV2' responses: 202: description: Funding Account Creation Request Accepted headers: Location: description: Reference to status object schema: format: uri type: string Retry-After: description: How long the user agent should wait before making a follow-up request (seconds) schema: type: integer 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: Create Funding Account tags: - Funding Manager Private /v2/fundingAccounts/{fundingAccountId}: get: description: Get Funding Account by ID operationId: getFundingAccountV2 parameters: - in: path name: fundingAccountId required: true schema: format: uuid type: string - in: query name: sensitive required: false schema: default: false type: boolean responses: 200: content: application/json: schema: $ref: '#/components/schemas/FundingAccountResponse_2' description: Funding Account Response 400: description: Bad Request 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Get Funding Account tags: - Funding Manager /v3/sourceAccounts/{sourceAccountId}/fundingRequest: post: description: Instruct a funding request to transfer funds from the payor’s funding bank to the payor’s balance held within Velo (202 - accepted, 400 - invalid request body, 404 - source account not found). operationId: createFundingRequestV3 parameters: - description: Source account id in: path name: sourceAccountId required: true schema: format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/FundingRequestV3' description: Body to included amount to be funded required: true responses: 202: description: Request Accepted 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Create Funding Request tags: - Funding Manager x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v3/sourceAccounts/533b082b-b3eb-4712-8242-0fd3a307033f/fundingRequest' -i -X POST \ -H 'Authorization: Bearer 67c1b4fc-29ce-425c-863b-950163a5e971' \ -H 'Content-Type: application/json' \ -d '{"amount":999990}' /v3/sourceAccounts: description: List Source Accounts get: description: List source accounts. operationId: getSourceAccountsV3 parameters: - description: Physical Account Name in: query name: physicalAccountName required: false schema: type: string - description: The physical account ID in: query name: physicalAccountId required: false schema: format: uuid type: string - description: The account owner Payor ID in: query name: payorId required: false schema: format: uuid type: string - description: The funding account ID in: query name: fundingAccountId required: false schema: format: uuid type: string - description: A filter for retrieving both active accounts and user deleted ones in: query name: includeUserDeleted required: false schema: format: boolean type: string - description: The type of source account. in: query name: type required: false schema: $ref: '#/components/schemas/SourceAccountType' - description: Page number. Default is 1. in: query name: page required: false schema: default: 1 format: int32 type: integer - description: The number of results to return in a page in: query name: pageSize required: false schema: default: 25 format: int32 maximum: 100 minimum: 1 type: integer - description: | List of sort fields e.g. ?sort=name:asc Default is name:asc The supported sort fields are - fundingRef, name, balance in: query name: sort required: false schema: default: fundingRef:asc pattern: '[fundingRef|name|balance]+[:desc|:asc]' type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/ListSourceAccountResponseV3' description: List Source Account response 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Get list of source accounts tags: - Funding Manager x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v3/sourceAccounts?payorId=a2967711-df07-41e5-b5ea-f563088911c6' -i -X GET \ -H 'Authorization: Bearer 757a7dbf-2afb-45ec-877c-2aa3857c8e08' summary: List Source Accounts /v3/sourceAccounts/{sourceAccountId}: delete: description: Mark a source account as deleted by ID operationId: deleteSourceAccountV3 parameters: - description: Source account id in: path name: sourceAccountId required: true schema: format: uuid type: string responses: 204: description: No Content - Source account is deleted 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available 409: content: application/json: schema: $ref: '#/components/schemas/inline_response_409' description: | The request contained data that would result in a duplicate value summary: Delete a source account by ID tags: - Funding Manager Private x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v3/sourceAccounts/126895a8-ba3d-44e8-9b34-84ee579cee7a' -i -X DELETE \ -H 'Authorization: Bearer a016f840-dafc-4b10-95f5-70ecc75a02d1' get: description: Get details about given source account. operationId: getSourceAccountV3 parameters: - description: Source account id in: path name: sourceAccountId required: true schema: format: uuid type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/SourceAccountResponseV3' description: Source account response 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Get details about given source account. tags: - Funding Manager x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v3/sourceAccounts/126895a8-ba3d-44e8-9b34-84ee579cee7a' -i -X GET \ -H 'Authorization: Bearer a016f840-dafc-4b10-95f5-70ecc75a02d1' /v3/sourceAccounts/{sourceAccountId}/transfers: post: description: Transfer funds between source accounts for a Payor. The 'from' source account is identified in the URL, and is the account which will be debited. The 'to' (destination) source account is in the body, and is the account which will be credited. Both source accounts must belong to the same Payor. There must be sufficient balance in the 'from' source account, otherwise the transfer attempt will fail. operationId: transferFundsV3 parameters: - description: The 'from' source account id, which will be debited in: path name: sourceAccountId required: true schema: format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/TransferRequest_2' description: Body required: true responses: 204: description: Request Processed 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Transfer Funds between source accounts tags: - Funding Manager x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v3/sourceAccounts/533b082b-b3eb-4712-8242-0fd3a307033f/transfers' -i -X POST \ -H 'Authorization: Bearer 67c1b4fc-29ce-425c-863b-950163a5e971' \ -H 'Content-Type: application/json' \ -d '{ "toSourceAccountId": "a99f93f9-6845-451d-a1f5-f3c841599dd7", "amount": 10000, "currency": "USD" }' /v1/deltas/fundings: get: description: Get funding audit deltas for a payor operationId: listFundingAuditDeltas parameters: - in: query name: payorId required: true schema: format: uuid type: string - in: query name: updatedSince required: true schema: format: date-time type: string - description: Page number. Default is 1. in: query name: page required: false schema: default: 1 format: int32 type: integer - description: The number of results to return in a page in: query name: pageSize required: false schema: default: 25 format: int32 maximum: 100 minimum: 1 type: integer responses: 200: content: application/json: schema: $ref: '#/components/schemas/PageResourceFundingPayorStatusAuditResponseFundingPayorStatusAuditResponse' description: Funding Account Deltas 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: Get Funding Audit Delta tags: - Funding Manager /v1/paymentaudit/fundings: get: deprecated: true description: Deprecated (use /v4/paymentaudit/fundings) operationId: getFundingsV1 parameters: - description: The account owner Payor ID in: query name: payorId required: true schema: format: uuid type: string - description: Page number. Default is 1. in: query name: page required: false schema: default: 1 format: int32 type: integer - description: The number of results to return in a page in: query name: pageSize required: false schema: default: 25 format: int32 maximum: 100 minimum: 1 type: integer - description: | List of sort fields. Example: ```?sort=destinationCurrency:asc,destinationAmount:asc``` Default is no sort. The supported sort fields are: dateTime and amount. in: query name: sort schema: type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/GetFundingsResponse' description: Get Fundings normal response 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: V1 Get Fundings for Payor tags: - Payment Audit Service (Deprecated) x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v1/paymentaudit/fundings?payorId=2a5d8af2-a1ed-4d7f-b9a7-ebe4b333be5a' -i -X GET \ -H 'Authorization: Bearer 3667f994-7d41-4d20-990d-b79fa720e56b' /v1/paymentaudit/payoutStatistics: get: deprecated: true description: Deprecated (Use /v4/paymentaudit/payoutStatistics) operationId: getPayoutStatsV1 parameters: - description: The account owner Payor ID. Required for external users. in: query name: payorId required: false schema: format: uuid type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/GetPayoutStatistics' description: Payout Statistics response 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: V1 Get Payout Statistics tags: - Payment Audit Service (Deprecated) x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v1/paymentaudit/payoutStatistics?payorId=c61b32ac-8e50-433e-9372-b5b1c8180742' -i -X GET \ -H 'Authorization: Bearer e71d3dfe-3587-4df6-9f8d-59d3135d7bf7' /v1/deltas/payments: get: deprecated: true description: Deprecated (use /v4/payments/deltas instead) operationId: listPaymentChanges parameters: - description: The Payor ID to find associated Payments in: query name: payorId required: true schema: format: uuid type: string - description: The updatedSince filter in the format YYYY-MM-DDThh:mm:ss+hh:mm in: query name: updatedSince required: true schema: format: date-time type: string - description: Page number. Default is 1. in: query name: page required: false schema: default: 1 format: int32 type: integer - description: The number of results to return in a page in: query name: pageSize required: false schema: default: 100 format: int32 maximum: 1000 minimum: 1 type: integer responses: 200: content: application/json: schema: $ref: '#/components/schemas/PaymentDeltaResponseV1' description: Details of Payment Changes 400: description: Bad Request summary: V1 List Payment Changes tags: - Payment Audit Service (Deprecated) x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v1/deltas/payments?pageSize=2&page=8&payorId=0a818933-087d-47f2-ad83-2f986ed087eb&updatedSince=2019-01-20T09:00:00+00:00' -i -X GET \ -H 'Authorization: Bearer 6dd5e976-e329-462f-bd6b-25d463cf02fd' \ -H 'Content-Type: application/json' /v3/paymentaudit/payouts: get: deprecated: true description: Deprecated (use /v4/paymentaudit/payouts instead) operationId: getPayoutsForPayorV3 parameters: - description: The account owner Payor ID in: query name: payorId required: true schema: format: uuid type: string - description: Payout Memo filter - case insensitive sub-string match in: query name: payoutMemo required: false schema: type: string - description: Payout Status in: query name: status required: false schema: enum: - ACCEPTED - REJECTED - SUBMITTED - QUOTED - INSTRUCTED - COMPLETED - INCOMPLETE - CONFIRMED - WITHDRAWN type: string - description: The submitted date from range filter. Format is yyyy-MM-dd. in: query name: submittedDateFrom required: false schema: format: date type: string - description: The submitted date to range filter. Format is yyyy-MM-dd. in: query name: submittedDateTo required: false schema: format: date type: string - description: Page number. Default is 1. in: query name: page required: false schema: default: 1 format: int32 type: integer - description: The number of results to return in a page in: query name: pageSize required: false schema: default: 25 format: int32 maximum: 100 minimum: 1 type: integer - description: | List of sort fields (e.g. ?sort=submittedDateTime:asc,instructedDateTime:asc,status:asc) Default is submittedDateTime:asc The supported sort fields are: submittedDateTime, instructedDateTime, status. in: query name: sort required: false schema: type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/GetPayoutsResponseV3' description: Payor data found 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: V3 Get Payouts for Payor tags: - Payment Audit Service (Deprecated) x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v4/paymentaudit/payouts?payorId=449aa6c3-0569-47f6-a430-a470040da67c' -i -X GET \ -H 'Authorization: Bearer a9d9247d-5e30-4cea-a6e1-0898534ce768' /v3/paymentaudit/payouts/{payoutId}: get: deprecated: true description: Deprecated (use /v4/paymentaudit/payouts/ instead) operationId: getPaymentsForPayout_PA_V3 parameters: - description: The id (UUID) of the payout. in: path name: payoutId required: true schema: format: uuid type: string - description: The remote id of the payees. in: query name: remoteId required: false schema: type: string - description: Payment Status in: query name: status required: false schema: enum: - ACCEPTED - AWAITING_FUNDS - FUNDED - UNFUNDED - BANK_PAYMENT_REQUESTED - REJECTED - ACCEPTED_BY_RAILS - CONFIRMED - FAILED - RETURNED - WITHDRAWN type: string - description: The source amount from range filter. Filters for sourceAmount >= sourceAmountFrom in: query name: sourceAmountFrom required: false schema: format: int32 type: integer - description: The source amount to range filter. Filters for sourceAmount ⇐ sourceAmountTo in: query name: sourceAmountTo required: false schema: format: int32 type: integer - description: The payment amount from range filter. Filters for paymentAmount >= paymentAmountFrom in: query name: paymentAmountFrom required: false schema: format: int32 type: integer - description: The payment amount to range filter. Filters for paymentAmount ⇐ paymentAmountTo in: query name: paymentAmountTo required: false schema: format: int32 type: integer - description: The submitted date from range filter. Format is yyyy-MM-dd. in: query name: submittedDateFrom required: false schema: format: date type: string - description: The submitted date to range filter. Format is yyyy-MM-dd. in: query name: submittedDateTo required: false schema: format: date type: string - description: Page number. Default is 1. in: query name: page required: false schema: default: 1 format: int32 type: integer - description: The number of results to return in a page in: query name: pageSize required: false schema: default: 25 format: int32 maximum: 100 minimum: 1 type: integer - description: |

List of sort fields (e.g. ?sort=submittedDateTime:asc,status:asc). Default is sort by remoteId

The supported sort fields are: sourceAmount, sourceCurrency, paymentAmount, paymentCurrency, routingNumber, accountNumber, remoteId, submittedDateTime and status

in: query name: sort required: false schema: type: string - description: | Optional. If omitted or set to false, any Personal Identifiable Information (PII) values are returned masked. If set to true, and you have permission, the PII values will be returned as their original unmasked values. in: query name: sensitive required: false schema: type: boolean responses: 200: content: application/json: schema: $ref: '#/components/schemas/GetPaymentsForPayoutResponseV3' description: 200 response, data found okay 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: V3 Get Payments for Payout tags: - Payment Audit Service (Deprecated) x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v3/paymentaudit/payouts/7b524212-6fd7-4699-983d-cac082022a2e' -i -X GET \ -H 'Authorization: Bearer f7a9a696-e528-487b-8734-e0a22e41ef7a' /v3/paymentaudit/payments: get: deprecated: true description: Deprecated (use /v4/paymentaudit/payments instead) operationId: listPaymentsAuditV3 parameters: - description: The UUID of the payee. in: query name: payeeId required: false schema: format: uuid type: string - description: The account owner Payor Id. Required for external users. in: query name: payorId required: false schema: format: uuid type: string - description: The payor’s name. This filters via a case insensitive substring match. in: query name: payorName required: false schema: type: string - description: The remote id of the payees. in: query name: remoteId required: false schema: type: string - description: Payment Status in: query name: status required: false schema: enum: - ACCEPTED - AWAITING_FUNDS - FUNDED - UNFUNDED - BANK_PAYMENT_REQUESTED - REJECTED - ACCEPTED_BY_RAILS - CONFIRMED - FAILED - RETURNED - WITHDRAWN type: string - description: The source account name filter. This filters via a case insensitive substring match. in: query name: sourceAccountName required: false schema: type: string - description: The source amount from range filter. Filters for sourceAmount >= sourceAmountFrom in: query name: sourceAmountFrom required: false schema: format: int32 type: integer - description: The source amount to range filter. Filters for sourceAmount ⇐ sourceAmountTo in: query name: sourceAmountTo required: false schema: format: int32 type: integer - description: The source currency filter. Filters based on an exact match on the currency. in: query name: sourceCurrency required: false schema: type: string - description: The payment amount from range filter. Filters for paymentAmount >= paymentAmountFrom in: query name: paymentAmountFrom required: false schema: format: int32 type: integer - description: The payment amount to range filter. Filters for paymentAmount ⇐ paymentAmountTo in: query name: paymentAmountTo required: false schema: format: int32 type: integer - description: The payment currency filter. Filters based on an exact match on the currency. in: query name: paymentCurrency required: false schema: type: string - description: The submitted date from range filter. Format is yyyy-MM-dd. in: query name: submittedDateFrom required: false schema: format: date type: string - description: The submitted date to range filter. Format is yyyy-MM-dd. in: query name: submittedDateTo required: false schema: format: date type: string - description: The payment memo filter. This filters via a case insensitive substring match. in: query name: paymentMemo required: false schema: type: string - description: Page number. Default is 1. in: query name: page required: false schema: default: 1 format: int32 type: integer - description: The number of results to return in a page in: query name: pageSize required: false schema: default: 25 format: int32 maximum: 100 minimum: 1 type: integer - description: | List of sort fields (e.g. ?sort=submittedDateTime:asc,status:asc). Default is sort by remoteId The supported sort fields are: sourceAmount, sourceCurrency, paymentAmount, paymentCurrency, routingNumber, accountNumber, remoteId, submittedDateTime and status in: query name: sort required: false schema: type: string - description: | Optional. If omitted or set to false, any Personal Identifiable Information (PII) values are returned masked. If set to true, and you have permission, the PII values will be returned as their original unmasked values. in: query name: sensitive required: false schema: type: boolean responses: 200: content: application/json: schema: $ref: '#/components/schemas/ListPaymentsResponseV3' description: Paginated list of payments 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: V3 Get List of Payments tags: - Payment Audit Service (Deprecated) /v3/paymentaudit/payments/{paymentId}: get: deprecated: true description: Deprecated (use /v4/paymentaudit/payments/ instead) operationId: getPaymentDetailsV3 parameters: - description: Payment Id in: path name: paymentId required: true schema: format: uuid type: string - description: | Optional. If omitted or set to false, any Personal Identifiable Information (PII) values are returned masked. If set to true, and you have permission, the PII values will be returned as their original unmasked values. in: query name: sensitive required: false schema: type: boolean responses: 200: content: application/json: schema: $ref: '#/components/schemas/PaymentResponseV3' description: 200 response, request completed okay 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: V3 Get Payment tags: - Payment Audit Service (Deprecated) x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v3/paymentaudit/payments/c3a422c2-12ac-4416-84fe-964221bd9815' -i \ -H 'Authorization: Bearer 67a1b299-69b1-4fdf-a576-96b81199a2b9' /v3/paymentaudit/transactions: get: deprecated: true description: Deprecated (use /v4/paymentaudit/transactions instead) operationId: exportTransactionsCSVV3 parameters: - description: | The Payor ID for whom you wish to run the report. For a Payor requesting the report, this could be their exact Payor, or it could be a child/descendant Payor. in: query name: payorId required: false schema: format: uuid type: string - description: Start date, inclusive. Format is YYYY-MM-DD in: query name: startDate required: false schema: format: date type: string - description: End date, inclusive. Format is YYYY-MM-DD in: query name: endDate required: false schema: format: date type: string responses: 200: content: application/csv: schema: $ref: '#/components/schemas/PayorAmlTransactionV3' description: Export Transactions response 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: V3 Export Transactions tags: - Payment Audit Service (Deprecated) x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v4/paymentaudit/transactions?startDate=2018-05-01&endDate=2018-05-31' -i -X GET \ -H 'Authorization: Bearer 76748e09-775d-4e2d-b889-f0555901d8eb' /v4/paymentaudit/payouts: get: description: | Get List of payouts for payor operationId: getPayoutsForPayorV4 parameters: - description: The id (UUID) of the payor funding the payout or the payor whose payees are being paid. in: query name: payorId required: false schema: format: uuid type: string - description: Payout Memo filter - case insensitive sub-string match in: query name: payoutMemo required: false schema: type: string - description: Payout Status in: query name: status required: false schema: enum: - ACCEPTED - REJECTED - SUBMITTED - QUOTED - INSTRUCTED - COMPLETED - INCOMPLETE - CONFIRMED - WITHDRAWN type: string - description: The submitted date from range filter. Format is yyyy-MM-dd. in: query name: submittedDateFrom required: false schema: format: date type: string - description: The submitted date to range filter. Format is yyyy-MM-dd. in: query name: submittedDateTo required: false schema: format: date type: string - description: The name of the payor whose payees are being paid. This filters via a case insensitive substring match. in: query name: fromPayorName required: false schema: type: string - description: Filter payouts scheduled to run on or after the given date. Format is yyyy-MM-dd. in: query name: scheduledForDateFrom required: false schema: format: date type: string - description: Filter payouts scheduled to run on or before the given date. Format is yyyy-MM-dd. in: query name: scheduledForDateTo required: false schema: format: date type: string - description: Payout Schedule Status in: query name: scheduleStatus required: false schema: enum: - ANY - SCHEDULED - EXECUTED - FAILED type: string - description: Page number. Default is 1. in: query name: page required: false schema: default: 1 format: int32 type: integer - description: The number of results to return in a page in: query name: pageSize required: false schema: default: 25 format: int32 maximum: 100 minimum: 1 type: integer - description: | List of sort fields (e.g. ?sort=submittedDateTime:asc,instructedDateTime:asc,status:asc) Default is submittedDateTime:asc The supported sort fields are: submittedDateTime, instructedDateTime, status, totalPayments, payoutId, scheduledFor in: query name: sort required: false schema: type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/GetPayoutsResponse' description: Payor data found 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Get Payouts for Payor tags: - Payment Audit Service x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v4/paymentaudit/payouts?payorId=449aa6c3-0569-47f6-a430-a470040da67c' -i -X GET \ -H 'Authorization: Bearer a9d9247d-5e30-4cea-a6e1-0898534ce768' /v4/paymentaudit/payouts/{payoutId}: get: description: | Get List of payments for Payout, allowing for RETURNED status operationId: getPaymentsForPayoutV4 parameters: - description: The id (UUID) of the payout. in: path name: payoutId required: true schema: format: uuid type: string - description: The remote id of the payees. in: query name: remoteId required: false schema: type: string - description: The id of the remote system that is orchestrating payments in: query name: remoteSystemId required: false schema: type: string - description: Payment Status in: query name: status required: false schema: enum: - ACCEPTED - AWAITING_FUNDS - FUNDED - UNFUNDED - BANK_PAYMENT_REQUESTED - REJECTED - ACCEPTED_BY_RAILS - CONFIRMED - FAILED - RETURNED - WITHDRAWN type: string - description: The source amount from range filter. Filters for sourceAmount >= sourceAmountFrom in: query name: sourceAmountFrom required: false schema: format: int32 type: integer - description: The source amount to range filter. Filters for sourceAmount ⇐ sourceAmountTo in: query name: sourceAmountTo required: false schema: format: int32 type: integer - description: The payment amount from range filter. Filters for paymentAmount >= paymentAmountFrom in: query name: paymentAmountFrom required: false schema: format: int32 type: integer - description: The payment amount to range filter. Filters for paymentAmount ⇐ paymentAmountTo in: query name: paymentAmountTo required: false schema: format: int32 type: integer - description: The submitted date from range filter. Format is yyyy-MM-dd. in: query name: submittedDateFrom required: false schema: format: date type: string - description: The submitted date to range filter. Format is yyyy-MM-dd. in: query name: submittedDateTo required: false schema: format: date type: string - description: | Transmission Type * ACH * SAME_DAY_ACH * WIRE in: query name: transmissionType required: false schema: enum: - ACH - SAME_DAY_ACH - WIRE type: string - description: Page number. Default is 1. in: query name: page required: false schema: default: 1 format: int32 type: integer - description: The number of results to return in a page in: query name: pageSize required: false schema: default: 25 format: int32 maximum: 100 minimum: 1 type: integer - description: | List of sort fields (e.g. ?sort=submittedDateTime:asc,status:asc). Default is sort by remoteId The supported sort fields are: sourceAmount, sourceCurrency, paymentAmount, paymentCurrency, routingNumber, accountNumber, remoteId, submittedDateTime and status in: query name: sort required: false schema: type: string - description: | Optional. If omitted or set to false, any Personal Identifiable Information (PII) values are returned masked. If set to true, and you have permission, the PII values will be returned as their original unmasked values. in: query name: sensitive required: false schema: type: boolean responses: 200: content: application/json: schema: $ref: '#/components/schemas/GetPaymentsForPayoutResponseV4' description: 200 response, data found okay 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Get Payments for Payout tags: - Payment Audit Service x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v4/paymentaudit/payouts/7b524212-6fd7-4699-983d-cac082022a2e' -i -X GET \ -H 'Authorization: Bearer f7a9a696-e528-487b-8734-e0a22e41ef7a' /v4/paymentaudit/payments: get: description: Get payments for the given payor Id operationId: listPaymentsAuditV4 parameters: - description: The UUID of the payee. in: query name: payeeId required: false schema: format: uuid type: string - description: The account owner Payor Id. Required for external users. in: query name: payorId required: false schema: format: uuid type: string - description: The payor’s name. This filters via a case insensitive substring match. in: query name: payorName required: false schema: type: string - description: The remote id of the payees. in: query name: remoteId required: false schema: type: string - description: The id of the remote system that is orchestrating payments in: query name: remoteSystemId required: false schema: type: string - description: Payment Status in: query name: status required: false schema: enum: - ACCEPTED - AWAITING_FUNDS - FUNDED - UNFUNDED - BANK_PAYMENT_REQUESTED - REJECTED - ACCEPTED_BY_RAILS - CONFIRMED - FAILED - RETURNED - WITHDRAWN type: string - description: | Transmission Type * ACH * SAME_DAY_ACH * WIRE in: query name: transmissionType required: false schema: enum: - ACH - SAME_DAY_ACH - WIRE type: string - description: The source account name filter. This filters via a case insensitive substring match. in: query name: sourceAccountName required: false schema: type: string - description: The source amount from range filter. Filters for sourceAmount >= sourceAmountFrom in: query name: sourceAmountFrom required: false schema: format: int32 type: integer - description: The source amount to range filter. Filters for sourceAmount ⇐ sourceAmountTo in: query name: sourceAmountTo required: false schema: format: int32 type: integer - description: The source currency filter. Filters based on an exact match on the currency. in: query name: sourceCurrency required: false schema: type: string - description: The payment amount from range filter. Filters for paymentAmount >= paymentAmountFrom in: query name: paymentAmountFrom required: false schema: format: int32 type: integer - description: The payment amount to range filter. Filters for paymentAmount ⇐ paymentAmountTo in: query name: paymentAmountTo required: false schema: format: int32 type: integer - description: The payment currency filter. Filters based on an exact match on the currency. in: query name: paymentCurrency required: false schema: type: string - description: The submitted date from range filter. Format is yyyy-MM-dd. in: query name: submittedDateFrom required: false schema: format: date type: string - description: The submitted date to range filter. Format is yyyy-MM-dd. in: query name: submittedDateTo required: false schema: format: date type: string - description: The payment memo filter. This filters via a case insensitive substring match. in: query name: paymentMemo required: false schema: type: string - description: Filter payouts scheduled to run on or after the given date. Format is yyyy-MM-dd. in: query name: scheduledForDateFrom required: false schema: format: date type: string - description: Filter payouts scheduled to run on or before the given date. Format is yyyy-MM-dd. in: query name: scheduledForDateTo required: false schema: format: date type: string - description: Payout Schedule Status in: query name: scheduleStatus required: false schema: enum: - ANY - SCHEDULED - EXECUTED - FAILED type: string - description: Page number. Default is 1. in: query name: page required: false schema: default: 1 format: int32 type: integer - description: The number of results to return in a page in: query name: pageSize required: false schema: default: 25 format: int32 maximum: 100 minimum: 1 type: integer - description: | List of sort fields (e.g. ?sort=submittedDateTime:asc,status:asc). Default is sort by submittedDateTime:desc,paymentId:asc The supported sort fields are: sourceAmount, sourceCurrency, paymentAmount, paymentCurrency, routingNumber, accountNumber, remoteId, submittedDateTime, status and paymentId in: query name: sort required: false schema: type: string - description: | Optional. If omitted or set to false, any Personal Identifiable Information (PII) values are returned masked. If set to true, and you have permission, the PII values will be returned as their original unmasked values. in: query name: sensitive required: false schema: type: boolean responses: 200: content: application/json: schema: $ref: '#/components/schemas/ListPaymentsResponseV4' description: Paginated list of payments 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: Get List of Payments tags: - Payment Audit Service /v4/paymentaudit/payments/{paymentId}: get: description: | Get the payment with the given id. This contains the payment history. operationId: getPaymentDetailsV4 parameters: - description: Payment Id in: path name: paymentId required: true schema: format: uuid type: string - description: | Optional. If omitted or set to false, any Personal Identifiable Information (PII) values are returned masked. If set to true, and you have permission, the PII values will be returned as their original unmasked values. in: query name: sensitive required: false schema: type: boolean responses: 200: content: application/json: schema: $ref: '#/components/schemas/PaymentResponseV4' description: 200 response, request completed okay 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Get Payment tags: - Payment Audit Service x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v4/paymentaudit/payments/c3a422c2-12ac-4416-84fe-964221bd9815' -i \ -H 'Authorization: Bearer 67a1b299-69b1-4fdf-a576-96b81199a2b9' /v4/paymentaudit/fundings: get: description: |

Get a list of Fundings for a payor.

operationId: getFundingsV4 parameters: - description: The account owner Payor ID in: query name: payorId required: true schema: format: uuid type: string - description: Page number. Default is 1. in: query name: page required: false schema: default: 1 format: int32 type: integer - description: The number of results to return in a page in: query name: pageSize required: false schema: default: 25 format: int32 maximum: 100 minimum: 1 type: integer - description: | List of sort fields. Example: ```?sort=destinationCurrency:asc,destinationAmount:asc``` Default is no sort. The supported sort fields are: dateTime and amount. in: query name: sort schema: type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/GetFundingsResponse' description: Get Fundings normal response 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Get Fundings for Payor tags: - Payment Audit Service x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v4/paymentaudit/fundings?payorId=2a5d8af2-a1ed-4d7f-b9a7-ebe4b333be5a' -i -X GET \ -H 'Authorization: Bearer 3667f994-7d41-4d20-990d-b79fa720e56b' /v4/paymentaudit/payoutStatistics: get: description: |

Get payout statistics for a payor.

operationId: getPayoutStatsV4 parameters: - description: The account owner Payor ID. Required for external users. in: query name: payorId required: false schema: format: uuid type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/GetPayoutStatistics' description: Payout Statistics response 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Get Payout Statistics tags: - Payment Audit Service x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v4/paymentaudit/payoutStatistics?payorId=c61b32ac-8e50-433e-9372-b5b1c8180742' -i -X GET \ -H 'Authorization: Bearer e71d3dfe-3587-4df6-9f8d-59d3135d7bf7' /v4/payments/deltas: get: description: Get a paginated response listing payment changes. operationId: listPaymentChangesV4 parameters: - description: The Payor ID to find associated Payments in: query name: payorId required: true schema: format: uuid type: string - description: The updatedSince filter in the format YYYY-MM-DDThh:mm:ss+hh:mm in: query name: updatedSince required: true schema: format: date-time type: string - description: Page number. Default is 1. in: query name: page required: false schema: default: 1 format: int32 type: integer - description: The number of results to return in a page in: query name: pageSize required: false schema: default: 100 format: int32 maximum: 1000 minimum: 1 type: integer responses: 200: content: application/json: schema: $ref: '#/components/schemas/PaymentDeltaResponse' description: Details of Payment Changes 400: description: Bad Request summary: List Payment Changes tags: - Payment Audit Service x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v4/payments/deltas?pageSize=2&page=8&payorId=0a818933-087d-47f2-ad83-2f986ed087eb&updatedSince=2019-01-20T09:00:00+00:00' -i -X GET \ -H 'Authorization: Bearer 6dd5e976-e329-462f-bd6b-25d463cf02fd' \ -H 'Content-Type: application/json' /v4/paymentaudit/transactions: get: description: Download a CSV file containing payments in a date range. Uses Transfer-Encoding - chunked to stream to the client. Date range is inclusive of both the start and end dates. operationId: exportTransactionsCSVV4 parameters: - description: |

The Payor ID for whom you wish to run the report.

For a Payor requesting the report, this could be their exact Payor, or it could be a child/descendant Payor.

in: query name: payorId required: false schema: format: uuid type: string - description: Start date, inclusive. Format is YYYY-MM-DD in: query name: startDate required: false schema: format: date type: string - description: End date, inclusive. Format is YYYY-MM-DD in: query name: endDate required: false schema: format: date type: string - description: |

Mode to determine whether to include other Payor's data in the results.

May only be used if payorId is specified.

Can be omitted or set to 'payorOnly' or 'payorAndDescendants'.

payorOnly: Only include results for the specified Payor. This is the default if 'include' is omitted.

payorAndDescendants: Aggregate results for all descendant Payors of the specified Payor. Should only be used if the Payor with the specified payorId has at least one child Payor.

Note when a Payor requests the report and include=payorAndDescendants is used, the following additional columns are included in the CSV: Payor Name, Payor Id

in: query name: include required: false schema: enum: - payorOnly - payorAndDescendants type: string responses: 200: content: application/csv: schema: $ref: '#/components/schemas/PayorAmlTransaction' description: Export Transactions response 400: description: invalid Request 401: description: Not Authorized 403: description: Forbidden summary: Export Transactions tags: - Payment Audit Service x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v4/paymentaudit/transactions?startDate=2018-05-01&endDate=2018-05-31' -i -X GET \ -H 'Authorization: Bearer 76748e09-775d-4e2d-b889-f0555901d8eb' /v3/payouts: post: description: |

Create a new payout and return a location header with a link to get the payout.

Basic validation of the payout is performed before returning but more comprehensive validation is done asynchronously.

The results can be obtained by issuing a HTTP GET to the URL returned in the location header.

**NOTE:** amount values in payments must be in 'minor units' format. E.g. cents for USD, pence for GBP etc.

with no decimal places. operationId: submitPayoutV3 requestBody: content: application/json: schema: $ref: '#/components/schemas/CreatePayoutRequestV3' multipart/form-data: example: | remoteId,currency,amount,paymentMemo,sourceAccountName,payorPaymentId remoteId1,USD,12345,ref1,myAccountUSD,1234567abc remoteId2,USD,23456,ref2,myAccountUSD,1234567def schema: properties: payorId: deprecated: true description: Deprecated in v2.16. Any value supplied here will be ignored. format: uuid type: string payoutFromPayorId: description: The id of the payor whose source account(s) will be debited. payoutFromPayorId and payoutToPayorId must be both supplied or both omitted. format: uuid type: string payoutToPayorId: description: The id of the payor whose payees will be paid. payoutFromPayorId and payoutToPayorId must be both supplied or both omitted. format: uuid type: string file: description: Create a new payout from a CSV source file and return a location header with a link to get the payout items: $ref: '#/components/schemas/PaymentInstructionV3' type: array type: object description: Post amount to transfer using stored funding account details. required: true responses: 202: description: Detailed response of payout instructions headers: Location: description: Reference to created payout schema: format: uri type: string 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: Submit Payout tags: - Payout Service x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v3/payouts' -i -X POST \ -H 'Authorization: Bearer 63e4d691-847b-46b5-893d-fd15c54dd4bf' \ -H 'Content-Type: application/json' \ -d '{"payments":[{"remoteId":"myRemoteId01","currency":"USD","amount":12345,"sourceAccountName":"PAYOR_SRC_ACCT","payorPaymentId":"1111"},{"remoteId":"myRemoteId02","currency":"USD","amount":23456,"sourceAccountName":"PAYOR_SRC_ACCT","payorPaymentId":"2222"},{"remoteId":"myRemoteId01","currency":"USD","amount":1020,"sourceAccountName":"PAYOR_SRC_ACCT","payorPaymentId":"3333"},{"remoteId":"myRemoteId03","currency":"USD","amount":3456,"sourceAccountName":"PAYOR_SRC_ACCT","payorPaymentId":"4444"},{"remoteId":"myRemoteId04","currency":"USD","amount":8765,"sourceAccountName":"PAYOR_SRC_ACCT","payorPaymentId":"5555"}]}' /v3/payouts/{payoutId}: delete: description: Withdraw Payout will remove the payout details from the rails but the payout will still be accessible in payout service in WITHDRAWN status. operationId: withdrawPayoutV3 parameters: - description: Id of the payout in: path name: payoutId required: true schema: format: uuid type: string responses: 202: description: HTTP 202 Accepted 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Withdraw Payout tags: - Payout Service x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v3/payouts/240c2341-8ddb-4764-9768-f1e0a498158c' -i -X DELETE \ -H 'Authorization: Bearer 1681d963-f971-4b82-8376-b3e86834de78' \ -H 'Content-Type: application/json' get: description: Get payout summary - returns the current state of the payout. operationId: getPayoutSummaryV3 parameters: - description: Id of the payout in: path name: payoutId required: true schema: format: uuid type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/PayoutSummaryResponseV3' description: Details of Payout 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Get Payout Summary tags: - Payout Service x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v3/payouts/cc2e1a8d-39ae-461c-bde3-ce78525f89ac' -i -X POST \ -H 'Authorization: Bearer f081303c-7fcc-4204-8530-02e8ec2ef73f' \ -H 'Content-Type: application/json' post: description: Instruct a payout to be made for the specified payoutId. operationId: instructPayoutV3 parameters: - description: Id of the payout in: path name: payoutId required: true schema: format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/InstructPayoutRequest' description: Additional instruct payout parameters required: false responses: 202: description: HTTP 202 Accepted 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available 409: content: application/json: schema: $ref: '#/components/schemas/inline_response_409' description: | The request contained data that would result in a duplicate value summary: Instruct Payout tags: - Payout Service x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v3/payouts/0627380c-2330-4fcd-a2a2-02b12152e62e' -i -X POST \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer d1963608-6612-4aa0-bf7d-cf18ce540cdc' /v3/payouts/{payoutId}/quote: post: description: Create quote for a payout operationId: createQuoteForPayoutV3 parameters: - description: Id of the payout in: path name: payoutId required: true schema: format: uuid type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/QuoteResponseV3' description: Quote for payout 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available 409: content: application/json: schema: $ref: '#/components/schemas/inline_response_409' description: | The request contained data that would result in a duplicate value summary: Create a quote for the payout tags: - Payout Service x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v3/payouts/cc2e1a8d-39ae-461c-bde3-ce78525f89ac/quote' -i -X POST \ -H 'Authorization: Bearer f081303c-7fcc-4204-8530-02e8ec2ef73f' \ -H 'Content-Type: application/json' /v3/payouts/{payoutId}/payments: get: description: Retrieve payments for a payout operationId: getPaymentsForPayoutV3 parameters: - description: Id of the payout in: path name: payoutId required: true schema: format: uuid type: string - description: | Payment Status * ACCEPTED: any payment which was accepted at submission time (status may have changed since) * REJECTED: any payment rejected by initial submission processing * WITHDRAWN: any payment which has been withdrawn * WITHDRAWABLE: any payment eligible for withdrawal in: query name: status required: false schema: enum: - ACCEPTED - REJECTED - WITHDRAWN - WITHDRAWABLE type: string - description: The remote id of the payees. in: query name: remoteId required: false schema: type: string - description: Payor's Id of the Payment in: query name: payorPaymentId required: false schema: type: string - description: Physical Account Name in: query name: sourceAccountName required: false schema: type: string - description: | Transmission Type * ACH * SAME_DAY_ACH * WIRE in: query name: transmissionType required: false schema: enum: - ACH - SAME_DAY_ACH - WIRE type: string - description: Payment Memo of the Payment in: query name: paymentMemo required: false schema: type: string - description: The number of results to return in a page in: query name: pageSize required: false schema: default: 25 format: int32 maximum: 100 minimum: 1 type: integer - description: Page number. Default is 1. in: query name: page required: false schema: default: 1 format: int32 type: integer responses: 200: content: application/json: schema: $ref: '#/components/schemas/PagedPaymentsResponseV3' description: Payments for payout 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Retrieve payments for a payout tags: - Payout Service x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v3/payouts/cc2e1a8d-39ae-461c-bde3-ce78525f89ac/payments?payoutId=fb2c5dd0-3573-11eb-a2c2-f2189898ab4d' -i -X GET \ -H 'Authorization: Bearer f081303c-7fcc-4204-8530-02e8ec2ef73f' \ -H 'Content-Type: application/json' /v3/payouts/{payoutId}/schedule: delete: description: Remove the schedule for a scheduled payout operationId: deschedulePayout parameters: - description: Id of the payout in: path name: payoutId required: true schema: format: uuid type: string responses: 204: description: Descheduled payout successfully 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available 409: content: application/json: schema: $ref: '#/components/schemas/inline_response_409' description: | The request contained data that would result in a duplicate value summary: Deschedule a payout tags: - Payout Service x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v3/payouts/cc2e1a8d-39ae-461c-bde3-ce78525f89ac/schedule' -i -X DELETE \ -H 'Authorization: Bearer f081303c-7fcc-4204-8530-02e8ec2ef73f' post: description: |

Schedule a payout for auto-instruction in the future or update existing payout schedule if the payout has been scheduled before.

operationId: scheduleForPayout parameters: - description: Id of the payout in: path name: payoutId required: true schema: format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/SchedulePayoutRequest' description: schedule payout parameters responses: 204: description: Payout is scheduled successfully 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available 409: content: application/json: schema: $ref: '#/components/schemas/inline_response_409' description: | The request contained data that would result in a duplicate value summary: Schedule a payout tags: - Payout Service x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v3/payouts/cc2e1a8d-39ae-461c-bde3-ce78525f89ac/schedule' -i -X POST \ -H 'Authorization: Bearer f081303c-7fcc-4204-8530-02e8ec2ef73f' \ -H 'Content-Type: application/json' -d '{"scheduledFor": "2025-01-01T12:00:00Z", "notificationsEnabled": "true"}' /v1/paymentChannelRules: get: description: List the country specific payment channel rules. operationId: listPaymentChannelRulesV1 responses: 200: content: application/json: schema: $ref: '#/components/schemas/PaymentChannelRulesResponse' description: List Payment Channel Country Rules 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid summary: List Payment Channel Country Rules tags: - Countries x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v1/paymentChannelRules' -i -X GET \ -H 'Authorization: Bearer 63fa49a0-1eeb-4756-b4fb-7cdd94ae80c1' /v1/payments/{paymentId}/withdraw: post: description: |

withdraw a payment

There are a variety of reasons why this can fail

operationId: withdrawPayment parameters: - description: Id of the Payment in: path name: paymentId required: true schema: format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/WithdrawPaymentRequest' description: details for withdrawal required: true responses: 204: description: The payment was withdrawn 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Withdraw a Payment tags: - Payout Service x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v1/payments/b39264fc-560e-4fa6-b6c3-b12d42e14596/withdraw' -i -X POST \ -H 'Authorization: Bearer 63e4d691-847b-46b5-893d-fd15c54dd4bf' \ -H 'Content-Type: application/json' \ -d '{"reason": "payment submitted in error"}' /v1/supportedCountries: get: deprecated: true description: |

List the supported countries.

This version will be retired in March 2020. Use /v2/supportedCountries

operationId: listSupportedCountriesV1 responses: 200: content: application/json: schema: $ref: '#/components/schemas/SupportedCountriesResponse' description: List of Supported Countries security: [] summary: List Supported Countries tags: - Countries x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v1/supportedCountries' -i -X GET \ -H 'Authorization: Bearer 9a7c9010-547f-410e-ac3c-fd6f6701c745' /v2/supportedCountries: get: description: List the supported countries. operationId: listSupportedCountriesV2 responses: 200: content: application/json: schema: $ref: '#/components/schemas/SupportedCountriesResponseV2' description: List of Supported Countries security: [] summary: List Supported Countries tags: - Countries x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v1/supportedCountries' -i -X GET /v2/currencies: get: description: List the supported currencies. operationId: listSupportedCurrenciesV2 responses: 200: content: application/json: schema: $ref: '#/components/schemas/SupportedCurrencyResponseV2' description: List Supported Currencies security: [] summary: List Supported Currencies tags: - Currencies x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v2/currencies' -i -X GET /v1/webhooks: description: List the details about the webhooks for the given payor. get: description: List the details about the webhooks for the given payor. operationId: listWebhooksV1 parameters: - description: Page number. Default is 1. in: query name: page required: false schema: default: 1 format: int32 type: integer - description: The number of results to return in a page in: query name: pageSize required: false schema: default: 25 format: int32 maximum: 100 minimum: 1 type: integer - description: The Payor ID in: query name: payorId required: true schema: format: uuid type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/WebhooksResponse' description: Webhook response 400: description: Invalid Request Parameters 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: List the details about the webhooks for the given payor. tags: - Webhooks x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v1/webhooks?payorId=a2967711-df07-41e5-b5ea-f563088911c6' -i -X GET \ -H 'Authorization: Bearer 757a7dbf-2afb-45ec-877c-2aa3857c8e08' post: description: Create Webhook operationId: createWebhookV1 requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateWebhookRequest' responses: 201: description: Webhook Created headers: Location: description: Reference to Webhook object schema: type: string 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions summary: Create Webhook tags: - Webhooks summary: List Webhooks /v1/webhooks/{webhookId}: description: Get details about the given webhook. get: description: Get details about the given webhook. operationId: getWebhookV1 parameters: - description: Webhook id in: path name: webhookId required: true schema: format: uuid type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/WebhookResponse' description: Webhook response 400: description: Bad Request, Invalid path parameter 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Get details about the given webhook. tags: - Webhooks x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v1/webhooks/126895a8-ba3d-44e8-9b34-84ee579cee7a' -i -X GET \ -H 'Authorization: Bearer a016f840-dafc-4b10-95f5-70ecc75a02d1' post: description: Update Webhook operationId: updateWebhookV1 parameters: - description: Webhook id in: path name: webhookId required: true schema: format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateWebhookRequest' responses: 204: description: Webhook Updated 400: content: application/json: schema: $ref: '#/components/schemas/inline_response_400' description: Invalid request. See Error message payload for details of failure 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available summary: Update Webhook tags: - Webhooks summary: Get Webhook /v1/webhooks/{webhookId}/ping: description: Trigger an immediate ping notification to the webhook post: operationId: pingWebhookV1 parameters: - description: Webhook id in: path name: webhookId required: true schema: format: uuid type: string responses: 202: content: application/json: schema: $ref: '#/components/schemas/PingResponse' description: Send ping 400: description: Bad Request, Invalid path parameter 401: content: application/json: schema: $ref: '#/components/schemas/inline_response_401' description: Invalid access token. May be expired or invalid 403: content: application/json: schema: $ref: '#/components/schemas/inline_response_403' description: | The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions 404: content: application/json: schema: $ref: '#/components/schemas/inline_response_404' description: | The resource was not found or is no longer available tags: - Webhooks summary: Ping Webhook components: schemas: Notification: properties: apiVersion: description: The API version of the notification schema example: "1" type: string sequenceNumber: description: This is a payor specific sequence number starting at 1 for the first notification sent example: 1234 format: int64 type: integer category: description: The category that the notification relates to. One of "payment", "payee", "debit" or "system" example: payment type: string eventName: description: The name of event that led to this notification example: payment.accepted type: string source: description: One of the available set of source event payloads discriminator: mapping: ping: '#/components/schemas/Ping' payment_status_changed: '#/components/schemas/PaymentStatusChanged' payment_rejected_or_returned: '#/components/schemas/PaymentRejectedOrReturned' onboarding_status_changed: '#/components/schemas/OnboardingStatusChanged' payable_status_changed: '#/components/schemas/PayableStatusChanged' payee_details_changed: '#/components/schemas/PayeeDetailsChanged' debit_status_changed: '#/components/schemas/DebitStatusChanged' propertyName: sourceType example: type: payment_status_changed eventId: 270ab907-27ec-4b83-8028-0ff432bbdec4 createdAt: 2020-06-18T15:09:42Z paymentId: cbd9280f-8fde-4190-b014-979d88f3ec54 payoutPayorIds: submittingPayorId: ac207f97-663c-4429-9d57-ba5b35d6672d payoutFromPayorId: ac207f97-663c-4429-9d57-ba5b35d6672d payoutToPayorId: ac207f97-663c-4429-9d57-ba5b35d6672d payorPaymentId: ourpayment-id12345 status: ACCEPTED oneOf: - $ref: '#/components/schemas/Ping' - $ref: '#/components/schemas/PaymentStatusChanged' - $ref: '#/components/schemas/PaymentRejectedOrReturned' - $ref: '#/components/schemas/OnboardingStatusChanged' - $ref: '#/components/schemas/PayableStatusChanged' - $ref: '#/components/schemas/PayeeDetailsChanged' - $ref: '#/components/schemas/DebitStatusChanged' required: - apiVersion - category - eventName - sequenceNumber type: object SourceEvent: description: Base type for each source event payload properties: sourceType: description: OA3 Schema type name for the source info which is used as the discriminator value to ensure that data binding works correctly example: payment_status_changed type: string eventId: description: UUID id of the source event in the Velo platform example: 270ab907-27ec-4b83-8028-0ff432bbdec4 format: uuid type: string createdAt: description: ISO8601 timestamp indicating when the source event was created example: 2020-06-18T15:09:42Z format: date-time type: string required: - createdAt - eventId - sourceType type: object Ping: allOf: - $ref: '#/components/schemas/SourceEvent' description: Ping event for testing the webhook integration. Can be initiated via the Web UI. PaymentEvent: allOf: - $ref: '#/components/schemas/SourceEvent' - $ref: '#/components/schemas/PaymentEvent_allOf' description: Base type for all Payment Events PaymentStatusChanged: allOf: - $ref: '#/components/schemas/PaymentEvent' - $ref: '#/components/schemas/PaymentStatusChanged_allOf' description: Base type for all payment status changed events PaymentRejectedOrReturned: allOf: - $ref: '#/components/schemas/PaymentStatusChanged' - $ref: '#/components/schemas/PaymentRejectedOrReturned_allOf' description: Base type for all rejection or return payment events PayoutPayorIds: description: Holder for all payor ids associated with a Payout properties: submittingPayorId: description: The ID of the Payor that is submitting the payout example: ac207f97-663c-4429-9d57-ba5b35d6672d format: uuid type: string payoutFromPayorId: description: The ID of the Payor providing the source account for the payout example: 35198f08-1c7b-4a91-8921-cd760ed92bca format: uuid type: string payoutToPayorId: description: The ID of the Payor that owns the Payee (on behalf of) example: 3eb99144-6ebf-4b02-9483-ad86b2ff1bca format: uuid type: string required: - payoutFromPayorId - payoutToPayorId - submittingPayorId type: object PayeeEvent: allOf: - $ref: '#/components/schemas/SourceEvent' - $ref: '#/components/schemas/PayeeEvent_allOf' description: Base type for all Payee Events OnboardingStatusChanged: allOf: - $ref: '#/components/schemas/PayeeEvent' - type: object description: Base type for all onboarding status changed events PayableStatusChanged: allOf: - $ref: '#/components/schemas/PayeeEvent' - type: object description: Base type for all payable status changed events PayeeDetailsChanged: allOf: - $ref: '#/components/schemas/PayeeEvent' - type: object description: Base type for all payee details changed events DebitEvent: allOf: - $ref: '#/components/schemas/SourceEvent' - $ref: '#/components/schemas/DebitEvent_allOf' description: Base type for all Debit Events DebitStatusChanged: allOf: - $ref: '#/components/schemas/DebitEvent' - $ref: '#/components/schemas/DebitStatusChanged_allOf' description: Base type for all debit status changed events AuthResponse: example: access_token: IwOGYzYTlmM2YxOTQ5MGE3YmNmMDFkNTVk refresh_token: IwOGYzYTlmM2YxOTQ5MGE3YmNmMDFkNTVk scope: example_scope token_type: bearer expires_in: 1799 entityIds: - entityIds - entityIds properties: access_token: example: IwOGYzYTlmM2YxOTQ5MGE3YmNmMDFkNTVk type: string token_type: example: bearer type: string expires_in: example: 1799 type: number refresh_token: example: IwOGYzYTlmM2YxOTQ5MGE3YmNmMDFkNTVk type: string scope: example: example_scope type: string entityIds: items: type: string type: array required: - access_token - token_type type: object Error: properties: errorMessage: description: English language message indicating the nature of the error example: size must be between 0 and 10 type: string errorCode: description: Unique numeric code that can be used for switching client behavior or to drive translated or customised error messages example: "20110003" type: string localisationDetails: $ref: '#/components/schemas/LocalisationDetails' location: description: the property or object that caused the error example: firstName type: string locationType: deprecated: true description: | the location type in the request that was the cause of the error enum: - requestBody - queryParam - requestParam - header - pathParam example: requestBody type: string reasonCode: deprecated: true description: a camel-cased string that can be used by clients to localise client error messages (deprecated) example: validationError type: string errorData: $ref: '#/components/schemas/ErrorData' type: object ResetPasswordRequest: example: email: foo@example.com properties: email: description: the email address of the user requesting the reset password example: foo@example.com format: email type: string required: - email type: object AccessTokenValidationRequest: example: otp: "123456" properties: otp: description: an OTP either sent via sms or generated by a registered MFA device example: "123456" maxLength: 64 minLength: 6 type: string required: - otp type: object AccessTokenResponse: example: access_token: 9b58410b-e1b7-4f90-bebb-7e09c5427020 refresh_token: c3d0f771-0997-4814-84e3-09690208545a user_info: mfa_details: mfa_type: TOTP verified: true user_id: 39976ee5-dc4c-4b21-a966-a04fa71ef9e1 userType: PAYOR scope: https://api.velopayments.com/scopes/auth/users token_type: bearer expires_in: 1800 entityIds: - ed89eaa0-4450-4916-a4ff-62a328d60bd6 properties: access_token: description: | Bearer token used in headers to access secure endpoints example: 9b58410b-e1b7-4f90-bebb-7e09c5427020 type: string token_type: default: bearer description: the type of the token example: bearer type: string refresh_token: description: can be used to obtain a new access token example: c3d0f771-0997-4814-84e3-09690208545a type: string expires_in: description: The lifetime in seconds of the access token example: 1800 type: integer scope: description: the scope of the access token example: https://api.velopayments.com/scopes/auth/users type: string user_info: $ref: '#/components/schemas/UserInfo' entityIds: description: | If the user is a payee then the payeeId

If the user is a payor then the payorId example: - ed89eaa0-4450-4916-a4ff-62a328d60bd6 items: type: string type: array type: object UserType: enum: - BACKOFFICE - PAYOR - PAYEE example: PAYOR type: string UserStatus: description: | The status of the user when the user has been invited but not yet enrolled they will have a PENDING status enum: - ENABLED - DISABLED - PENDING example: ENABLED type: string PayeeType: enum: - COMPANY - INDIVIDUAL example: COMPANY type: string PagedUserResponse: description: List Users Response Object example: links: - rel: first href: https://api.sandbox.velopayments.com/v2/users??type=PAYOR&page=1&pageSize=10 - rel: first href: https://api.sandbox.velopayments.com/v2/users??type=PAYOR&page=1&pageSize=10 page: numberOfElements: 12 totalPages: 2 pageSize: 25 page: 1 totalElements: 33 content: - lastName: Doe companyName: Acme Corp roles: - payor.admin lockedOutTimestamp: 2000-01-23T04:56:07.000+00:00 smsNumber: "11235555555" entityId: 7fffa261-ac68-49e6-b605-d24a444d9206 mfaStatus: REGISTERED firstName: John primaryContactNumber: "11235555555" mfaType: TOTP lockedOut: true id: 8bbf301c-948f-4445-b411-357eec53e441 userType: PAYOR email: foo@example.com secondaryContactNumber: "11235555550" status: ENABLED - lastName: Doe companyName: Acme Corp roles: - payor.admin lockedOutTimestamp: 2000-01-23T04:56:07.000+00:00 smsNumber: "11235555555" entityId: 7fffa261-ac68-49e6-b605-d24a444d9206 mfaStatus: REGISTERED firstName: John primaryContactNumber: "11235555555" mfaType: TOTP lockedOut: true id: 8bbf301c-948f-4445-b411-357eec53e441 userType: PAYOR email: foo@example.com secondaryContactNumber: "11235555550" status: ENABLED properties: page: $ref: '#/components/schemas/PagedUserResponse_page' links: items: $ref: '#/components/schemas/PagedUserResponse_links' type: array content: items: $ref: '#/components/schemas/UserResponse' type: array type: object UserResponse: example: lastName: Doe companyName: Acme Corp roles: - payor.admin lockedOutTimestamp: 2000-01-23T04:56:07.000+00:00 smsNumber: "11235555555" entityId: 7fffa261-ac68-49e6-b605-d24a444d9206 mfaStatus: REGISTERED firstName: John primaryContactNumber: "11235555555" mfaType: TOTP lockedOut: true id: 8bbf301c-948f-4445-b411-357eec53e441 userType: PAYOR email: foo@example.com secondaryContactNumber: "11235555550" status: ENABLED properties: id: description: The id of the user example: 8bbf301c-948f-4445-b411-357eec53e441 format: uuid type: string status: description: | The status of the user when the user has been invited but not yet enrolled they will have a PENDING status enum: - ENABLED - DISABLED - PENDING example: ENABLED type: string email: description: the email address of the user example: foo@example.com format: email type: string smsNumber: description: | The phone number of a device that the user can receive sms messages on example: "11235555555" pattern: ^\+[1-9]\d{1,14}$ type: string primaryContactNumber: description: | The main contact number for the user example: "11235555555" pattern: ^\+[1-9]\d{1,14}$ type: string secondaryContactNumber: description: | The secondary contact number for the user example: "11235555550" pattern: ^\+[1-9]\d{1,14}$ type: string firstName: example: John maxLength: 128 minLength: 1 type: string lastName: example: Doe maxLength: 128 minLength: 1 type: string entityId: description: | The payorId or payeeId or null if the user is not a payor or payee user example: 7fffa261-ac68-49e6-b605-d24a444d9206 format: uuid type: string companyName: description: | The payor or payee company name or null if the user is not a payor or payee user example: Acme Corp maxLength: 128 minLength: 1 type: string roles: description: | The role(s) for the user example: - payor.admin items: $ref: '#/components/schemas/Role' minItems: 1 type: array userType: description: Indicates the type of user. Could be BACKOFFICE, PAYOR or PAYEE. enum: - BACKOFFICE - PAYOR - PAYEE example: PAYOR type: string mfaType: description: The type of the MFA device enum: - SMS - YUBIKEY - TOTP example: TOTP type: string mfaStatus: description: The status of the MFA device enum: - REGISTERED - UNREGISTERED example: REGISTERED type: string lockedOut: description: If true the user is currently locked out and unable to log in example: true type: boolean lockedOutTimestamp: description: | A timestamp showing when the user was locked out If null then the user is not currently locked out format: date-time nullable: true type: string type: object InviteUserRequest: example: firstName: John lastName: Doe primaryContactNumber: "11235555555" mfaType: TOTP roles: - velo.payor.admin smsNumber: "11235555555" entityId: 7fffa261-ac68-49e6-b605-d24a444d9206 userType: PAYEE email: foo@example.com secondaryContactNumber: "11235555550" verificationCode: "123456" properties: email: description: the email address of the invited user example: foo@example.com format: email type: string mfaType: description: |

The MFA type that the user will use

The type may be conditional on the role(s) the user has

enum: - SMS - YUBIKEY - TOTP example: TOTP type: string smsNumber: description: | The phone number of a device that the user can receive sms messages on example: "11235555555" pattern: ^\+[1-9]\d{1,14}$ type: string primaryContactNumber: description: | The main contact number for the user example: "11235555555" pattern: ^\+[1-9]\d{1,14}$ type: string secondaryContactNumber: description: | The secondary contact number for the user example: "11235555550" nullable: true pattern: ^\+[1-9]\d{1,14}$ type: string roles: description: | The role(s) for the user The role must exist The role can be a custom role or a system role but the invoker must have the permissions to assign the role System roles are: velo.backoffice.admin, velo.payor.master_admin, velo.payor.admin, velo.payor.support, velo.payee.admin, velo.payee.support example: - velo.payor.admin items: type: string type: array firstName: example: John maxLength: 128 minLength: 1 type: string lastName: example: Doe maxLength: 128 minLength: 1 type: string entityId: description: | The payorId or payeeId or null if the user is a backoffice admin example: 7fffa261-ac68-49e6-b605-d24a444d9206 format: uuid nullable: true type: string userType: description: Will default to PAYOR if not provided but entityId is provided enum: - BACKOFFICE - PAYOR - PAYEE example: PAYEE type: string verificationCode: description: | Optional property that MUST be suppied when manually verifying a user The user's smsNumber is registered via a separate endpoint and an OTP sent to them example: "123456" maxLength: 6 minLength: 6 nullable: true type: string required: - email - mfaType - primaryContactNumber - roles - smsNumber type: object RoleUpdateRequest: example: roles: - payor.admin verificationCode: "123456" properties: roles: description: |

The role(s) for the user

The role must exist

The role can be a custom role or a system role but the invoker must have the permissions to assign the role

System roles are: backoffice.admin, payor.master_admin, payor.admin, payor.support

example: - payor.admin items: type: string type: array verificationCode: description: |

Optional property that MUST be suppied when manually verifying a user

The user's smsNumber is registered via a separate endpoint and an OTP sent to them

example: "123456" maxLength: 6 minLength: 6 nullable: true type: string required: - roles type: object UnregisterMFARequest: example: mfaType: TOTP verificationCode: "123456" properties: mfaType: description: The type of the MFA device enum: - YUBIKEY - TOTP example: TOTP type: string verificationCode: description: |

Optional property that MUST be suppied when manually verifying a user

The user's smsNumber is registered via a separate endpoint and an OTP sent to them

example: "123456" maxLength: 6 minLength: 6 nullable: true type: string required: - mfaType type: object ResendTokenRequest: example: tokenType: INVITE_MFA_USER verificationCode: "123456" properties: tokenType: description: The type of the token to resend enum: - INVITE_MFA_USER - MFA_REGISTRATION example: INVITE_MFA_USER type: string verificationCode: description: |

Optional property that MUST be suppied when manually verifying a user

The user's smsNumber is registered via a separate endpoint and an OTP sent to them

example: "123456" maxLength: 6 minLength: 6 nullable: true type: string required: - tokenType type: object UserDetailsUpdateRequest: description: |

All properties are optional

Only provided properties will be updated

Use null to null out a property that is allowed to be nullable

example: firstName: John lastName: Doe primaryContactNumber: "11235555555" mfaType: TOTP smsNumber: "11235555555" secondaryContactNumber: "11235555550" email: foo@example.com verificationCode: "123456" properties: primaryContactNumber: description: | The main contact number for the user example: "11235555555" nullable: true pattern: ^\+[1-9]\d{1,14}$ type: string secondaryContactNumber: description: | The secondary contact number for the user example: "11235555550" nullable: true pattern: ^\+[1-9]\d{1,14}$ type: string firstName: example: John maxLength: 128 minLength: 1 nullable: true type: string lastName: example: Doe maxLength: 128 minLength: 1 nullable: true type: string email: description: the email address of the user example: foo@example.com format: email nullable: true type: string smsNumber: description: | The phone number of a device that the user can receive sms messages on example: "11235555555" nullable: true pattern: ^\+[1-9]\d{1,14}$ type: string mfaType: $ref: '#/components/schemas/MFAType' verificationCode: description: |

Optional property that MUST be suppied when manually verifying a user

The user's smsNumber is registered via a separate endpoint and an OTP sent to them

example: "123456" maxLength: 6 minLength: 6 nullable: true type: string type: object RegisterSmsRequest: example: smsNumber: "11235555555" properties: smsNumber: description: | The phone number of a device that the user can receive sms messages on example: "11235555555" pattern: ^\+[1-9]\d{1,14}$ type: string required: - smsNumber type: object PayeeUserSelfUpdateRequest: description: |

All properties are optional

Only provided properties will be updated

Use null to null out a property that is allowed to be nullable

example: firstName: John lastName: Doe primaryContactNumber: "11235555555" smsNumber: "11235555555" secondaryContactNumber: "11235555550" email: foo@example.com properties: primaryContactNumber: description: | The main contact number for the user example: "11235555555" nullable: true pattern: ^\+[1-9]\d{1,14}$ type: string secondaryContactNumber: description: | The secondary contact number for the user example: "11235555550" nullable: true pattern: ^\+[1-9]\d{1,14}$ type: string firstName: example: John maxLength: 128 minLength: 1 nullable: true type: string lastName: example: Doe maxLength: 128 minLength: 1 nullable: true type: string email: description: the email address of the user example: foo@example.com format: email nullable: true type: string smsNumber: description: | The phone number of a device that the user can receive sms messages on example: "11235555555" nullable: true pattern: ^\+[1-9]\d{1,14}$ type: string type: object SelfMFATypeUnregisterRequest: example: mfaType: TOTP properties: mfaType: description: The type of the MFA device enum: - SMS - YUBIKEY - TOTP example: TOTP type: string required: - mfaType type: object SelfUpdatePasswordRequest: example: oldPassword: My_current_password newPassword: My_new_password properties: oldPassword: description: The user's current password example: My_current_password maxLength: 128 minLength: 8 type: string newPassword: description: The new password example: My_new_password maxLength: 128 minLength: 8 type: string required: - newPassword - oldPassword type: object PasswordRequest: example: password: My_strong_password properties: password: description: a password that passes validation example: My_strong_password maxLength: 128 minLength: 8 type: string required: - password type: object ValidatePasswordResponse: example: valid: true score: 2 warning: Historic Password suggestions: - '[password has been used before]' - '[password has been used before]' properties: score: description: | More secure passwords are given a higher score.

For a password to be acceptable for use in Velo, it must score at least 3 example: 2 format: int32 maximum: 4 minimum: 0 type: integer valid: description: if true then the password can be accepted type: boolean warning: description: Any warning message as a reason for the given score. example: Historic Password type: string suggestions: items: description: | Any suggested changes to password text which would make the password more secure example: '[password has been used before]' type: string type: array type: object PayorV1: example: primaryContactName: Joe Buck payeeGracePeriodProcessingEnabled: true supportContact: support@example.com address: country: US countyOrProvince: FL line4: line4 city: Key West line3: line3 line2: line2 line1: 500 Duval St zipOrPostcode: "33945" fundingAccountAccountName: Example Corp BOA includesReports: true allowsLanguageChoice: true language: EN fundingAccountAccountNumber: "1234567890123" dbaName: Some Biz primaryContactPhone: 123-123-1234 payeeGracePeriodDays: 0 fundingAccountRoutingNumber: "123456789" reminderEmailsOptOut: true maxMasterPayorAdmins: 6 transmissionTypes: ACH: true SAME_DAY_ACH: true WIRE: true manualLockout: true collectiveAlias: Payee payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 kycState: PASSED_KYC primaryContactEmail: joe.buck@example.com payorName: Example, Corp properties: payorId: format: uuid readOnly: true type: string payorName: description: The name of the payor. example: Example, Corp type: string address: $ref: '#/components/schemas/PayorAddress' primaryContactName: description: Name of primary contact for the payor. example: Joe Buck type: string primaryContactPhone: description: Primary contact phone number for the payor. example: 123-123-1234 type: string primaryContactEmail: description: Primary contact email for the payor. example: joe.buck@example.com format: email type: string fundingAccountRoutingNumber: description: The funding account routing number to be used for the payor. example: "123456789" type: string fundingAccountAccountNumber: description: The funding account number to be used for the payor. example: "1234567890123" type: string fundingAccountAccountName: description: The funding account name to be used for the payor. example: Example Corp BOA type: string kycState: $ref: '#/components/schemas/KycState' manualLockout: description: Whether or not the payor has been manually locked by the backoffice. type: boolean payeeGracePeriodProcessingEnabled: description: Whether grace period processing is enabled. readOnly: true type: boolean payeeGracePeriodDays: description: The grace period for paying payees in days. readOnly: true type: integer collectiveAlias: description: How the payor has chosen to refer to payees. example: Payee type: string supportContact: description: The payor’s support contact email address. example: support@example.com type: string dbaName: description: The payor’s 'Doing Business As' name. example: Some Biz type: string allowsLanguageChoice: description: Whether or not the payor allows language choice in the UI. type: boolean reminderEmailsOptOut: description: Whether or not the payor has opted-out of reminder emails being sent. readOnly: true type: boolean language: description: The payor’s language preference. Must be one of [EN, FR]. enum: - EN - FR example: EN type: string includesReports: type: boolean maxMasterPayorAdmins: type: integer transmissionTypes: $ref: '#/components/schemas/TransmissionTypes' required: - payorName type: object ErrorResponse: description: Error response returned by all error conditions in Velo Services properties: errors: description: one or more errors items: $ref: '#/components/schemas/Error' minItems: 1 type: array correlationId: description: a unique identifier to track a request or related sequence of requests example: ee53e01d-c078-43fd-abd4-47e92f4a06cf format: uuid type: string httpStatusCode: description: this will mirror the Status-Code part of the Status-Line http response header and is included for extra clarity example: 400 type: integer type: object PayorV2: example: primaryContactName: Joe Buck payeeGracePeriodProcessingEnabled: true supportContact: support@example.com payorXid: ABC_201234 includesReports: true managingPayees: true allowsLanguageChoice: true language: EN provider: provider maxMasterPayorAdmins: 6 transmissionTypes: ACH: true SAME_DAY_ACH: true WIRE: true manualLockout: true payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 primaryContactEmail: joe.buck@example.com usdTxnValueReportingThreshold: 1000000 payorName: Example, Corp address: country: US countyOrProvince: FL line4: line4 city: Key West line3: line3 line2: line2 line1: 500 Duval St zipOrPostcode: "33945" openBankingEnabled: true dbaName: Some Biz primaryContactPhone: 123-123-1234 payeeGracePeriodDays: 0 reminderEmailsOptOut: true collectiveAlias: Payee kycState: PASSED_KYC wuCustomerId: wuCustomerId remoteSystemIds: - REMOTE_SYSTEM_ID - REMOTE_SYSTEM_ID properties: payorId: format: uuid readOnly: true type: string payorName: description: The name of the payor. example: Example, Corp type: string payorXid: description: A unique identifier that an external system uses to reference the payor in their system example: ABC_201234 type: string provider: description: The source of the payorXid, default is null which means Velo type: string address: $ref: '#/components/schemas/PayorAddressV2' primaryContactName: description: Name of primary contact for the payor. example: Joe Buck type: string primaryContactPhone: description: Primary contact phone number for the payor. example: 123-123-1234 type: string primaryContactEmail: description: Primary contact email for the payor. example: joe.buck@example.com format: email type: string kycState: $ref: '#/components/schemas/KycState' manualLockout: description: Whether or not the payor has been manually locked by the backoffice. type: boolean openBankingEnabled: description: Is Open Banking supported for this payor type: boolean payeeGracePeriodProcessingEnabled: description: Whether grace period processing is enabled. readOnly: true type: boolean payeeGracePeriodDays: description: The grace period for paying payees in days. readOnly: true type: integer collectiveAlias: description: How the payor has chosen to refer to payees. example: Payee type: string supportContact: description: The payor’s support contact email address. example: support@example.com type: string dbaName: description: The payor’s 'Doing Business As' name. example: Some Biz type: string allowsLanguageChoice: description: Whether or not the payor allows language choice in the UI. type: boolean reminderEmailsOptOut: description: Whether or not the payor has opted-out of reminder emails being sent. readOnly: true type: boolean language: description: The payor’s language preference. Must be one of [EN, FR]. enum: - EN - FR example: EN type: string includesReports: type: boolean wuCustomerId: type: string maxMasterPayorAdmins: type: integer paymentRails: $ref: '#/components/schemas/PaymentRails' transmissionTypes: $ref: '#/components/schemas/TransmissionTypes_2' remoteSystemIds: description: The payor’s supported remote systems by id items: example: REMOTE_SYSTEM_ID type: string type: array usdTxnValueReportingThreshold: description: USD in minor units example: 1000000 type: integer managingPayees: type: boolean required: - payorId - payorName type: object PayorCreateApplicationRequest: example: name: SAP description: SAP Application integration properties: name: description: The name of the application. example: SAP maxLength: 100 minLength: 2 type: string description: description: Description of the application. example: SAP Application integration maxLength: 1024 minLength: 2 nullable: true type: string required: - name type: object PayorCreateApiKeyRequest: example: roles: - payor.admin name: iOS Key description: Key for iOS mobile application properties: name: description: A name for the key. example: iOS Key maxLength: 100 minLength: 2 type: string description: description: Description of the key. example: Key for iOS mobile application maxLength: 1024 minLength: 2 nullable: true type: string roles: description: |

A list of roles to assign to the key.

Only the first role name will be used

A later version will change this from a list to string

example: - payor.admin items: description: Name of role enum: - payor.admin - payor.support type: string maxItems: 10 minItems: 1 type: array required: - name - roles type: object PayorCreateApiKeyResponse: example: apiKey: 385d4506-e7dd-446e-a092-5f30b98e7b26 apiSecret: f25767d9-342a-48ac-a788-0a7a38ae6fb3 properties: apiKey: description: API Key example: 385d4506-e7dd-446e-a092-5f30b98e7b26 format: uuid type: string apiSecret: description: API Secret example: f25767d9-342a-48ac-a788-0a7a38ae6fb3 format: uuid type: string type: object PayorEmailOptOutRequest: example: reminderEmailsOptOut: true properties: reminderEmailsOptOut: type: boolean required: - reminderEmailsOptOut type: object PayorLogoRequest: properties: logo: format: binary type: string type: object PayorBrandingResponse: example: supportContact: support@example.com collectiveAlias: Payee dbaName: Key West Imports logoUrl: example.com payorName: Key West Imports, Inc properties: payorName: description: The name of the payor example: Key West Imports, Inc type: string logoUrl: description: The URL to use for this payor’s logo example: example.com format: uri type: string collectiveAlias: description: How the payor has chosen to refer to payees example: Payee nullable: true type: string supportContact: description: The payor’s support contact address example: support@example.com nullable: true type: string dbaName: description: The payor’s 'Doing Business As' name example: Key West Imports nullable: true type: string required: - logoUrl - payorName type: object PayorLinksResponse: description: List Payor Links Response Object example: payors: - payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 kycState: FAILED_KYC primaryContactEmail: primaryContactEmail payorName: payorName - payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 kycState: FAILED_KYC primaryContactEmail: primaryContactEmail payorName: payorName links: - toPayorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 fromPayorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkType: PARENT_OF - toPayorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 fromPayorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkType: PARENT_OF properties: links: items: $ref: '#/components/schemas/PayorLinksResponse_links' type: array payors: items: $ref: '#/components/schemas/PayorLinksResponse_payors' type: array type: object CreatePayorLinkRequest: example: toPayorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 fromPayorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkType: PARENT_OF properties: fromPayorId: format: uuid type: string linkType: enum: - PARENT_OF type: string toPayorId: format: uuid type: string required: - fromPayorId - linkType - toPayorId type: object PayeeDetailResponseV3: example: payorRefs: - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 watchlistOverrideComment: watchlist override comment country: US cellphoneNumber: "1234567890" displayName: Bob kycCompletedTimestamp: 2019-01-20T09:00:00+00:00 marketingOptInTimestamp: 2019-01-20T09:00:00+00:00 language: en-US watchlistOverrideExpiresAtTimestamp: 2019-01-20T09:00:00Z disabled: true company: taxId: "123123123" name: ABC Group Plc operatingName: ABC Co payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 pausePaymentTimestamp: 2019-01-20T09:00:00+00:00 email: bob@example.com acceptTermsAndConditionsTimestamp: 2019-01-20T09:00:00Z disabledUpdatedTimestamp: 2019-01-20T09:00:00Z address: country: US countyOrProvince: FL line4: line4 city: Key West line3: line3 line2: line2 line1: 500 Duval St zipOrPostcode: "33945" individual: name: firstName: Bob lastName: Smith otherNames: A title: Mr nationalIdentification: AB123456C dateOfBirth: 1985-01-01 created: 2019-01-20T09:00:00Z enhancedKycCompleted: true pausePayment: true gracePeriodEndDate: 2019-01-20T00:00:00.000+0000 marketingOptInDecision: true watchlistStatusUpdatedTimestamp: 2019-01-20T09:00:00+00:00 disabledComment: reason for disabled challenge: description: challenge description value: challenge test properties: payeeId: example: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 format: uuid readOnly: true type: string payorRefs: items: $ref: '#/components/schemas/PayeePayorRefV3' nullable: true readOnly: true type: array email: example: bob@example.com format: email nullable: true type: string onboardedStatus: $ref: '#/components/schemas/OnboardedStatusV3' watchlistStatus: $ref: '#/components/schemas/WatchlistStatusV3' watchlistOverrideExpiresAtTimestamp: example: 2019-01-20T09:00:00Z format: date-time nullable: true type: string watchlistOverrideComment: example: watchlist override comment type: string language: description: | An IETF BCP 47 language code which has been configured for use within this Velo environment.
See the /v1/supportedLanguages endpoint to list the available codes for an environment. example: en-US type: string created: example: 2019-01-20T09:00:00Z format: date-time type: string country: description: Valid ISO 3166 2 character country code. See the ISO specification for details. example: US maxLength: 2 minLength: 2 pattern: ^[A-Z]{2}$ title: ISO 3166 2 Character Country Code type: string displayName: example: Bob type: string payeeType: $ref: '#/components/schemas/PayeeType_2' disabled: type: boolean disabledComment: example: reason for disabled type: string disabledUpdatedTimestamp: example: 2019-01-20T09:00:00Z format: date-time type: string address: $ref: '#/components/schemas/PayeeAddressV3' individual: $ref: '#/components/schemas/IndividualV3' company: $ref: '#/components/schemas/CompanyV3' cellphoneNumber: example: "1234567890" type: string watchlistStatusUpdatedTimestamp: example: 2019-01-20T09:00:00+00:00 format: date_time nullable: true readOnly: true type: string gracePeriodEndDate: example: 2019-01-20 format: date nullable: true readOnly: true type: string enhancedKycCompleted: type: boolean kycCompletedTimestamp: example: 2019-01-20T09:00:00+00:00 format: date_time nullable: true type: string pausePayment: type: boolean pausePaymentTimestamp: example: 2019-01-20T09:00:00+00:00 format: date_time nullable: true type: string marketingOptInDecision: type: boolean marketingOptInTimestamp: example: 2019-01-20T09:00:00+00:00 format: date_time nullable: true type: string acceptTermsAndConditionsTimestamp: description: The timestamp when the payee last accepted T&Cs example: 2019-01-20T09:00:00Z format: date-time nullable: true readOnly: true type: string challenge: $ref: '#/components/schemas/ChallengeV3' type: object WatchlistStatusV3: enum: - NONE - PENDING - REVIEW - PASSED - FAILED type: string OnboardedStatusV4: enum: - CREATED - INVITED - REGISTERED - ONBOARDED type: string PayeeType_2: description: The type of the payee enum: - Individual - Company type: string PagedPayeeResponseV3: description: List Payees Response Object example: summary: totalOnboardedCount: 10 totalRegisteredCount: 10 totalPayeesCount: 10 totalInvitedCount: 10 totalWatchlistFailedCount: 0 links: - rel: rel href: href - rel: rel href: href page: numberOfElements: 10 totalPages: 10 pageSize: 10 page: 10 totalElements: 10 content: - payorRefs: - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 watchlistOverrideComment: Example reason for the watchlist status being overridden country: US disabledUpdatedTimestamp: 2019-01-20T09:00:00Z individual: name: firstName: Bob lastName: Smith otherNames: H title: Mr created: 2019-01-20T09:00:00Z displayName: ABC language: en-US watchlistStatusUpdatedTimestamp: 2019-01-20T09:00:00+00:00 disabledComment: reason for disabled disabled: true company: name: ABC Group Plc operatingName: ABC Co payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 email: bob@example.com - payorRefs: - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 watchlistOverrideComment: Example reason for the watchlist status being overridden country: US disabledUpdatedTimestamp: 2019-01-20T09:00:00Z individual: name: firstName: Bob lastName: Smith otherNames: H title: Mr created: 2019-01-20T09:00:00Z displayName: ABC language: en-US watchlistStatusUpdatedTimestamp: 2019-01-20T09:00:00+00:00 disabledComment: reason for disabled disabled: true company: name: ABC Group Plc operatingName: ABC Co payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 email: bob@example.com properties: summary: $ref: '#/components/schemas/PagedPayeeResponseV3_summary' page: $ref: '#/components/schemas/PagedPayeeResponseV3_page' links: items: $ref: '#/components/schemas/PagedPayeeResponseV3_links' type: array content: items: $ref: '#/components/schemas/GetPayeeListResponseV3' type: array type: object CreatePayeesRequestV3: example: payees: - payorRefs: - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 address: country: US countyOrProvince: FL line4: line4 city: Key West line3: line3 line2: line2 line1: 500 Duval St zipOrPostcode: "33945" individual: name: firstName: Bob lastName: Smith otherNames: H title: Mr nationalIdentification: SA211123K dateOfBirth: 1970-05-20T00:00:00.000+0000 challenge: description: challenge description value: challenge test language: en-US company: taxId: "123123123" name: ABC Group Plc operatingName: ABC Co payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 email: bob@example.com remoteId: Remote ID paymentChannel: paymentChannelName: My Payment Channel routingNumber: XXXXX6789 accountName: My account countryCode: US iban: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1234 currency: USD accountNumber: XXXXXX5678 - payorRefs: - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 address: country: US countyOrProvince: FL line4: line4 city: Key West line3: line3 line2: line2 line1: 500 Duval St zipOrPostcode: "33945" individual: name: firstName: Bob lastName: Smith otherNames: H title: Mr nationalIdentification: SA211123K dateOfBirth: 1970-05-20T00:00:00.000+0000 challenge: description: challenge description value: challenge test language: en-US company: taxId: "123123123" name: ABC Group Plc operatingName: ABC Co payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 email: bob@example.com remoteId: Remote ID paymentChannel: paymentChannelName: My Payment Channel routingNumber: XXXXX6789 accountName: My account countryCode: US iban: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1234 currency: USD accountNumber: XXXXXX5678 payorId: 9ac75325-5dcd-42d5-b992-175d7e0a035e properties: payorId: example: 9ac75325-5dcd-42d5-b992-175d7e0a035e type: string payees: items: $ref: '#/components/schemas/CreatePayeeV3' type: array required: - payees - payorId type: object CreatePayeesCSVRequestV3: properties: type: $ref: '#/components/schemas/PayeeType_2' remoteId: example: remoteId123 maxLength: 100 minLength: 1 type: string email: example: bob@example.com format: email maxLength: 255 minLength: 3 type: string addressLine1: example: 500 Duval St maxLength: 100 minLength: 2 type: string addressLine2: maxLength: 100 minLength: 0 type: string addressLine3: maxLength: 100 minLength: 0 type: string addressLine4: maxLength: 100 minLength: 0 type: string addressCity: example: Key West maxLength: 50 minLength: 2 type: string addressCountyOrProvince: example: FL maxLength: 50 minLength: 1 type: string addressZipOrPostcode: example: "33945" maxLength: 60 minLength: 1 type: string addressCountry: description: Valid ISO 3166 2 character country code. See the ISO specification for details. example: US maxLength: 2 minLength: 2 pattern: ^[A-Z]{2}$ title: ISO 3166 2 Character Country Code type: string individualNationalIdentification: example: AB123456C maxLength: 30 minLength: 6 type: string individualDateOfBirth: description: Must not be date in future. Example - 1970-05-20 example: 1985-01-01 format: date type: string individualTitle: example: Mr maxLength: 40 minLength: 1 type: string individualFirstName: maxLength: 40 minLength: 1 type: string individualOtherNames: example: Bob maxLength: 40 minLength: 1 type: string individualLastName: example: Smith maxLength: 40 minLength: 1 type: string companyName: example: ABC Ltd maxLength: 40 minLength: 1 type: string companyEIN: example: "123456789" maxLength: 30 minLength: 6 type: string companyOperatingName: example: ABC maxLength: 100 minLength: 1 type: string paymentChannelAccountNumber: description: Either routing number and account number or only iban must be set example: XXXXXX5678 maxLength: 17 minLength: 6 type: string paymentChannelRoutingNumber: description: Either routing number and account number or only iban must be set example: XXXXX6789 maxLength: 9 minLength: 9 type: string paymentChannelAccountName: example: My Account type: string paymentChannelIban: description: Must match the regular expression ```^[A-Za-z0-9]+$```. example: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1234 maxLength: 34 minLength: 15 pattern: ^[A-Za-z0-9]+$ title: IBAN - International Bank Account Number type: string paymentChannelCountryCode: description: Valid ISO 3166 2 character country code. See the ISO specification for details. example: US maxLength: 2 minLength: 2 pattern: ^[A-Z]{2}$ title: ISO 3166 2 Character Country Code type: string paymentChannelCurrency: enum: - USD - GBP - EUR type: string challengeDescription: example: challenge description maxLength: 255 minLength: 1 type: string challengeValue: example: challenge value maxLength: 20 minLength: 3 type: string payeeLanguage: description: | An IETF BCP 47 language code which has been configured for use within this Velo environment.
See the /v1/supportedLanguages endpoint to list the available codes for an environment. example: en-US type: string required: - addressCity - addressCountry - addressLine1 - addressZipOrPostcode - email - remoteId - type type: object CreatePayeesCSVResponseV3: example: batchId: cb6ff8c6-85e9-45a6-b7d9-d05305db67f3 rejectedCsvRows: - rejectedContent: unable,to,process,csv,line lineNumber: 3 message: rejected message 1 - rejectedContent: unable,to,process,csv,line lineNumber: 3 message: rejected message 1 properties: batchId: example: cb6ff8c6-85e9-45a6-b7d9-d05305db67f3 format: uuid type: string rejectedCsvRows: items: $ref: '#/components/schemas/CreatePayeesCSVResponseV3_rejectedCsvRows' type: array type: object QueryBatchResponseV3: example: failures: - failedSubmission: payorRefs: - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 address: country: US countyOrProvince: FL line4: line4 city: Key West line3: line3 line2: line2 line1: 500 Duval St zipOrPostcode: "33945" individual: name: firstName: Bob lastName: Smith otherNames: H title: Mr nationalIdentification: SA211123K dateOfBirth: 1970-05-20T00:00:00.000+0000 challenge: description: challenge description value: challenge test language: en-US company: taxId: "123123123" name: ABC Group Plc operatingName: ABC Co payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 email: bob@example.com remoteId: Remote ID paymentChannel: paymentChannelName: My Payment Channel routingNumber: XXXXX6789 accountName: My account countryCode: US iban: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1234 currency: USD accountNumber: XXXXXX5678 failureMessage: failure reason - failedSubmission: payorRefs: - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 address: country: US countyOrProvince: FL line4: line4 city: Key West line3: line3 line2: line2 line1: 500 Duval St zipOrPostcode: "33945" individual: name: firstName: Bob lastName: Smith otherNames: H title: Mr nationalIdentification: SA211123K dateOfBirth: 1970-05-20T00:00:00.000+0000 challenge: description: challenge description value: challenge test language: en-US company: taxId: "123123123" name: ABC Group Plc operatingName: ABC Co payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 email: bob@example.com remoteId: Remote ID paymentChannel: paymentChannelName: My Payment Channel routingNumber: XXXXX6789 accountName: My account countryCode: US iban: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1234 currency: USD accountNumber: XXXXXX5678 failureMessage: failure reason pendingCount: 2 failureCount: 2 status: SUBMITTED properties: status: description: Batch Status enum: - SUBMITTED - ACCEPTED type: string failureCount: example: 2 format: int64 type: integer pendingCount: example: 2 format: int64 type: integer failures: items: $ref: '#/components/schemas/FailedSubmissionV3' type: array type: object InvitePayeeRequestV3: example: payorId: 9ac75325-5dcd-42d5-b992-175d7e0a035e properties: payorId: example: 9ac75325-5dcd-42d5-b992-175d7e0a035e format: uuid type: string required: - payorId type: object InvitationStatusV4: enum: - ACCEPTED - PENDING - DECLINED type: string PagedPayeeInvitationStatusResponseV3: description: List Payees Invitation Status Object example: links: - rel: rel href: href - rel: rel href: href page: numberOfElements: 0 totalPages: 1 pageSize: 5 page: 5 totalElements: 6 content: - payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 gracePeriodEndDate: 2019-01-20T00:00:00.000+0000 invitationStatus: ACCEPTED - payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 gracePeriodEndDate: 2019-01-20T00:00:00.000+0000 invitationStatus: ACCEPTED properties: page: $ref: '#/components/schemas/PagedPayeeInvitationStatusResponseV3_page' links: items: $ref: '#/components/schemas/PagedPayeeResponseV3_links' type: array content: items: $ref: '#/components/schemas/PayeeInvitationStatusResponseV3' type: array type: object PayeeDeltaResponseV3: description: List Payee Changes Response Object example: links: - rel: first href: http://api.sandbox.velopayments.com/v3/payees/deltas?payorId=0a818933-087d-47f2-ad83-2f986ed087eb&updatedSince=2019-01-20T09:00:00+00:00&page=1&pageSize=1000 - rel: first href: http://api.sandbox.velopayments.com/v3/payees/deltas?payorId=0a818933-087d-47f2-ad83-2f986ed087eb&updatedSince=2019-01-20T09:00:00+00:00&page=1&pageSize=1000 page: numberOfElements: 2 totalPages: 1 pageSize: 25 page: 1 totalElements: 2 content: - payeeCountry: US displayName: Payee1 payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 dbaName: Payee DBA Name email: payee1@example.com remoteId: payee_1 - payeeCountry: US displayName: Payee1 payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 dbaName: Payee DBA Name email: payee1@example.com remoteId: payee_1 properties: page: $ref: '#/components/schemas/PayeeDeltaResponseV3_page' links: items: $ref: '#/components/schemas/PayeeDeltaResponseV3_links' type: array content: items: $ref: '#/components/schemas/PayeeDeltaV3' type: array type: object UpdateRemoteIdRequestV3: example: payorId: 9ac75325-5dcd-42d5-b992-175d7e0a035e remoteId: remoteId123 properties: payorId: example: 9ac75325-5dcd-42d5-b992-175d7e0a035e format: uuid nullable: false type: string remoteId: example: remoteId123 maxLength: 100 minLength: 1 nullable: false type: string required: - payorId - remoteId type: object UpdatePayeeDetailsRequestV3: example: address: country: US countyOrProvince: FL line4: line4 city: Key West line3: line3 line2: line2 line1: 500 Duval St zipOrPostcode: "33945" individual: name: firstName: Bob lastName: Smith otherNames: A title: Mr nationalIdentification: AB123456C dateOfBirth: 1985-01-01 challenge: description: challenge description value: challenge test company: taxId: "123123123" name: ABC Group Plc operatingName: ABC Co language: en-US email: bob@example.com properties: address: $ref: '#/components/schemas/PayeeAddressV3' individual: $ref: '#/components/schemas/IndividualV3' company: $ref: '#/components/schemas/CompanyV3' language: description: | An IETF BCP 47 language code which has been configured for use within this Velo environment.
See the /v1/supportedLanguages endpoint to list the available codes for an environment. example: en-US type: string payeeType: $ref: '#/components/schemas/PayeeType_2' challenge: $ref: '#/components/schemas/ChallengeV3' email: example: bob@example.com format: email nullable: true type: string type: object PayeeDetailResponseV4: example: payorRefs: - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 watchlistOverrideComment: watchlist override comment country: US cellphoneNumber: "1234567890" displayName: Bob kycCompletedTimestamp: 2019-01-20T09:00:00+00:00 marketingOptInTimestamp: 2019-01-20T09:00:00+00:00 language: en-US watchlistOverrideExpiresAtTimestamp: 2019-01-20T09:00:00Z disabled: true company: taxId: "123123123" name: ABC Group Plc operatingName: ABC Co payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 pausePaymentTimestamp: 2019-01-20T09:00:00+00:00 email: bob@example.com acceptTermsAndConditionsTimestamp: 2019-01-20T09:00:00Z disabledUpdatedTimestamp: 2019-01-20T09:00:00Z address: country: US countyOrProvince: FL line4: line4 city: Key West line3: line3 line2: line2 line1: 500 Duval St zipOrPostcode: "33945" individual: name: firstName: Bob lastName: Smith otherNames: A title: Mr nationalIdentification: AB123456C dateOfBirth: 1985-01-01 created: 2019-01-20T09:00:00Z enhancedKycCompleted: true pausePayment: true gracePeriodEndDate: 2019-01-20T00:00:00.000+0000 marketingOptInDecision: true watchlistStatusUpdatedTimestamp: 2019-01-20T09:00:00+00:00 disabledComment: reason for disabled challenge: description: challenge description value: "11984567" properties: payeeId: example: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 format: uuid readOnly: true type: string payorRefs: items: $ref: '#/components/schemas/PayeePayorRefV4' nullable: true readOnly: true type: array email: example: bob@example.com format: email nullable: true type: string onboardedStatus: $ref: '#/components/schemas/OnboardedStatusV4' watchlistStatus: $ref: '#/components/schemas/WatchlistStatusV4' watchlistOverrideExpiresAtTimestamp: example: 2019-01-20T09:00:00Z format: date-time nullable: true type: string watchlistOverrideComment: example: watchlist override comment type: string language: description: | An IETF BCP 47 language code which has been configured for use within this Velo environment.
See the /v1/supportedLanguages endpoint to list the available codes for an environment. example: en-US type: string created: example: 2019-01-20T09:00:00Z format: date-time type: string country: example: US type: string displayName: example: Bob type: string payeeType: $ref: '#/components/schemas/PayeeType_2' disabled: type: boolean disabledComment: example: reason for disabled type: string disabledUpdatedTimestamp: example: 2019-01-20T09:00:00Z format: date-time type: string address: $ref: '#/components/schemas/PayeeAddressV4' individual: $ref: '#/components/schemas/IndividualV4' company: $ref: '#/components/schemas/CompanyV4' cellphoneNumber: example: "1234567890" type: string watchlistStatusUpdatedTimestamp: example: 2019-01-20T09:00:00+00:00 format: date_time nullable: true readOnly: true type: string gracePeriodEndDate: example: 2019-01-20 format: date nullable: true readOnly: true type: string enhancedKycCompleted: type: boolean kycCompletedTimestamp: example: 2019-01-20T09:00:00+00:00 format: date_time nullable: true type: string pausePayment: type: boolean pausePaymentTimestamp: example: 2019-01-20T09:00:00+00:00 format: date_time nullable: true type: string marketingOptInDecision: type: boolean marketingOptInTimestamp: example: 2019-01-20T09:00:00+00:00 format: date_time nullable: true type: string acceptTermsAndConditionsTimestamp: description: The timestamp when the payee last accepted T&Cs example: 2019-01-20T09:00:00Z format: date-time nullable: true readOnly: true type: string challenge: $ref: '#/components/schemas/ChallengeV4' type: object UpdatePayeeDetailsRequestV4: example: address: country: US countyOrProvince: FL line4: line4 city: Key West line3: line3 line2: line2 line1: 500 Duval St zipOrPostcode: "33945" individual: name: firstName: Bob lastName: Smith otherNames: A title: Mr nationalIdentification: AB123456C dateOfBirth: 1985-01-01 challenge: description: challenge description value: "11984567" company: taxId: "123123123" name: ABC Group Plc operatingName: ABC Co language: en-US contactSmsNumber: "11235555555" email: bob@example.com properties: address: $ref: '#/components/schemas/PayeeAddressV4' individual: $ref: '#/components/schemas/IndividualV4' company: $ref: '#/components/schemas/CompanyV4' language: description: | An IETF BCP 47 language code which has been configured for use within this Velo environment.
See the /v1/supportedLanguages endpoint to list the available codes for an environment. example: en-US type: string payeeType: $ref: '#/components/schemas/PayeeType_2' challenge: $ref: '#/components/schemas/ChallengeV4' email: example: bob@example.com format: email nullable: true type: string contactSmsNumber: description: | The phone number of a device that the payee wishes to receive sms messages on example: "11235555555" pattern: ^\+[1-9]\d{1,14}$ type: string type: object UpdateRemoteIdRequestV4: example: payorId: 9ac75325-5dcd-42d5-b992-175d7e0a035e remoteId: remoteId123 properties: payorId: example: 9ac75325-5dcd-42d5-b992-175d7e0a035e format: uuid nullable: false type: string remoteId: example: remoteId123 maxLength: 100 minLength: 1 nullable: false type: string required: - payorId - remoteId type: object OfacStatusV4: enum: - PENDING - PASSED - FAILED type: string PagedPayeeResponseV4: description: List Payees Response Object example: summary: totalOnboardedCount: 10 totalRegisteredCount: 10 totalPayeesCount: 10 totalInvitedCount: 10 totalWatchlistFailedCount: 0 links: - rel: rel href: href - rel: rel href: href page: numberOfElements: 10 totalPages: 10 pageSize: 10 page: 10 totalElements: 10 content: - payorRefs: - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 watchlistOverrideComment: Example reason for the watchlist status being overridden country: US disabledUpdatedTimestamp: 2019-01-20T09:00:00Z individual: name: firstName: Bob lastName: Smith otherNames: H title: Mr created: 2019-01-20T09:00:00Z displayName: ABC language: en-US watchlistStatusUpdatedTimestamp: 2019-01-20T09:00:00+00:00 disabledComment: reason for disabled disabled: true company: name: ABC Group Plc operatingName: ABC Co payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 email: bob@example.com - payorRefs: - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 watchlistOverrideComment: Example reason for the watchlist status being overridden country: US disabledUpdatedTimestamp: 2019-01-20T09:00:00Z individual: name: firstName: Bob lastName: Smith otherNames: H title: Mr created: 2019-01-20T09:00:00Z displayName: ABC language: en-US watchlistStatusUpdatedTimestamp: 2019-01-20T09:00:00+00:00 disabledComment: reason for disabled disabled: true company: name: ABC Group Plc operatingName: ABC Co payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 email: bob@example.com properties: summary: $ref: '#/components/schemas/PagedPayeeResponseV3_summary' page: $ref: '#/components/schemas/PagedPayeeResponseV3_page' links: items: $ref: '#/components/schemas/PagedPayeeResponseV3_links' type: array content: items: $ref: '#/components/schemas/GetPayeeListResponseV4' type: array type: object CreatePayeesRequestV4: example: payees: - payorRefs: - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 address: country: US countyOrProvince: FL line4: line4 city: Key West line3: line3 line2: line2 line1: 500 Duval St zipOrPostcode: "33945" individual: name: firstName: Bob lastName: Smith otherNames: H title: Mr nationalIdentification: SA211123K dateOfBirth: 1970-05-20T00:00:00.000+0000 challenge: description: challenge description value: "11984567" language: en-US company: taxId: "123123123" name: ABC Group Plc operatingName: ABC Co payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 email: bob@example.com remoteId: Remote ID paymentChannel: paymentChannelName: My Payment Channel routingNumber: XXXXX6789 accountName: My account countryCode: US iban: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1234 currency: USD accountNumber: XXXXXX5678 - payorRefs: - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 address: country: US countyOrProvince: FL line4: line4 city: Key West line3: line3 line2: line2 line1: 500 Duval St zipOrPostcode: "33945" individual: name: firstName: Bob lastName: Smith otherNames: H title: Mr nationalIdentification: SA211123K dateOfBirth: 1970-05-20T00:00:00.000+0000 challenge: description: challenge description value: "11984567" language: en-US company: taxId: "123123123" name: ABC Group Plc operatingName: ABC Co payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 email: bob@example.com remoteId: Remote ID paymentChannel: paymentChannelName: My Payment Channel routingNumber: XXXXX6789 accountName: My account countryCode: US iban: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1234 currency: USD accountNumber: XXXXXX5678 payorId: 9ac75325-5dcd-42d5-b992-175d7e0a035e properties: payorId: example: 9ac75325-5dcd-42d5-b992-175d7e0a035e type: string payees: items: $ref: '#/components/schemas/CreatePayeeV4' type: array required: - payees - payorId type: object CreatePayeesCSVRequestV4: properties: type: $ref: '#/components/schemas/PayeeType_2' remoteId: example: remoteId123 maxLength: 100 minLength: 1 type: string email: example: bob@example.com format: email maxLength: 255 minLength: 3 type: string addressLine1: example: 500 Duval St maxLength: 100 minLength: 2 type: string addressLine2: maxLength: 100 minLength: 0 type: string addressLine3: maxLength: 100 minLength: 0 type: string addressLine4: maxLength: 100 minLength: 0 type: string addressCity: example: Key West maxLength: 50 minLength: 2 type: string addressCountyOrProvince: example: FL maxLength: 50 minLength: 1 type: string addressZipOrPostcode: example: "33945" maxLength: 60 minLength: 1 type: string addressCountry: description: Valid ISO 3166 2 character country code. See the ISO specification for details. example: US maxLength: 2 minLength: 2 pattern: ^[A-Z]{2}$ title: ISO 3166 2 Character Country Code type: string individualNationalIdentification: example: AB123456C maxLength: 30 minLength: 6 type: string individualDateOfBirth: description: Must not be date in future. Example - 1970-05-20 example: 1985-01-01 format: date type: string individualTitle: example: Mr maxLength: 40 minLength: 1 type: string individualFirstName: maxLength: 40 minLength: 1 type: string individualOtherNames: example: Bob maxLength: 40 minLength: 1 type: string individualLastName: example: Smith maxLength: 40 minLength: 1 type: string companyName: example: ABC Ltd maxLength: 40 minLength: 1 type: string companyEIN: example: "123456789" maxLength: 30 minLength: 6 type: string companyOperatingName: example: ABC maxLength: 100 minLength: 1 type: string paymentChannelAccountNumber: description: Either routing number and account number or only iban must be set example: XXXXXX5678 maxLength: 17 minLength: 6 type: string paymentChannelRoutingNumber: description: Either routing number and account number or only iban must be set example: XXXXX6789 maxLength: 9 minLength: 9 type: string paymentChannelAccountName: example: My Account type: string paymentChannelIban: description: Must match the regular expression ```^[A-Za-z0-9]+$```. example: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1234 maxLength: 34 minLength: 15 pattern: ^[A-Za-z0-9]+$ title: IBAN - International Bank Account Number type: string paymentChannelCountryCode: description: Valid ISO 3166 2 character country code. See the ISO specification for details. example: US maxLength: 2 minLength: 2 pattern: ^[A-Z]{2}$ title: ISO 3166 2 Character Country Code type: string paymentChannelCurrency: enum: - USD - GBP - EUR type: string challengeDescription: example: challenge description maxLength: 255 minLength: 1 type: string challengeValue: example: challenge value maxLength: 20 minLength: 3 type: string payeeLanguage: description: | An IETF BCP 47 language code which has been configured for use within this Velo environment.
See the /v1/supportedLanguages endpoint to list the available codes for an environment. example: en-US type: string required: - addressCity - addressCountry - addressLine1 - addressZipOrPostcode - email - remoteId - type type: object CreatePayeesCSVResponseV4: example: batchId: cb6ff8c6-85e9-45a6-b7d9-d05305db67f3 rejectedCsvRows: - rejectedContent: unable,to,process,csv,line lineNumber: 3 message: rejected message 1 - rejectedContent: unable,to,process,csv,line lineNumber: 3 message: rejected message 1 properties: batchId: example: cb6ff8c6-85e9-45a6-b7d9-d05305db67f3 format: uuid type: string rejectedCsvRows: items: $ref: '#/components/schemas/CreatePayeesCSVResponseV3_rejectedCsvRows' type: array type: object QueryBatchResponseV4: example: failures: - failedSubmission: payorRefs: - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 address: country: US countyOrProvince: FL line4: line4 city: Key West line3: line3 line2: line2 line1: 500 Duval St zipOrPostcode: "33945" individual: name: firstName: Bob lastName: Smith otherNames: H title: Mr nationalIdentification: SA211123K dateOfBirth: 1970-05-20T00:00:00.000+0000 challenge: description: challenge description value: "11984567" language: en-US company: taxId: "123123123" name: ABC Group Plc operatingName: ABC Co payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 email: bob@example.com remoteId: Remote ID paymentChannel: paymentChannelName: My Payment Channel routingNumber: XXXXX6789 accountName: My account countryCode: US iban: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1234 currency: USD accountNumber: XXXXXX5678 failureMessage: failure reason - failedSubmission: payorRefs: - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 address: country: US countyOrProvince: FL line4: line4 city: Key West line3: line3 line2: line2 line1: 500 Duval St zipOrPostcode: "33945" individual: name: firstName: Bob lastName: Smith otherNames: H title: Mr nationalIdentification: SA211123K dateOfBirth: 1970-05-20T00:00:00.000+0000 challenge: description: challenge description value: "11984567" language: en-US company: taxId: "123123123" name: ABC Group Plc operatingName: ABC Co payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 email: bob@example.com remoteId: Remote ID paymentChannel: paymentChannelName: My Payment Channel routingNumber: XXXXX6789 accountName: My account countryCode: US iban: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1234 currency: USD accountNumber: XXXXXX5678 failureMessage: failure reason pendingCount: 2 failureCount: 2 status: SUBMITTED properties: status: description: Batch Status enum: - SUBMITTED - ACCEPTED type: string failureCount: example: 2 format: int64 type: integer pendingCount: example: 2 format: int64 type: integer failures: items: $ref: '#/components/schemas/FailedSubmissionV4' type: array type: object InvitePayeeRequestV4: example: payorId: 9ac75325-5dcd-42d5-b992-175d7e0a035e properties: payorId: example: 9ac75325-5dcd-42d5-b992-175d7e0a035e format: uuid type: string required: - payorId type: object PagedPayeeInvitationStatusResponseV4: description: List Payees Invitation Status Object example: links: - rel: rel href: href - rel: rel href: href page: numberOfElements: 0 totalPages: 1 pageSize: 5 page: 5 totalElements: 6 content: - payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 gracePeriodEndDate: 2019-01-20T00:00:00.000+0000 invitationStatus: ACCEPTED - payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 gracePeriodEndDate: 2019-01-20T00:00:00.000+0000 invitationStatus: ACCEPTED properties: page: $ref: '#/components/schemas/PagedPayeeInvitationStatusResponseV3_page' links: items: $ref: '#/components/schemas/PagedPayeeResponseV3_links' type: array content: items: $ref: '#/components/schemas/PayeeInvitationStatusResponseV4' type: array type: object PayeeDeltaResponseV4: description: List Payee Changes Response Object example: links: - rel: first href: http://api.sandbox.velopayments.com/v4/payees/deltas?payorId=0a818933-087d-47f2-ad83-2f986ed087eb&updatedSince=2019-01-20T09:00:00+00:00&page=1&pageSize=1000 - rel: first href: http://api.sandbox.velopayments.com/v4/payees/deltas?payorId=0a818933-087d-47f2-ad83-2f986ed087eb&updatedSince=2019-01-20T09:00:00+00:00&page=1&pageSize=1000 page: numberOfElements: 2 totalPages: 1 pageSize: 25 page: 1 totalElements: 2 content: - payeeCountry: US displayName: Payee1 payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 dbaName: Payee DBA Name email: payee1@example.com remoteId: payee_1 - payeeCountry: US displayName: Payee1 payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 dbaName: Payee DBA Name email: payee1@example.com remoteId: payee_1 properties: page: $ref: '#/components/schemas/PayeeDeltaResponseV3_page' links: items: $ref: '#/components/schemas/PayeeDeltaResponseV4_links' type: array content: items: $ref: '#/components/schemas/PayeeDeltaV4' type: array type: object ListSourceAccountResponse: description: List Source Accounts Response Object example: links: - rel: first href: https://api.sandbox.velopayments.com/v1/sourceAccounts?payorId=a2967711-df07-41e5-b5ea-f563088911c6&page=1&pageSize=0&sort=fundingRef:asc - rel: first href: https://api.sandbox.velopayments.com/v1/sourceAccounts?payorId=a2967711-df07-41e5-b5ea-f563088911c6&page=1&pageSize=0&sort=fundingRef:asc page: numberOfElements: 1 totalPages: 2 pageSize: 25 page: 1 totalElements: 1 content: - physicalAccountName: VELO_FBO_MYBANKA_USD accountType: FBO fundingAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 fundingRef: a1b2c3d4 balance: 1203489 pooled: true name: MyAccountName customerId: Joe Customer physicalAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 currency: USD railsId: BOA_RAIL balanceVisible: true id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - physicalAccountName: VELO_FBO_MYBANKA_USD accountType: FBO fundingAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 fundingRef: a1b2c3d4 balance: 1203489 pooled: true name: MyAccountName customerId: Joe Customer physicalAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 currency: USD railsId: BOA_RAIL balanceVisible: true id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 properties: page: $ref: '#/components/schemas/ListSourceAccountResponse_page' links: items: $ref: '#/components/schemas/ListSourceAccountResponse_links' type: array content: items: $ref: '#/components/schemas/SourceAccountResponse' type: array type: object SourceAccountResponse: example: physicalAccountName: VELO_FBO_MYBANKA_USD accountType: FBO fundingAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 fundingRef: a1b2c3d4 balance: 1203489 pooled: true name: MyAccountName customerId: Joe Customer physicalAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 currency: USD railsId: BOA_RAIL balanceVisible: true id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 properties: id: description: Source Account Id format: uuid type: string balance: description: Decimal implied example: 1203489 format: int64 type: integer currency: enum: - USD example: USD maxLength: 3 minLength: 3 type: string fundingRef: example: a1b2c3d4 type: string physicalAccountName: example: VELO_FBO_MYBANKA_USD type: string railsId: example: BOA_RAIL type: string payorId: format: uuid type: string name: example: MyAccountName type: string pooled: type: boolean balanceVisible: type: boolean customerId: example: Joe Customer nullable: true type: string physicalAccountId: format: uuid type: string fundingAccountId: format: uuid nullable: true type: string accountType: example: FBO type: string type: object FundingRequestV1: example: amount: 800828191 properties: amount: description: Amount to fund, decimal implied format: int64 maximum: 9999999999 minimum: 1 type: integer required: - amount type: object SetNotificationsRequest: example: minimumBalance: 800828190 properties: minimumBalance: description: Amount to set as minimum balance in minor units format: int64 maximum: 9999999999 minimum: 0 type: integer required: - minimumBalance type: object FundingRequestV2: example: amount: 800828191 properties: amount: description: Amount to fund, decimal implied format: int64 maximum: 9999999999 minimum: 1 type: integer required: - amount type: object ListSourceAccountResponseV2: description: List Source Accounts Response Object example: links: - rel: first href: https://api.sandbox.velopayments.com/v2/sourceAccounts?payorId=a2967711-df07-41e5-b5ea-f563088911c6&page=1&pageSize=0&sort=fundingRef:asc - rel: first href: https://api.sandbox.velopayments.com/v2/sourceAccounts?payorId=a2967711-df07-41e5-b5ea-f563088911c6&page=1&pageSize=0&sort=fundingRef:asc page: numberOfElements: 12 totalPages: 2 pageSize: 25 page: 1 totalElements: 33 content: - physicalAccountName: VELO_FBO_MYBANKA_USD accountType: FBO fundingAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 fundingRef: a1b2c3d4 balance: 1203489 pooled: true name: MyAccountName customerId: Joe Customer physicalAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 autoTopUpConfig: targetBalance: 300000 minBalance: 10000 enabled: true currency: USD railsId: BOA_RAIL balanceVisible: true id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 notifications: minimumBalance: 120000 - physicalAccountName: VELO_FBO_MYBANKA_USD accountType: FBO fundingAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 fundingRef: a1b2c3d4 balance: 1203489 pooled: true name: MyAccountName customerId: Joe Customer physicalAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 autoTopUpConfig: targetBalance: 300000 minBalance: 10000 enabled: true currency: USD railsId: BOA_RAIL balanceVisible: true id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 notifications: minimumBalance: 120000 properties: page: $ref: '#/components/schemas/PagedUserResponse_page' links: items: $ref: '#/components/schemas/ListSourceAccountResponseV2_links' type: array content: items: $ref: '#/components/schemas/SourceAccountResponseV2' type: array type: object SourceAccountResponseV2: example: physicalAccountName: VELO_FBO_MYBANKA_USD accountType: FBO fundingAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 fundingRef: a1b2c3d4 balance: 1203489 pooled: true name: MyAccountName customerId: Joe Customer physicalAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 autoTopUpConfig: targetBalance: 300000 minBalance: 10000 enabled: true currency: USD railsId: BOA_RAIL balanceVisible: true id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 notifications: minimumBalance: 120000 properties: id: description: Source Account Id format: uuid type: string balance: description: Decimal implied example: 1203489 format: int64 type: integer currency: enum: - USD example: USD maxLength: 3 minLength: 3 type: string fundingRef: example: a1b2c3d4 type: string physicalAccountName: example: VELO_FBO_MYBANKA_USD type: string railsId: example: BOA_RAIL type: string payorId: format: uuid type: string name: example: MyAccountName type: string pooled: type: boolean balanceVisible: type: boolean customerId: example: Joe Customer nullable: true type: string physicalAccountId: format: uuid type: string notifications: $ref: '#/components/schemas/Notifications' fundingAccountId: format: uuid nullable: true type: string autoTopUpConfig: $ref: '#/components/schemas/AutoTopUpConfig' accountType: example: FBO type: string required: - accountType - balanceVisible - fundingRef - id - physicalAccountName - pooled - railsId type: object TransferRequest: example: amount: 800828191 currency: USD toSourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 properties: toSourceAccountId: description: The 'to' source account id, which will be credited format: uuid type: string amount: description: Amount to transfer, in minor units format: int64 maximum: 9999999999 minimum: 1 type: integer currency: example: USD maxLength: 3 minLength: 3 type: string required: - amount - currency - toSourceAccountId type: object ListFundingAccountsResponse: description: List Source Accounts Response Object example: links: - rel: first href: https://api.sandbox.velopayments.com/v1/sourceAccounts?payorId=a2967711-df07-41e5-b5ea-f563088911c6&page=1&pageSize=0&sort=fundingRef:asc - rel: first href: https://api.sandbox.velopayments.com/v1/sourceAccounts?payorId=a2967711-df07-41e5-b5ea-f563088911c6&page=1&pageSize=0&sort=fundingRef:asc page: numberOfElements: 1 totalPages: 2 pageSize: 25 page: 1 totalElements: 1 content: - routingNumber: 1.2345678E7 country: US accountName: Payor Corp name: My Funding Account sourceAccountIds: - 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - 046b6c7f-0b8a-43b9-b35d-6489e6daee91 currency: USD id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 accountNumber: "7001001234" type: FBO - routingNumber: 1.2345678E7 country: US accountName: Payor Corp name: My Funding Account sourceAccountIds: - 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - 046b6c7f-0b8a-43b9-b35d-6489e6daee91 currency: USD id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 accountNumber: "7001001234" type: FBO properties: page: $ref: '#/components/schemas/ListSourceAccountResponse_page' links: items: $ref: '#/components/schemas/ListSourceAccountResponse_links' type: array content: items: $ref: '#/components/schemas/FundingAccountResponse' type: array type: object FundingAccountResponse: example: routingNumber: 1.2345678E7 country: US accountName: Payor Corp name: My Funding Account sourceAccountIds: - 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - 046b6c7f-0b8a-43b9-b35d-6489e6daee91 currency: USD id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 accountNumber: "7001001234" type: FBO properties: id: description: Funding Account Id format: uuid type: string payorId: format: uuid type: string accountName: description: name on the bank account example: Payor Corp type: string accountNumber: description: bank account number example: "7001001234" type: string routingNumber: description: bank account routing number example: 1.2345678E7 type: string sourceAccountIds: items: format: uuid type: string type: array name: description: name of funding account example: My Funding Account type: string currency: description: ISO 4217 currency code example: USD maxLength: 3 minLength: 3 type: string country: description: ISO 3166-1 2 letter country code (upper case) example: US maxLength: 2 minLength: 2 type: string type: description: Funding account type example: FBO type: string type: object FundingAccountType: enum: - FBO - WUBS_DECOUPLED type: string ListFundingAccountsResponse_2: description: List Funding Accounts Response Object example: links: - rel: first href: https://api.sandbox.velopayments.com/v1/sourceAccounts?payorId=a2967711-df07-41e5-b5ea-f563088911c6&page=1&pageSize=0&sort=fundingRef:asc - rel: first href: https://api.sandbox.velopayments.com/v1/sourceAccounts?payorId=a2967711-df07-41e5-b5ea-f563088911c6&page=1&pageSize=0&sort=fundingRef:asc page: numberOfElements: 1 totalPages: 2 pageSize: 25 page: 1 totalElements: 1 content: - routingNumber: 1.2345678E7 country: US archived: true accountName: Payor Corp name: My Funding Account currency: USD id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 accountNumber: "7001001234" type: FBO - routingNumber: 1.2345678E7 country: US archived: true accountName: Payor Corp name: My Funding Account currency: USD id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 accountNumber: "7001001234" type: FBO properties: page: $ref: '#/components/schemas/ListSourceAccountResponse_page' links: items: $ref: '#/components/schemas/ListSourceAccountResponse_links' type: array content: items: $ref: '#/components/schemas/FundingAccountResponse_2' type: array type: object CreateFundingAccountRequestV2: example: routingNumber: routingNumber accountName: accountName name: name currency: USD payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 type: FBO accountNumber: accountNumber properties: type: enum: - FBO - WUBS_DECOUPLED type: string name: maxLength: 30 minLength: 3 type: string payorId: format: uuid type: string accountName: description: Required if type is FBO maxLength: 22 minLength: 1 type: string accountNumber: description: Required if type is FBO maxLength: 17 minLength: 4 type: string routingNumber: description: Required if type is FBO maxLength: 9 minLength: 9 type: string currency: description: ISO 4217 currency code, Required if type is WUBS_DECOUPLED example: USD maxLength: 3 minLength: 3 type: string required: - name - payorId - type type: object FundingAccountResponse_2: example: routingNumber: 1.2345678E7 country: US archived: true accountName: Payor Corp name: My Funding Account currency: USD id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 accountNumber: "7001001234" type: FBO properties: id: description: Funding Account Id format: uuid type: string payorId: format: uuid type: string accountName: description: name on the bank account example: Payor Corp type: string accountNumber: description: bank account number example: "7001001234" type: string routingNumber: description: bank account routing number example: 1.2345678E7 type: string name: description: name of funding account example: My Funding Account type: string currency: description: ISO 4217 currency code example: USD maxLength: 3 minLength: 3 type: string country: description: ISO 3166-1 2 letter country code (upper case) example: US maxLength: 2 minLength: 2 type: string type: description: Funding account type example: FBO type: string archived: description: A flag for whether the funding account has been archived. Only present in the response if true. type: boolean type: object FundingRequestV3: example: fundingAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 amount: 800828191 properties: fundingAccountId: description: The funding account id format: uuid type: string amount: description: Amount to fund in minor units format: int64 maximum: 9999999999 minimum: 1 type: integer required: - amount - fundingAccountId type: object SourceAccountType: enum: - FBO - WUBS_DECOUPLED type: string ListSourceAccountResponseV3: description: List Source Accounts Response Object example: links: - rel: first href: https://api.sandbox.velopayments.com/v3/sourceAccounts?payorId=a2967711-df07-41e5-b5ea-f563088911c6&page=1&pageSize=0&sort=fundingRef:asc - rel: first href: https://api.sandbox.velopayments.com/v3/sourceAccounts?payorId=a2967711-df07-41e5-b5ea-f563088911c6&page=1&pageSize=0&sort=fundingRef:asc page: numberOfElements: 12 totalPages: 2 pageSize: 25 page: 1 totalElements: 33 content: - physicalAccountName: VELO_FBO_MYBANKA_USD country: US userDeleted: true type: FBO deletedAt: 2021-01-27T10:08:25.701Z fundingRef: a1b2c3d4 deleted: true balance: 1203489 pooled: true name: MyAccountName customerId: Joe Customer physicalAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 autoTopUpConfig: targetBalance: 300000 fundingAccountId: 640ab1bd-8a6a-4603-a83a-1edbc3ed5689 minBalance: 10000 enabled: true currency: USD railsId: BOA_RAIL id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 notifications: minimumBalance: 120000 - physicalAccountName: VELO_FBO_MYBANKA_USD country: US userDeleted: true type: FBO deletedAt: 2021-01-27T10:08:25.701Z fundingRef: a1b2c3d4 deleted: true balance: 1203489 pooled: true name: MyAccountName customerId: Joe Customer physicalAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 autoTopUpConfig: targetBalance: 300000 fundingAccountId: 640ab1bd-8a6a-4603-a83a-1edbc3ed5689 minBalance: 10000 enabled: true currency: USD railsId: BOA_RAIL id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 notifications: minimumBalance: 120000 properties: page: $ref: '#/components/schemas/PagedUserResponse_page' links: items: $ref: '#/components/schemas/ListSourceAccountResponseV3_links' type: array content: items: $ref: '#/components/schemas/SourceAccountResponseV3' type: array type: object SourceAccountResponseV3: example: physicalAccountName: VELO_FBO_MYBANKA_USD country: US userDeleted: true type: FBO deletedAt: 2021-01-27T10:08:25.701Z fundingRef: a1b2c3d4 deleted: true balance: 1203489 pooled: true name: MyAccountName customerId: Joe Customer physicalAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 autoTopUpConfig: targetBalance: 300000 fundingAccountId: 640ab1bd-8a6a-4603-a83a-1edbc3ed5689 minBalance: 10000 enabled: true currency: USD railsId: BOA_RAIL id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 notifications: minimumBalance: 120000 properties: id: description: Source Account Id format: uuid type: string balance: description: Decimal implied example: 1203489 format: int64 type: integer currency: enum: - USD - EUR - GBP - CAD - HKD example: USD maxLength: 3 minLength: 3 type: string fundingRef: description: The funding reference (will not be set for DECOUPLED accounts). example: a1b2c3d4 type: string physicalAccountName: description: The physical account name (will not be set for DECOUPLED accounts). example: VELO_FBO_MYBANKA_USD type: string railsId: example: BOA_RAIL type: string payorId: format: uuid type: string name: example: MyAccountName type: string pooled: description: The pooled account flag (will not be set for DECOUPLED accounts). type: boolean customerId: example: Joe Customer nullable: true type: string physicalAccountId: description: The physical account id (will not be set for DECOUPLED accounts). format: uuid type: string notifications: $ref: '#/components/schemas/Notifications_2' autoTopUpConfig: $ref: '#/components/schemas/AutoTopUpConfig_2' type: example: FBO type: string country: description: The two character ISO country code for the associated account example: US maxLength: 2 minLength: 2 type: string deleted: description: An optional flag for whether the source account has been deleted. Only present in the response if true. type: boolean userDeleted: description: An optional flag for whether the source account has been deleted by a user. Only present in the response if true. type: boolean deletedAt: description: An optional timestamp when the source account has been deleted. Only present in the response if deleted. example: 2021-01-27T10:08:25.701Z format: date-time type: string required: - id - railsId - type type: object TransferRequest_2: properties: toSourceAccountId: description: The 'to' source account id, which will be credited format: uuid type: string amount: description: Amount to transfer, in minor units format: int64 maximum: 9999999999 minimum: 1 type: integer currency: example: USD maxLength: 3 minLength: 3 type: string required: - amount - currency - toSourceAccountId type: object PageResourceFundingPayorStatusAuditResponseFundingPayorStatusAuditResponse: example: links: - rel: rel href: href - rel: rel href: href page: numberOfElements: 0 totalPages: 1 pageSize: 5 page: 5 totalElements: 6 content: - amount: 2 fundingId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 currency: USD status: status - amount: 2 fundingId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 currency: USD status: status properties: links: items: $ref: '#/components/schemas/LinkForResponse' type: array xml: name: link namespace: http://www.w3.org/2005/Atom page: $ref: '#/components/schemas/PageForResponse' content: items: $ref: '#/components/schemas/FundingPayorStatusAuditResponse' type: array type: object GetFundingsResponse: description: List Users Response Object example: links: - rel: first href: https://api.sandbox.velopayments.com/v1/paymentaudit/fundings?payorId=2a5d8af2-a1ed-4d7f-b9a7-ebe4b333be5a&page=1&pageSize=10 - rel: first href: https://api.sandbox.velopayments.com/v1/paymentaudit/fundings?payorId=2a5d8af2-a1ed-4d7f-b9a7-ebe4b333be5a&page=1&pageSize=10 page: numberOfElements: 12 totalPages: 2 pageSize: 25 page: 1 totalElements: 33 content: - dateTime: 2000-01-23T04:56:07.000+00:00 fundingAccountName: fundingAccountName amount: 120000 fundingType: ACH currency: USD topupType: AUTOMATIC events: - principal: principal eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 - principal: principal eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 status: PENDING sourceAccountName: sourceAccountName - dateTime: 2000-01-23T04:56:07.000+00:00 fundingAccountName: fundingAccountName amount: 120000 fundingType: ACH currency: USD topupType: AUTOMATIC events: - principal: principal eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 - principal: principal eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 status: PENDING sourceAccountName: sourceAccountName properties: page: $ref: '#/components/schemas/PagedUserResponse_page' links: items: $ref: '#/components/schemas/GetFundingsResponse_links' type: array content: items: $ref: '#/components/schemas/FundingAudit' type: array type: object GetPayoutStatistics: example: thisMonthFailedPaymentsCount: 6 thisMonthPayoutsCount: 0 properties: thisMonthPayoutsCount: type: integer thisMonthFailedPaymentsCount: type: integer required: - thisMonthFailedPaymentsCount - thisMonthPayoutsCount type: object PaymentDeltaResponseV1: description: List Payment Changes Response Object example: links: - rel: rel href: href - rel: rel href: href page: numberOfElements: 0 totalPages: 1 pageSize: 5 page: 5 totalElements: 6 content: - paymentId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorPaymentId: payorPaymentId sourceCurrency: sourceCurrency sourceAmount: 6 payoutId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 paymentCurrency: paymentCurrency paymentAmount: 0 status: status - paymentId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorPaymentId: payorPaymentId sourceCurrency: sourceCurrency sourceAmount: 6 payoutId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 paymentCurrency: paymentCurrency paymentAmount: 0 status: status properties: page: $ref: '#/components/schemas/PagedPayeeInvitationStatusResponseV3_page' links: items: $ref: '#/components/schemas/PagedPayeeResponseV3_links' type: array content: items: $ref: '#/components/schemas/PaymentDeltaV1' type: array type: object GetPayoutsResponseV3: description: List Payouts Response example: links: - rel: first href: https://example.com - rel: first href: https://example.com page: numberOfElements: 12 totalPages: 123 pageSize: 25 page: 1 totalElements: 123 content: - sourceAccountSummary: - sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 3434 - sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 3434 submittedDateTime: submittedDateTime payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalIncompletePayments: 123 fxSummaries: - invertedRate: 1.12 rate: 1.12 totalPaymentAmount: 1234 quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 1234 fundingStatus: FUNDED creationDateTime: 2000-01-23T04:56:07.000+00:00 status: UNQUOTED - invertedRate: 1.12 rate: 1.12 totalPaymentAmount: 1234 quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 1234 fundingStatus: FUNDED creationDateTime: 2000-01-23T04:56:07.000+00:00 status: UNQUOTED payoutId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 withdrawnDateTime: withdrawnDateTime totalPayments: 123 instructedDateTime: instructedDateTime totalFailedPayments: 123 payoutMemo: payoutMemo - sourceAccountSummary: - sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 3434 - sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 3434 submittedDateTime: submittedDateTime payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalIncompletePayments: 123 fxSummaries: - invertedRate: 1.12 rate: 1.12 totalPaymentAmount: 1234 quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 1234 fundingStatus: FUNDED creationDateTime: 2000-01-23T04:56:07.000+00:00 status: UNQUOTED - invertedRate: 1.12 rate: 1.12 totalPaymentAmount: 1234 quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 1234 fundingStatus: FUNDED creationDateTime: 2000-01-23T04:56:07.000+00:00 status: UNQUOTED payoutId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 withdrawnDateTime: withdrawnDateTime totalPayments: 123 instructedDateTime: instructedDateTime totalFailedPayments: 123 payoutMemo: payoutMemo properties: page: $ref: '#/components/schemas/GetPayoutsResponseV3_page' links: items: $ref: '#/components/schemas/GetPayoutsResponseV3_links' type: array content: items: $ref: '#/components/schemas/PayoutSummaryAuditV3' type: array type: object GetPaymentsForPayoutResponseV3: description: List Payments for payout example: summary: incompletePayments: 123 confirmedPayments: 123 releasedPayments: 123 submittedDateTime: 2000-01-23T04:56:07.000+00:00 payoutStatus: ACCEPTED withdrawnDateTime: 2000-01-23T04:56:07.000+00:00 totalPayments: 123 instructedDateTime: 2000-01-23T04:56:07.000+00:00 payoutMemo: Payment Memo value failedPayments: 0 links: - rel: first href: https://example.com - rel: first href: https://example.com page: numberOfElements: 12 totalPages: 10 pageSize: 25 page: 1 totalElements: 12 content: - traceNumber: abodu123 accountName: My Account Name paymentMemo: Payment memo paymentAmount: 0 fundingStatus: FUNDED railsBatchId: railsBatchId paymentChannelName: My Payment Channel filenameReference: file ref rate: 6.0274563 paymentId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 countryCode: US returnReason: Some Reason Value submittedDateTime: 2000-01-23T04:56:07.000+00:00 sourceAmount: 12345 railsId: asdf123 payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 events: - principal: Prinicple example eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 routingNumber: "123123123" accountName: My account iban: DE89 3704 0044 0532 0130 00 sourceAmount: 1299 eventType: PAYOUT_SUBMITTED accountNumber: "123123123" paymentAmount: 1299 - principal: Prinicple example eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 routingNumber: "123123123" accountName: My account iban: DE89 3704 0044 0532 0130 00 sourceAmount: 1299 eventType: PAYOUT_SUBMITTED accountNumber: "123123123" paymentAmount: 1299 payorName: payorName sourceAccountName: My Account paymentChannelId: 123asdf invertedRate: 1.4658129 sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 individualIdentificationNumber: 1231231adf railsPaymentId: railsPaymentId accountNumber: "123123232323" quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 remoteId: aasdf123 routingNumber: "123123123123" returnCost: 1232 iban: DE89 3704 0044 0532 0130 00 payorPaymentId: 123123asdf rejectionReason: rejectionReason status: ACCEPTED - traceNumber: abodu123 accountName: My Account Name paymentMemo: Payment memo paymentAmount: 0 fundingStatus: FUNDED railsBatchId: railsBatchId paymentChannelName: My Payment Channel filenameReference: file ref rate: 6.0274563 paymentId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 countryCode: US returnReason: Some Reason Value submittedDateTime: 2000-01-23T04:56:07.000+00:00 sourceAmount: 12345 railsId: asdf123 payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 events: - principal: Prinicple example eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 routingNumber: "123123123" accountName: My account iban: DE89 3704 0044 0532 0130 00 sourceAmount: 1299 eventType: PAYOUT_SUBMITTED accountNumber: "123123123" paymentAmount: 1299 - principal: Prinicple example eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 routingNumber: "123123123" accountName: My account iban: DE89 3704 0044 0532 0130 00 sourceAmount: 1299 eventType: PAYOUT_SUBMITTED accountNumber: "123123123" paymentAmount: 1299 payorName: payorName sourceAccountName: My Account paymentChannelId: 123asdf invertedRate: 1.4658129 sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 individualIdentificationNumber: 1231231adf railsPaymentId: railsPaymentId accountNumber: "123123232323" quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 remoteId: aasdf123 routingNumber: "123123123123" returnCost: 1232 iban: DE89 3704 0044 0532 0130 00 payorPaymentId: 123123asdf rejectionReason: rejectionReason status: ACCEPTED properties: summary: $ref: '#/components/schemas/GetPaymentsForPayoutResponseV3_summary' page: $ref: '#/components/schemas/GetPaymentsForPayoutResponseV3_page' links: items: $ref: '#/components/schemas/GetPayoutsResponseV3_links' type: array content: items: $ref: '#/components/schemas/PaymentResponseV3' type: array type: object ListPaymentsResponseV3: description: List Payments Response Object example: links: - rel: first href: https://example.com - rel: first href: https://example.com page: numberOfElements: 12 totalPages: 12 pageSize: 25 page: 1 totalElements: 12 content: - traceNumber: abodu123 accountName: My Account Name paymentMemo: Payment memo paymentAmount: 0 fundingStatus: FUNDED railsBatchId: railsBatchId paymentChannelName: My Payment Channel filenameReference: file ref rate: 6.0274563 paymentId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 countryCode: US returnReason: Some Reason Value submittedDateTime: 2000-01-23T04:56:07.000+00:00 sourceAmount: 12345 railsId: asdf123 payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 events: - principal: Prinicple example eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 routingNumber: "123123123" accountName: My account iban: DE89 3704 0044 0532 0130 00 sourceAmount: 1299 eventType: PAYOUT_SUBMITTED accountNumber: "123123123" paymentAmount: 1299 - principal: Prinicple example eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 routingNumber: "123123123" accountName: My account iban: DE89 3704 0044 0532 0130 00 sourceAmount: 1299 eventType: PAYOUT_SUBMITTED accountNumber: "123123123" paymentAmount: 1299 payorName: payorName sourceAccountName: My Account paymentChannelId: 123asdf invertedRate: 1.4658129 sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 individualIdentificationNumber: 1231231adf railsPaymentId: railsPaymentId accountNumber: "123123232323" quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 remoteId: aasdf123 routingNumber: "123123123123" returnCost: 1232 iban: DE89 3704 0044 0532 0130 00 payorPaymentId: 123123asdf rejectionReason: rejectionReason status: ACCEPTED - traceNumber: abodu123 accountName: My Account Name paymentMemo: Payment memo paymentAmount: 0 fundingStatus: FUNDED railsBatchId: railsBatchId paymentChannelName: My Payment Channel filenameReference: file ref rate: 6.0274563 paymentId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 countryCode: US returnReason: Some Reason Value submittedDateTime: 2000-01-23T04:56:07.000+00:00 sourceAmount: 12345 railsId: asdf123 payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 events: - principal: Prinicple example eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 routingNumber: "123123123" accountName: My account iban: DE89 3704 0044 0532 0130 00 sourceAmount: 1299 eventType: PAYOUT_SUBMITTED accountNumber: "123123123" paymentAmount: 1299 - principal: Prinicple example eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 routingNumber: "123123123" accountName: My account iban: DE89 3704 0044 0532 0130 00 sourceAmount: 1299 eventType: PAYOUT_SUBMITTED accountNumber: "123123123" paymentAmount: 1299 payorName: payorName sourceAccountName: My Account paymentChannelId: 123asdf invertedRate: 1.4658129 sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 individualIdentificationNumber: 1231231adf railsPaymentId: railsPaymentId accountNumber: "123123232323" quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 remoteId: aasdf123 routingNumber: "123123123123" returnCost: 1232 iban: DE89 3704 0044 0532 0130 00 payorPaymentId: 123123asdf rejectionReason: rejectionReason status: ACCEPTED properties: page: $ref: '#/components/schemas/ListPaymentsResponseV3_page' links: items: $ref: '#/components/schemas/GetPayoutsResponseV3_links' type: array content: items: $ref: '#/components/schemas/PaymentResponseV3' type: array type: object PaymentResponseV3: example: traceNumber: abodu123 accountName: My Account Name paymentMemo: Payment memo paymentAmount: 0 fundingStatus: FUNDED railsBatchId: railsBatchId paymentChannelName: My Payment Channel filenameReference: file ref rate: 6.0274563 paymentId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 countryCode: US returnReason: Some Reason Value submittedDateTime: 2000-01-23T04:56:07.000+00:00 sourceAmount: 12345 railsId: asdf123 payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 events: - principal: Prinicple example eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 routingNumber: "123123123" accountName: My account iban: DE89 3704 0044 0532 0130 00 sourceAmount: 1299 eventType: PAYOUT_SUBMITTED accountNumber: "123123123" paymentAmount: 1299 - principal: Prinicple example eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 routingNumber: "123123123" accountName: My account iban: DE89 3704 0044 0532 0130 00 sourceAmount: 1299 eventType: PAYOUT_SUBMITTED accountNumber: "123123123" paymentAmount: 1299 payorName: payorName sourceAccountName: My Account paymentChannelId: 123asdf invertedRate: 1.4658129 sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 individualIdentificationNumber: 1231231adf railsPaymentId: railsPaymentId accountNumber: "123123232323" quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 remoteId: aasdf123 routingNumber: "123123123123" returnCost: 1232 iban: DE89 3704 0044 0532 0130 00 payorPaymentId: 123123asdf rejectionReason: rejectionReason status: ACCEPTED properties: paymentId: description: The id of the payment format: uuid type: string payeeId: description: The id of the paymeee format: uuid type: string payorId: description: The id of the payor format: uuid type: string payorName: description: The name of the payor type: string quoteId: description: The quote Id used for the FX format: uuid type: string sourceAccountId: description: The id of the source account from which the payment was taken format: uuid type: string sourceAccountName: description: The name of the source account from which the payment was taken example: My Account type: string remoteId: description: The remote id by which the payor refers to the payee. Only populated once payment is confirmed example: aasdf123 type: string sourceAmount: description: The source amount for the payment (amount debited to make the payment) example: 12345 type: integer sourceCurrency: $ref: '#/components/schemas/PaymentAuditCurrencyV3' paymentAmount: description: The amount which the payee will receive type: integer paymentCurrency: $ref: '#/components/schemas/PaymentAuditCurrencyV3' rate: description: The FX rate for the payment, if FX was involved. **Note** that (depending on the role of the caller) this information may not be displayed format: float type: number invertedRate: description: The inverted FX rate for the payment, if FX was involved. **Note** that (depending on the role of the caller) this information may not be displayed format: float type: number submittedDateTime: format: date-time type: string status: enum: - ACCEPTED - AWAITING_FUNDS - FUNDED - UNFUNDED - BANK_PAYMENT_REQUESTED - REJECTED - ACCEPTED_BY_RAILS - CONFIRMED - FAILED - WITHDRAWN type: string fundingStatus: description: The funding status of the payment enum: - FUNDED - INSTRUCTED - UNFUNDED type: string routingNumber: description: The routing number for the payment. example: "123123123123" type: string accountNumber: description: The account number for the account which will receive the payment. example: "123123232323" type: string iban: description: The iban for the payment. example: DE89 3704 0044 0532 0130 00 type: string paymentMemo: description: The payment memo set by the payor example: Payment memo type: string filenameReference: description: ACH file payment was submitted in, if applicable example: file ref type: string individualIdentificationNumber: description: Individual Identification Number assigned to the payment in the ACH file, if applicable example: 1231231adf type: string traceNumber: description: Trace Number assigned to the payment in the ACH file, if applicable example: abodu123 type: string payorPaymentId: example: 123123asdf type: string paymentChannelId: example: 123asdf type: string paymentChannelName: example: My Payment Channel type: string accountName: example: My Account Name type: string railsId: default: RAILS ID UNAVAILABLE description: The rails ID. Default value is RAILS ID UNAVAILABLE when not populated. example: asdf123 type: string countryCode: description: The country code of the payment channel. example: US type: string events: items: $ref: '#/components/schemas/PaymentEventResponseV3' type: array returnCost: description: The return cost if a returned payment. example: 1232 type: integer returnReason: example: Some Reason Value type: string railsPaymentId: type: string railsBatchId: type: string rejectionReason: type: string required: - events - fundingStatus - payeeId - paymentAmount - paymentId - payorId - quoteId - railsId - sourceAccountId - status - submittedDateTime type: object PayorAmlTransactionV3: example: debitCurrency: debitCurrency payeeType: payeeType fxApplied: 5.962133916683182 transactionTime: transactionTime paymentMemo: paymentMemo paymentAmount: 1 returnCode: returnCode rejectReason: rejectReason fundingType: fundingType paymentRails: paymentRails debit: 0 credit: 6 paymentStatus: paymentStatus sourceAccount: sourceAccount returnFeeDescription: returnFeeDescription returnDescription: returnDescription transactionDate: 2000-01-23 remoteId: remoteId returnFee: returnFee returnFeeCurrency: returnFeeCurrency dateFundingRequested: dateFundingRequested payorPaymentId: payorPaymentId creditCurrency: creditCurrency paymentCurrency: paymentCurrency reportTransactionType: reportTransactionType properties: transactionDate: format: date type: string transactionTime: type: string reportTransactionType: type: string debit: format: int64 type: integer debitCurrency: description: ISO 4217 3 character currency code type: string credit: format: int64 type: integer creditCurrency: description: ISO 4217 3 character currency code type: string returnFee: type: string returnFeeCurrency: description: ISO 4217 3 character currency code type: string returnFeeDescription: type: string returnCode: type: string returnDescription: type: string fundingType: type: string dateFundingRequested: type: string remoteId: description: Remote ID of the Payee, set by Payor type: string payeeType: type: string sourceAccount: type: string paymentAmount: format: int64 type: integer paymentCurrency: description: ISO 4217 3 character currency code type: string paymentMemo: type: string paymentRails: type: string payorPaymentId: type: string paymentStatus: type: string rejectReason: type: string fxApplied: format: double type: number type: object GetPayoutsResponse: description: List Payouts Response example: links: - rel: rel href: href - rel: rel href: href page: numberOfElements: 0 totalPages: 1 pageSize: 5 page: 5 totalElements: 6 content: - dateTime: 2000-01-23T04:56:07.000+00:00 sourceAccountSummary: - sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 3344 - sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 3344 totalReturnedPayments: 1 fxSummaries: - invertedRate: 123.23 rate: 123.23 totalPaymentAmount: 34235 quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 5 fundingStatus: FUNDED creationDateTime: 2000-01-23T04:56:07.000+00:00 status: UNQUOTED - invertedRate: 123.23 rate: 123.23 totalPaymentAmount: 34235 quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 5 fundingStatus: FUNDED creationDateTime: 2000-01-23T04:56:07.000+00:00 status: UNQUOTED payoutId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalPayments: 0 schedule: scheduledFor: 2000-01-23T04:56:07.000+00:00 scheduleStatus: SCHEDULED notificationsEnabled: true scheduledBy: Aphra Behn scheduledByPrincipalId: 8946953b-1e3b-49cf-9da4-b704cbb78f3e scheduledAt: 2000-01-23T04:56:07.000+00:00 submittedDateTime: submittedDateTime payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalIncompletePayments: 6 withdrawnDateTime: 2000-01-23T04:56:07.000+00:00 totalWithdrawnPayments: 5 instructedDateTime: instructedDateTime payoutMemo: payoutMemo payorName: payorName - dateTime: 2000-01-23T04:56:07.000+00:00 sourceAccountSummary: - sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 3344 - sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 3344 totalReturnedPayments: 1 fxSummaries: - invertedRate: 123.23 rate: 123.23 totalPaymentAmount: 34235 quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 5 fundingStatus: FUNDED creationDateTime: 2000-01-23T04:56:07.000+00:00 status: UNQUOTED - invertedRate: 123.23 rate: 123.23 totalPaymentAmount: 34235 quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 5 fundingStatus: FUNDED creationDateTime: 2000-01-23T04:56:07.000+00:00 status: UNQUOTED payoutId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalPayments: 0 schedule: scheduledFor: 2000-01-23T04:56:07.000+00:00 scheduleStatus: SCHEDULED notificationsEnabled: true scheduledBy: Aphra Behn scheduledByPrincipalId: 8946953b-1e3b-49cf-9da4-b704cbb78f3e scheduledAt: 2000-01-23T04:56:07.000+00:00 submittedDateTime: submittedDateTime payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalIncompletePayments: 6 withdrawnDateTime: 2000-01-23T04:56:07.000+00:00 totalWithdrawnPayments: 5 instructedDateTime: instructedDateTime payoutMemo: payoutMemo payorName: payorName properties: page: $ref: '#/components/schemas/PagedPayeeInvitationStatusResponseV3_page' links: items: $ref: '#/components/schemas/PagedPayeeResponseV3_links' type: array content: items: $ref: '#/components/schemas/PayoutSummaryAudit' type: array type: object GetPaymentsForPayoutResponseV4: description: List Payments for payout example: summary: withdrawnPayments: 2 submitting: principal: principal principalId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 dbaName: dbaName payorName: payorName confirmedPayments: 6 releasedPayments: 1 withdrawn: principal: principal principalId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalPayments: 0 payoutFrom: principal: principal principalId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 dbaName: dbaName payorName: payorName payoutTo: principal: principal principalId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 dbaName: dbaName payorName: payorName quoted: principal: principal principalId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 instructed: principal: principal principalId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 schedule: scheduledFor: 2000-01-23T04:56:07.000+00:00 scheduleStatus: SCHEDULED notificationsEnabled: true scheduledBy: Aphra Behn scheduledByPrincipalId: 8946953b-1e3b-49cf-9da4-b704cbb78f3e scheduledAt: 2000-01-23T04:56:07.000+00:00 incompletePayments: 5 submittedDateTime: 2000-01-23T04:56:07.000+00:00 quotedDateTime: 2000-01-23T04:56:07.000+00:00 withdrawnDateTime: 2000-01-23T04:56:07.000+00:00 returnedPayments: 5 instructedDateTime: 2000-01-23T04:56:07.000+00:00 payoutMemo: payoutMemo links: - rel: rel href: href - rel: rel href: href page: numberOfElements: 0 totalPages: 1 pageSize: 5 page: 5 totalElements: 6 content: - traceNumber: abodu123 accountName: My Account Name remoteSystemPaymentId: remoteSystemPaymentId payout: payoutId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payoutFrom: principal: principal principalId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 dbaName: dbaName payorName: payorName payoutTo: principal: principal principalId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 dbaName: dbaName payorName: payorName paymentMemo: Payment memo paymentAmount: 7 fundingStatus: FUNDED railsBatchId: railsBatchId paymentChannelName: My Payment Channel filenameReference: file ref rate: 9.301444243932576 paymentId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 countryCode: US returnReason: Some Reason Value withdrawable: true autoWithdrawnReasonCode: autoWithdrawnReasonCode isPaymentCcyBaseCcy: true submittedDateTime: 2000-01-23T04:56:07.000+00:00 sourceAmount: 12345 railsId: asdf123 transmissionType: transmissionType payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 events: - eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 accountName: accountName eventType: PAYOUT_SUBMITTED accountNumber: accountNumber paymentAmount: 1299 principal: principal routingNumber: routingNumber iban: iban scheduledFor: 2000-01-23T04:56:07.000+00:00 sourceAmount: 1299 scheduledBy: Aphra Behn scheduledAt: 2000-01-23T04:56:07.000+00:00 - eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 accountName: accountName eventType: PAYOUT_SUBMITTED accountNumber: accountNumber paymentAmount: 1299 principal: principal routingNumber: routingNumber iban: iban scheduledFor: 2000-01-23T04:56:07.000+00:00 sourceAmount: 1299 scheduledBy: Aphra Behn scheduledAt: 2000-01-23T04:56:07.000+00:00 payorName: payorName sourceAccountName: My Account paymentChannelId: 123asdf invertedRate: 3.616076749251911 sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 individualIdentificationNumber: 1231231adf railsPaymentId: railsPaymentId accountNumber: "123123232323" quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 remoteId: aasdf123 routingNumber: "123123123123" returnCost: 1232 schedule: scheduledFor: 2000-01-23T04:56:07.000+00:00 scheduleStatus: SCHEDULED notificationsEnabled: true scheduledBy: Aphra Behn scheduledByPrincipalId: 8946953b-1e3b-49cf-9da4-b704cbb78f3e scheduledAt: 2000-01-23T04:56:07.000+00:00 withdrawnReason: withdrawnReason iban: DE89 3704 0044 0532 0130 00 paymentMetadata: sample metadata payorPaymentId: 123123asdf remoteSystemId: REMOTE_SYSTEM_ID rejectionReason: rejectionReason paymentTrackingReference: paymentTrackingReference status: ACCEPTED - traceNumber: abodu123 accountName: My Account Name remoteSystemPaymentId: remoteSystemPaymentId payout: payoutId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payoutFrom: principal: principal principalId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 dbaName: dbaName payorName: payorName payoutTo: principal: principal principalId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 dbaName: dbaName payorName: payorName paymentMemo: Payment memo paymentAmount: 7 fundingStatus: FUNDED railsBatchId: railsBatchId paymentChannelName: My Payment Channel filenameReference: file ref rate: 9.301444243932576 paymentId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 countryCode: US returnReason: Some Reason Value withdrawable: true autoWithdrawnReasonCode: autoWithdrawnReasonCode isPaymentCcyBaseCcy: true submittedDateTime: 2000-01-23T04:56:07.000+00:00 sourceAmount: 12345 railsId: asdf123 transmissionType: transmissionType payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 events: - eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 accountName: accountName eventType: PAYOUT_SUBMITTED accountNumber: accountNumber paymentAmount: 1299 principal: principal routingNumber: routingNumber iban: iban scheduledFor: 2000-01-23T04:56:07.000+00:00 sourceAmount: 1299 scheduledBy: Aphra Behn scheduledAt: 2000-01-23T04:56:07.000+00:00 - eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 accountName: accountName eventType: PAYOUT_SUBMITTED accountNumber: accountNumber paymentAmount: 1299 principal: principal routingNumber: routingNumber iban: iban scheduledFor: 2000-01-23T04:56:07.000+00:00 sourceAmount: 1299 scheduledBy: Aphra Behn scheduledAt: 2000-01-23T04:56:07.000+00:00 payorName: payorName sourceAccountName: My Account paymentChannelId: 123asdf invertedRate: 3.616076749251911 sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 individualIdentificationNumber: 1231231adf railsPaymentId: railsPaymentId accountNumber: "123123232323" quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 remoteId: aasdf123 routingNumber: "123123123123" returnCost: 1232 schedule: scheduledFor: 2000-01-23T04:56:07.000+00:00 scheduleStatus: SCHEDULED notificationsEnabled: true scheduledBy: Aphra Behn scheduledByPrincipalId: 8946953b-1e3b-49cf-9da4-b704cbb78f3e scheduledAt: 2000-01-23T04:56:07.000+00:00 withdrawnReason: withdrawnReason iban: DE89 3704 0044 0532 0130 00 paymentMetadata: sample metadata payorPaymentId: 123123asdf remoteSystemId: REMOTE_SYSTEM_ID rejectionReason: rejectionReason paymentTrackingReference: paymentTrackingReference status: ACCEPTED properties: summary: $ref: '#/components/schemas/GetPaymentsForPayoutResponseV4_summary' page: $ref: '#/components/schemas/PagedPayeeInvitationStatusResponseV3_page' links: items: $ref: '#/components/schemas/PagedPayeeResponseV3_links' type: array content: items: $ref: '#/components/schemas/PaymentResponseV4' type: array type: object ListPaymentsResponseV4: description: List Payments Response Object example: links: - rel: first href: https://example.com - rel: first href: https://example.com page: numberOfElements: 12 totalPages: 12 pageSize: 25 page: 1 totalElements: 12 content: - traceNumber: abodu123 accountName: My Account Name remoteSystemPaymentId: remoteSystemPaymentId payout: payoutId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payoutFrom: principal: principal principalId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 dbaName: dbaName payorName: payorName payoutTo: principal: principal principalId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 dbaName: dbaName payorName: payorName paymentMemo: Payment memo paymentAmount: 7 fundingStatus: FUNDED railsBatchId: railsBatchId paymentChannelName: My Payment Channel filenameReference: file ref rate: 9.301444243932576 paymentId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 countryCode: US returnReason: Some Reason Value withdrawable: true autoWithdrawnReasonCode: autoWithdrawnReasonCode isPaymentCcyBaseCcy: true submittedDateTime: 2000-01-23T04:56:07.000+00:00 sourceAmount: 12345 railsId: asdf123 transmissionType: transmissionType payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 events: - eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 accountName: accountName eventType: PAYOUT_SUBMITTED accountNumber: accountNumber paymentAmount: 1299 principal: principal routingNumber: routingNumber iban: iban scheduledFor: 2000-01-23T04:56:07.000+00:00 sourceAmount: 1299 scheduledBy: Aphra Behn scheduledAt: 2000-01-23T04:56:07.000+00:00 - eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 accountName: accountName eventType: PAYOUT_SUBMITTED accountNumber: accountNumber paymentAmount: 1299 principal: principal routingNumber: routingNumber iban: iban scheduledFor: 2000-01-23T04:56:07.000+00:00 sourceAmount: 1299 scheduledBy: Aphra Behn scheduledAt: 2000-01-23T04:56:07.000+00:00 payorName: payorName sourceAccountName: My Account paymentChannelId: 123asdf invertedRate: 3.616076749251911 sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 individualIdentificationNumber: 1231231adf railsPaymentId: railsPaymentId accountNumber: "123123232323" quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 remoteId: aasdf123 routingNumber: "123123123123" returnCost: 1232 schedule: scheduledFor: 2000-01-23T04:56:07.000+00:00 scheduleStatus: SCHEDULED notificationsEnabled: true scheduledBy: Aphra Behn scheduledByPrincipalId: 8946953b-1e3b-49cf-9da4-b704cbb78f3e scheduledAt: 2000-01-23T04:56:07.000+00:00 withdrawnReason: withdrawnReason iban: DE89 3704 0044 0532 0130 00 paymentMetadata: sample metadata payorPaymentId: 123123asdf remoteSystemId: REMOTE_SYSTEM_ID rejectionReason: rejectionReason paymentTrackingReference: paymentTrackingReference status: ACCEPTED - traceNumber: abodu123 accountName: My Account Name remoteSystemPaymentId: remoteSystemPaymentId payout: payoutId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payoutFrom: principal: principal principalId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 dbaName: dbaName payorName: payorName payoutTo: principal: principal principalId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 dbaName: dbaName payorName: payorName paymentMemo: Payment memo paymentAmount: 7 fundingStatus: FUNDED railsBatchId: railsBatchId paymentChannelName: My Payment Channel filenameReference: file ref rate: 9.301444243932576 paymentId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 countryCode: US returnReason: Some Reason Value withdrawable: true autoWithdrawnReasonCode: autoWithdrawnReasonCode isPaymentCcyBaseCcy: true submittedDateTime: 2000-01-23T04:56:07.000+00:00 sourceAmount: 12345 railsId: asdf123 transmissionType: transmissionType payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 events: - eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 accountName: accountName eventType: PAYOUT_SUBMITTED accountNumber: accountNumber paymentAmount: 1299 principal: principal routingNumber: routingNumber iban: iban scheduledFor: 2000-01-23T04:56:07.000+00:00 sourceAmount: 1299 scheduledBy: Aphra Behn scheduledAt: 2000-01-23T04:56:07.000+00:00 - eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 accountName: accountName eventType: PAYOUT_SUBMITTED accountNumber: accountNumber paymentAmount: 1299 principal: principal routingNumber: routingNumber iban: iban scheduledFor: 2000-01-23T04:56:07.000+00:00 sourceAmount: 1299 scheduledBy: Aphra Behn scheduledAt: 2000-01-23T04:56:07.000+00:00 payorName: payorName sourceAccountName: My Account paymentChannelId: 123asdf invertedRate: 3.616076749251911 sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 individualIdentificationNumber: 1231231adf railsPaymentId: railsPaymentId accountNumber: "123123232323" quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 remoteId: aasdf123 routingNumber: "123123123123" returnCost: 1232 schedule: scheduledFor: 2000-01-23T04:56:07.000+00:00 scheduleStatus: SCHEDULED notificationsEnabled: true scheduledBy: Aphra Behn scheduledByPrincipalId: 8946953b-1e3b-49cf-9da4-b704cbb78f3e scheduledAt: 2000-01-23T04:56:07.000+00:00 withdrawnReason: withdrawnReason iban: DE89 3704 0044 0532 0130 00 paymentMetadata: sample metadata payorPaymentId: 123123asdf remoteSystemId: REMOTE_SYSTEM_ID rejectionReason: rejectionReason paymentTrackingReference: paymentTrackingReference status: ACCEPTED properties: page: $ref: '#/components/schemas/ListPaymentsResponseV3_page' links: items: $ref: '#/components/schemas/GetPayoutsResponseV3_links' type: array content: items: $ref: '#/components/schemas/PaymentResponseV4' type: array type: object PaymentResponseV4: example: traceNumber: abodu123 accountName: My Account Name remoteSystemPaymentId: remoteSystemPaymentId payout: payoutId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payoutFrom: principal: principal principalId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 dbaName: dbaName payorName: payorName payoutTo: principal: principal principalId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 dbaName: dbaName payorName: payorName paymentMemo: Payment memo paymentAmount: 7 fundingStatus: FUNDED railsBatchId: railsBatchId paymentChannelName: My Payment Channel filenameReference: file ref rate: 9.301444243932576 paymentId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 countryCode: US returnReason: Some Reason Value withdrawable: true autoWithdrawnReasonCode: autoWithdrawnReasonCode isPaymentCcyBaseCcy: true submittedDateTime: 2000-01-23T04:56:07.000+00:00 sourceAmount: 12345 railsId: asdf123 transmissionType: transmissionType payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 events: - eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 accountName: accountName eventType: PAYOUT_SUBMITTED accountNumber: accountNumber paymentAmount: 1299 principal: principal routingNumber: routingNumber iban: iban scheduledFor: 2000-01-23T04:56:07.000+00:00 sourceAmount: 1299 scheduledBy: Aphra Behn scheduledAt: 2000-01-23T04:56:07.000+00:00 - eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 accountName: accountName eventType: PAYOUT_SUBMITTED accountNumber: accountNumber paymentAmount: 1299 principal: principal routingNumber: routingNumber iban: iban scheduledFor: 2000-01-23T04:56:07.000+00:00 sourceAmount: 1299 scheduledBy: Aphra Behn scheduledAt: 2000-01-23T04:56:07.000+00:00 payorName: payorName sourceAccountName: My Account paymentChannelId: 123asdf invertedRate: 3.616076749251911 sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 individualIdentificationNumber: 1231231adf railsPaymentId: railsPaymentId accountNumber: "123123232323" quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 remoteId: aasdf123 routingNumber: "123123123123" returnCost: 1232 schedule: scheduledFor: 2000-01-23T04:56:07.000+00:00 scheduleStatus: SCHEDULED notificationsEnabled: true scheduledBy: Aphra Behn scheduledByPrincipalId: 8946953b-1e3b-49cf-9da4-b704cbb78f3e scheduledAt: 2000-01-23T04:56:07.000+00:00 withdrawnReason: withdrawnReason iban: DE89 3704 0044 0532 0130 00 paymentMetadata: sample metadata payorPaymentId: 123123asdf remoteSystemId: REMOTE_SYSTEM_ID rejectionReason: rejectionReason paymentTrackingReference: paymentTrackingReference status: ACCEPTED properties: paymentId: description: The id of the payment format: uuid type: string payeeId: description: The id of the paymeee format: uuid type: string payorId: description: The id of the payor format: uuid type: string payorName: description: The name of the payor type: string quoteId: description: The quote Id used for the FX format: uuid type: string sourceAccountId: description: The id of the source account from which the payment was taken format: uuid type: string sourceAccountName: description: The name of the source account from which the payment was taken example: My Account type: string remoteId: description: The remote id by which the payor refers to the payee. Only populated once payment is confirmed example: aasdf123 type: string remoteSystemId: description: The velo id of the remote system orchestrating the payment. Not populated for normal Velo payments. example: REMOTE_SYSTEM_ID type: string remoteSystemPaymentId: description: The id of the payment in the remote system. Not populated for normal Velo payments. type: string sourceAmount: description: The source amount for the payment (amount debited to make the payment) example: 12345 type: integer sourceCurrency: $ref: '#/components/schemas/PaymentAuditCurrency' paymentAmount: description: The amount which the payee will receive type: integer paymentCurrency: $ref: '#/components/schemas/PaymentAuditCurrency' rate: description: The FX rate for the payment, if FX was involved. **Note** that (depending on the role of the caller) this information may not be displayed format: double type: number invertedRate: description: The inverted FX rate for the payment, if FX was involved. **Note** that (depending on the role of the caller) this information may not be displayed format: double type: number isPaymentCcyBaseCcy: type: boolean submittedDateTime: format: date-time type: string status: enum: - ACCEPTED - AWAITING_FUNDS - FUNDED - UNFUNDED - BANK_PAYMENT_REQUESTED - REJECTED - ACCEPTED_BY_RAILS - CONFIRMED - RETURNED - WITHDRAWN type: string fundingStatus: description: The funding status of the payment enum: - FUNDED - INSTRUCTED - UNFUNDED type: string routingNumber: description: The routing number for the payment. example: "123123123123" type: string accountNumber: description: The account number for the account which will receive the payment. example: "123123232323" type: string iban: description: The iban for the payment. example: DE89 3704 0044 0532 0130 00 type: string paymentMemo: description: The payment memo set by the payor example: Payment memo type: string filenameReference: description: ACH file payment was submitted in, if applicable example: file ref type: string individualIdentificationNumber: description: Individual Identification Number assigned to the payment in the ACH file, if applicable example: 1231231adf type: string traceNumber: description: Trace Number assigned to the payment in the ACH file, if applicable example: abodu123 type: string payorPaymentId: example: 123123asdf type: string paymentChannelId: example: 123asdf type: string paymentChannelName: example: My Payment Channel type: string accountName: example: My Account Name type: string railsId: default: RAILS ID UNAVAILABLE description: The rails ID. Default value is RAILS ID UNAVAILABLE when not populated. example: asdf123 type: string countryCode: description: The country code of the payment channel. example: US type: string events: items: $ref: '#/components/schemas/PaymentEventResponse' type: array returnCost: description: The return cost if a returned payment. example: 1232 type: integer returnReason: example: Some Reason Value type: string railsPaymentId: type: string railsBatchId: type: string rejectionReason: type: string withdrawnReason: type: string withdrawable: type: boolean autoWithdrawnReasonCode: description: Populated with rejection reason code if the payment was withdrawn automatically at instruct time type: string transmissionType: description: The transmission type of the payment, e.g. ACH, SAME_DAY_ACH, WIRE type: string paymentTrackingReference: type: string paymentMetadata: description: Metadata for the payment example: sample metadata type: string schedule: $ref: '#/components/schemas/PayoutSchedule' payout: $ref: '#/components/schemas/PaymentResponseV4_payout' required: - events - fundingStatus - payeeId - paymentAmount - paymentId - payorId - quoteId - railsId - sourceAccountId - status - submittedDateTime type: object PaymentDeltaResponse: description: List Payment Changes Response Object example: links: - rel: rel href: href - rel: rel href: href page: numberOfElements: 0 totalPages: 1 pageSize: 5 page: 5 totalElements: 6 content: - paymentId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorPaymentId: payorPaymentId sourceCurrency: sourceCurrency sourceAmount: 6 payoutId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 paymentCurrency: paymentCurrency paymentAmount: 0 status: status - paymentId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorPaymentId: payorPaymentId sourceCurrency: sourceCurrency sourceAmount: 6 payoutId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 paymentCurrency: paymentCurrency paymentAmount: 0 status: status properties: page: $ref: '#/components/schemas/PagedPayeeInvitationStatusResponseV3_page' links: items: $ref: '#/components/schemas/PagedPayeeResponseV3_links' type: array content: items: $ref: '#/components/schemas/PaymentDelta' type: array type: object PayorAmlTransaction: properties: transactionDate: format: date type: string transactionTime: type: string reportTransactionType: type: string debit: format: int64 type: integer debitCurrency: description: ISO 4217 3 character currency code type: string credit: format: int64 type: integer creditCurrency: description: ISO 4217 3 character currency code type: string returnFee: type: string returnFeeCurrency: description: ISO 4217 3 character currency code type: string returnFeeDescription: type: string returnCode: type: string returnDescription: type: string fundingType: type: string dateFundingRequested: type: string payeeName: type: string remoteId: description: Remote ID of the Payee, set by Payor type: string payeeType: type: string payeeEmail: format: email type: string sourceAccount: type: string paymentAmount: format: int64 type: integer paymentCurrency: description: ISO 4217 3 character currency code type: string paymentMemo: type: string paymentRails: type: string payorPaymentId: type: string paymentStatus: type: string rejectReason: type: string fxApplied: format: double type: number type: object CreatePayoutRequestV3: example: payoutFromPayorId: c4261044-13df-4a6c-b1d4-fa8be2b46f5a payoutToPayorId: 9afc6b39-de12-466a-a9ca-07c7a23b312d payments: - amount: 1299 paymentMetadata: invoiceeId_123|abc001:12345|xyz002:4567 currency: USD payorPaymentId: 123211321ABSD transmissionType: ACH paymentMemo: my memo remoteSystemId: remoteSystemId remoteId: remoteId1234 sourceAccountName: MyAccountName - amount: 1299 paymentMetadata: invoiceeId_123|abc001:12345|xyz002:4567 currency: USD payorPaymentId: 123211321ABSD transmissionType: ACH paymentMemo: my memo remoteSystemId: remoteSystemId remoteId: remoteId1234 sourceAccountName: MyAccountName - amount: 1299 paymentMetadata: invoiceeId_123|abc001:12345|xyz002:4567 currency: USD payorPaymentId: 123211321ABSD transmissionType: ACH paymentMemo: my memo remoteSystemId: remoteSystemId remoteId: remoteId1234 sourceAccountName: MyAccountName - amount: 1299 paymentMetadata: invoiceeId_123|abc001:12345|xyz002:4567 currency: USD payorPaymentId: 123211321ABSD transmissionType: ACH paymentMemo: my memo remoteSystemId: remoteSystemId remoteId: remoteId1234 sourceAccountName: MyAccountName - amount: 1299 paymentMetadata: invoiceeId_123|abc001:12345|xyz002:4567 currency: USD payorPaymentId: 123211321ABSD transmissionType: ACH paymentMemo: my memo remoteSystemId: remoteSystemId remoteId: remoteId1234 sourceAccountName: MyAccountName payoutMemo: Monthly Payment properties: payoutFromPayorId: description: |

The id of the payor whose source account(s) will be debited

payoutFromPayorId and payoutToPayorId must be both supplied or both omitted

example: c4261044-13df-4a6c-b1d4-fa8be2b46f5a format: uuid type: string payoutToPayorId: description: |

The id of the payor whose payees will be paid

payoutFromPayorId and payoutToPayorId must be both supplied or both omitted

example: 9afc6b39-de12-466a-a9ca-07c7a23b312d format: uuid type: string payoutMemo: description: |

Text applied to all payment memos unless specified explicitly on a payment

This should be the reference field on the statement seen by the payee (but not via ACH)

example: Monthly Payment maxLength: 40 type: string payments: items: $ref: '#/components/schemas/PaymentInstructionV3' maxItems: 2000 minItems: 1 type: array required: - payments type: object PaymentInstructionV3: description: Instruction for creating a payment example: amount: 1299 paymentMetadata: invoiceeId_123|abc001:12345|xyz002:4567 currency: USD payorPaymentId: 123211321ABSD transmissionType: ACH paymentMemo: my memo remoteSystemId: remoteSystemId remoteId: remoteId1234 sourceAccountName: MyAccountName properties: remoteId: description: Your identifier for payee example: remoteId1234 maxLength: 100 minLength: 1 type: string currency: description: Valid ISO 4217 3 letter currency code. See the ISO specification for details. example: USD maxLength: 3 minLength: 3 pattern: ^[A-Z]{3}$ title: ISO Currency Code type: string amount: description: |

Amount to send to Payee

The maximum payment amount is dependent on the currency

example: 1299 format: int64 minimum: 1 type: integer paymentMemo: description: |

Any value here will override the memo value in the parent payout

This should be the reference field on the statement seen by the payee (but not via ACH)

example: my memo maxLength: 40 minLength: 0 type: string sourceAccountName: description: Must match a valid source account name belonging to the payor example: MyAccountName maxLength: 64 minLength: 1 type: string payorPaymentId: description: A reference identifier for the payor for the given payee payment example: 123211321ABSD maxLength: 40 minLength: 0 type: string transmissionType: $ref: '#/components/schemas/TransmissionType' remoteSystemId: description: |

The identifier for the remote payments system if not Velo

Should only be used after consultation with Velo Payments

maxLength: 100 minLength: 1 type: string paymentMetadata: description: |

Metadata about the payment that may be relevant to the specific rails or remote system making the payout

The structure of the data will be dictated by the requirements of the payment rails

example: invoiceeId_123|abc001:12345|xyz002:4567 maxLength: 512 minLength: 0 type: string required: - amount - currency - remoteId - sourceAccountName type: object PayoutSummaryResponseV3: example: rejectedPayments: - currencyType: USD reason: The payee has not been onboarded amount: 1234 paymentMetadata: invoiceeId_123|abc001:12345|xyz002:4567 payorPaymentId: paymenIdVal123123 reasonCode: PAYMENT_VALUE_TOO_HIGH remoteSystemId: Remote_System_Id_101234 lineNumber: 10 message: Payment cannot be processed because of the Payee's OFAC or Compliance Status remoteId: remoteIdVal123 sourceAccountName: Chase - currencyType: USD reason: The payee has not been onboarded amount: 1234 paymentMetadata: invoiceeId_123|abc001:12345|xyz002:4567 payorPaymentId: paymenIdVal123123 reasonCode: PAYMENT_VALUE_TOO_HIGH remoteSystemId: Remote_System_Id_101234 lineNumber: 10 message: Payment cannot be processed because of the Payee's OFAC or Compliance Status remoteId: remoteIdVal123 sourceAccountName: Chase schedule: scheduledFor: 2000-01-23T04:56:07.000+00:00 scheduleStatus: SCHEDULED notificationsEnabled: true scheduledByPrincipalId: 8946953b-1e3b-49cf-9da4-b704cbb78f3e scheduledAt: 2000-01-23T04:56:07.000+00:00 paymentsRejected: 0 paymentsSubmitted: 10 paymentsWithdrawn: 0 fxSummaries: - invertedRate: 1.12 creationTime: 2000-01-23T04:56:07.000+00:00 rate: 1.12 expiryTime: 2000-01-23T04:56:07.000+00:00 sourceCurrency: USD totalPaymentAmount: 1234 paymentCurrency: USD quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalSourceAmount: 1234 fundingStatus: FUNDED status: QUOTED - invertedRate: 1.12 creationTime: 2000-01-23T04:56:07.000+00:00 rate: 1.12 expiryTime: 2000-01-23T04:56:07.000+00:00 sourceCurrency: USD totalPaymentAmount: 1234 paymentCurrency: USD quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalSourceAmount: 1234 fundingStatus: FUNDED status: QUOTED accounts: - sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 currency: USD totalPayoutCost: 1231200 sourceAccountName: AccountName - sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 currency: USD totalPayoutCost: 1231200 sourceAccountName: AccountName payoutId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 acceptedPayments: - currencyType: USD amount: 1234 paymentMetadata: invoiceeId_123|abc001:12345|xyz002:4567 payorPaymentId: paymenIdVal123123 paymentMemo: Payment memo remoteSystemId: Remote_System_Id_101234 remoteId: remoteIdVal123 sourceAccountName: Chase - currencyType: USD amount: 1234 paymentMetadata: invoiceeId_123|abc001:12345|xyz002:4567 payorPaymentId: paymenIdVal123123 paymentMemo: Payment memo remoteSystemId: Remote_System_Id_101234 remoteId: remoteIdVal123 sourceAccountName: Chase status: COMPLETED paymentsAccepted: 10 properties: payoutId: format: uuid type: string status: example: COMPLETED type: string paymentsSubmitted: example: 10 type: integer paymentsAccepted: example: 10 type: integer paymentsRejected: example: 0 type: integer paymentsWithdrawn: example: 0 type: integer fxSummaries: items: $ref: '#/components/schemas/QuoteFxSummaryV3' type: array accounts: items: $ref: '#/components/schemas/SourceAccountV3' type: array acceptedPayments: items: $ref: '#/components/schemas/AcceptedPaymentV3' type: array rejectedPayments: items: $ref: '#/components/schemas/RejectedPaymentV3' type: array schedule: $ref: '#/components/schemas/PayoutSchedule_2' required: - acceptedPayments - accounts - fxSummaries - paymentsWithdrawn - rejectedPayments type: object InstructPayoutRequest: example: fxRateDegredationThresholdPercentage: 0.8008282 properties: fxRateDegredationThresholdPercentage: description: Halt instruction if the FX rates have become worse since the last quote format: float type: number type: object QuoteResponseV3: example: fxSummaries: - invertedRate: 1.12 creationTime: 2000-01-23T04:56:07.000+00:00 rate: 1.12 expiryTime: 2000-01-23T04:56:07.000+00:00 sourceCurrency: USD totalPaymentAmount: 1234 paymentCurrency: USD quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalSourceAmount: 1234 fundingStatus: FUNDED status: QUOTED - invertedRate: 1.12 creationTime: 2000-01-23T04:56:07.000+00:00 rate: 1.12 expiryTime: 2000-01-23T04:56:07.000+00:00 sourceCurrency: USD totalPaymentAmount: 1234 paymentCurrency: USD quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalSourceAmount: 1234 fundingStatus: FUNDED status: QUOTED properties: fxSummaries: items: $ref: '#/components/schemas/QuoteFxSummaryV3' type: array type: object PagedPaymentsResponseV3: description: List Payees Response Object example: links: - rel: rel href: href - rel: rel href: href page: numberOfElements: 0 totalPages: 1 pageSize: 5 page: 5 totalElements: 6 content: - amount: 1234 paymentMemo: Payment memo remoteId: remoteIdVal123 payee: individual: name: firstName: Fred lastName: Flintstone company: companyName: ACME Anvils PLC payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 paymentId: paymentId withdrawable: false autoWithdrawnReasonCode: VE0003 paymentMetadata: invoiceeId_123|abc001:12345|xyz002:4567 currency: USD payorPaymentId: paymenIdVal123123 transmissionType: ACH remoteSystemId: Remote_System_Id_101234 sourceAccountName: Chase status: SUBMITTED - amount: 1234 paymentMemo: Payment memo remoteId: remoteIdVal123 payee: individual: name: firstName: Fred lastName: Flintstone company: companyName: ACME Anvils PLC payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 paymentId: paymentId withdrawable: false autoWithdrawnReasonCode: VE0003 paymentMetadata: invoiceeId_123|abc001:12345|xyz002:4567 currency: USD payorPaymentId: paymenIdVal123123 transmissionType: ACH remoteSystemId: Remote_System_Id_101234 sourceAccountName: Chase status: SUBMITTED properties: page: $ref: '#/components/schemas/PagedPayeeInvitationStatusResponseV3_page' links: items: $ref: '#/components/schemas/PagedPayeeResponseV3_links' type: array content: items: $ref: '#/components/schemas/PaymentV3' type: array type: object SchedulePayoutRequest: example: scheduledFor: 2025-01-01T10:00:00Z notificationsEnabled: true properties: scheduledFor: description: UTC timestamp for instructing the payout. Format is ISO-8601. example: 2025-01-01T10:00:00Z format: date-time type: string notificationsEnabled: description: Flag to indicate whether to receive notifications when scheduled payout is processed type: boolean required: - notificationsEnabled - scheduledFor type: object PaymentChannelRulesResponse: example: bank: - isoCountryCode: US rules: - displayName: Account Name minLength: 5 displayOrder: 0 required: true maxLength: 50 validation: ^[0-9]{6,11}$ element: accountName - displayName: Account Name minLength: 5 displayOrder: 0 required: true maxLength: 50 validation: ^[0-9]{6,11}$ element: accountName - isoCountryCode: US rules: - displayName: Account Name minLength: 5 displayOrder: 0 required: true maxLength: 50 validation: ^[0-9]{6,11}$ element: accountName - displayName: Account Name minLength: 5 displayOrder: 0 required: true maxLength: 50 validation: ^[0-9]{6,11}$ element: accountName properties: bank: items: $ref: '#/components/schemas/PaymentChannelCountry' type: array type: object WithdrawPaymentRequest: example: reason: Payment submitted in error properties: reason: description: Reason for withdrawal example: Payment submitted in error maxLength: 256 minLength: 2 type: string required: - reason type: object SupportedCountriesResponse: example: countries: - isoCountryCode: US currencies: - USD - USD - isoCountryCode: US currencies: - USD - USD properties: countries: items: $ref: '#/components/schemas/SupportedCountry' type: array type: object SupportedCountriesResponseV2: example: countries: - regions: - name: California abbreviation: CA - name: California abbreviation: CA isoCountryCode: US currencies: - USD - USD - regions: - name: California abbreviation: CA - name: California abbreviation: CA isoCountryCode: US currencies: - USD - USD properties: countries: items: $ref: '#/components/schemas/SupportedCountryV2' type: array type: object SupportedCurrencyResponseV2: example: currencies: - currency: USD maxPaymentAmount: 100000 - currency: USD maxPaymentAmount: 100000 properties: currencies: items: $ref: '#/components/schemas/SupportedCurrencyV2' type: array type: object WebhooksResponse: description: List Webhooks Object example: links: - rel: rel href: href - rel: rel href: href page: numberOfElements: 0 totalPages: 1 pageSize: 5 page: 5 totalElements: 6 content: - id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 authorizationHeader: authorizationHeader categories: - null - null webhookUrl: webhookUrl enabled: true - id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 authorizationHeader: authorizationHeader categories: - null - null webhookUrl: webhookUrl enabled: true properties: page: $ref: '#/components/schemas/PagedPayeeInvitationStatusResponseV3_page' links: items: $ref: '#/components/schemas/PagedPayeeResponseV3_links' type: array content: items: $ref: '#/components/schemas/WebhookResponse' type: array type: object CreateWebhookRequest: example: payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 authorizationHeader: authorizationHeader categories: - null - null webhookUrl: webhookUrl enabled: true properties: payorId: format: uuid type: string webhookUrl: description: the webhook URL to use. maxLength: 2000 minLength: 6 type: string authorizationHeader: description: the authorization header to include with the notification. maxLength: 1000 minLength: 4 pattern: .* type: string enabled: description: whether the webhook is enabled. type: boolean categories: description: the categories to enable. items: $ref: '#/components/schemas/Category' type: array required: - enabled - payorId - webhookUrl type: object WebhookResponse: example: id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 authorizationHeader: authorizationHeader categories: - null - null webhookUrl: webhookUrl enabled: true properties: id: format: uuid type: string payorId: format: uuid type: string webhookUrl: type: string authorizationHeader: type: string enabled: type: boolean categories: items: $ref: '#/components/schemas/Category' type: array type: object UpdateWebhookRequest: example: authorizationHeader: authorizationHeader categories: - null - null webhookUrl: webhookUrl enabled: true properties: webhookUrl: description: the webhook URL to use. maxLength: 2000 minLength: 6 type: string authorizationHeader: description: the authorization header to include with the notification. maxLength: 1000 minLength: 4 nullable: true pattern: .* type: string enabled: description: whether the webhook is enabled. type: boolean categories: description: The notification categories to enable. items: $ref: '#/components/schemas/Category' nullable: true type: array type: object PingResponse: example: webhookId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 properties: id: format: uuid type: string webhookId: format: uuid type: string type: object LocalisationDetails: properties: template: description: the English language message template used to construct the error message example: size must be between {min} and {max} type: string parameters: additionalProperties: type: string description: name to value map containing any named parameters that appear in the message template example: min: "0" max: "10" type: object type: object ErrorData: properties: description: description: The description of the error data content example: The rejected CSV rows type: string content: description: Object containing typed error data specific to the API type: object type: object UserInfo: example: mfa_details: mfa_type: TOTP verified: true user_id: 39976ee5-dc4c-4b21-a966-a04fa71ef9e1 userType: PAYOR properties: user_id: description: the id of the user example: 39976ee5-dc4c-4b21-a966-a04fa71ef9e1 format: uuid type: string userType: $ref: '#/components/schemas/UserType_2' mfa_details: $ref: '#/components/schemas/MFADetails' type: object Role: properties: name: description: the name of the role example: payor.admin type: string required: - name type: object VerificationCode: description: |

Optional property that MUST be suppied when manually verifying a user

The user's smsNumber is registered via a separate endpoint and an OTP sent to them

example: "123456" maxLength: 6 minLength: 6 nullable: true type: string MFAType: description: The type of the MFA device enum: - SMS - YUBIKEY - TOTP example: TOTP nullable: true type: string PayorAddress: example: country: US countyOrProvince: FL line4: line4 city: Key West line3: line3 line2: line2 line1: 500 Duval St zipOrPostcode: "33945" properties: line1: example: 500 Duval St maxLength: 255 minLength: 2 nullable: false type: string line2: maxLength: 255 minLength: 0 nullable: true type: string line3: maxLength: 255 minLength: 0 nullable: true type: string line4: maxLength: 255 minLength: 0 nullable: true type: string city: example: Key West maxLength: 100 minLength: 2 nullable: false type: string countyOrProvince: example: FL maxLength: 100 minLength: 2 nullable: true type: string zipOrPostcode: example: "33945" maxLength: 30 minLength: 2 nullable: true type: string country: example: US maxLength: 50 minLength: 2 nullable: false type: string required: - city - country - line1 type: object KycState: description: The kyc state of the payor. enum: - FAILED_KYC - PASSED_KYC - REQUIRES_KYC example: PASSED_KYC readOnly: true type: string TransmissionTypes: example: ACH: true SAME_DAY_ACH: true WIRE: true properties: ACH: description: Whether the Payor is allowed to pay via ACH example: true type: boolean SAME_DAY_ACH: description: Whether the Payor is allowed to pay via same day ACH example: true type: boolean WIRE: description: Whether the Payor is allowed to pay via wire example: true type: boolean required: - ACH - SAME_DAY_ACH - WIRE type: object PayorAddressV2: example: country: US countyOrProvince: FL line4: line4 city: Key West line3: line3 line2: line2 line1: 500 Duval St zipOrPostcode: "33945" properties: line1: example: 500 Duval St maxLength: 255 minLength: 2 nullable: false type: string line2: maxLength: 255 minLength: 0 nullable: true type: string line3: maxLength: 255 minLength: 0 nullable: true type: string line4: maxLength: 255 minLength: 0 nullable: true type: string city: example: Key West maxLength: 100 minLength: 2 nullable: false type: string countyOrProvince: example: FL maxLength: 100 minLength: 2 nullable: true type: string zipOrPostcode: example: "33945" maxLength: 30 minLength: 2 nullable: true type: string country: example: US maxLength: 50 minLength: 2 nullable: false type: string required: - city - country - line1 type: object PaymentRails: enum: - WU - BOFA type: string TransmissionTypes_2: example: ACH: true SAME_DAY_ACH: true WIRE: true properties: ACH: description: Whether the Payor is allowed to pay via ACH example: true type: boolean SAME_DAY_ACH: description: Whether the Payor is allowed to pay via same day ACH example: true type: boolean WIRE: description: Whether the Payor is allowed to pay via wire example: true type: boolean required: - ACH - SAME_DAY_ACH - WIRE type: object PayeePayorRefV3: example: payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 properties: payorId: example: ba08877f-9d96-41e4-9c26-44a872d856ae format: uuid type: string remoteId: example: uniqueIdForRemoteEntity type: string invitationStatus: $ref: '#/components/schemas/InvitationStatusV3' invitationStatusTimestamp: description: The timestamp when the invitation status is updated example: 2019-01-20T09:00:00Z format: date-time nullable: true type: string paymentChannelId: example: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 format: uuid type: string payableStatus: description: Indicates if the payee is payable for this payor type: boolean payableIssues: description: Indicates any conditions which prevent the payee from being payable for this payor items: $ref: '#/components/schemas/PayableIssueV3' type: array type: object OnboardedStatusV3: enum: - CREATED - INVITED - REGISTERED - ONBOARDED type: string LanguageV3: description: | An IETF BCP 47 language code which has been configured for use within this Velo environment.
See the /v1/supportedLanguages endpoint to list the available codes for an environment. example: en-US type: string IsoCountryCode: description: Valid ISO 3166 2 character country code. See the ISO specification for details. example: US maxLength: 2 minLength: 2 pattern: ^[A-Z]{2}$ title: ISO 3166 2 Character Country Code type: string PayeeAddressV3: example: country: US countyOrProvince: FL line4: line4 city: Key West line3: line3 line2: line2 line1: 500 Duval St zipOrPostcode: "33945" properties: line1: example: 500 Duval St maxLength: 255 minLength: 2 nullable: false type: string line2: maxLength: 255 minLength: 0 nullable: true type: string line3: maxLength: 255 minLength: 0 nullable: true type: string line4: maxLength: 255 minLength: 0 nullable: true type: string city: example: Key West maxLength: 100 minLength: 2 nullable: false type: string countyOrProvince: example: FL maxLength: 100 minLength: 2 nullable: true type: string zipOrPostcode: example: "33945" maxLength: 30 minLength: 2 nullable: true type: string country: description: Valid ISO 3166 2 character country code. See the ISO specification for details. example: US maxLength: 2 minLength: 2 pattern: ^[A-Z]{2}$ title: ISO 3166 2 Character Country Code type: string required: - city - country - line1 type: object IndividualV3: example: name: firstName: Bob lastName: Smith otherNames: A title: Mr nationalIdentification: AB123456C dateOfBirth: 1985-01-01 properties: name: $ref: '#/components/schemas/IndividualV3_name' nationalIdentification: description: 'If not authorized to view, value will be masked. Example: XXXXX1234' example: AB123456C maxLength: 30 minLength: 6 readOnly: true type: string dateOfBirth: description: 'If not authorized to view, value will be masked. Example: - XXXX-XX-XX' example: 1985-01-01 readOnly: true type: string required: - dateOfBirth - name type: object CompanyV3: example: taxId: "123123123" name: ABC Group Plc operatingName: ABC Co nullable: true properties: name: example: ABC Group Plc maxLength: 40 minLength: 3 type: string taxId: description: Company Tax Id must be between 6 and 30 characters long example: "123123123" maxLength: 30 minLength: 6 nullable: true type: string operatingName: example: ABC Co maxLength: 100 minLength: 1 nullable: true type: string required: - name type: object ChallengeV3: example: description: challenge description value: challenge test properties: value: example: challenge test maxLength: 20 minLength: 3 type: string description: example: challenge description maxLength: 255 minLength: 1 type: string required: - description - value type: object GetPayeeListResponseV3: example: payorRefs: - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 watchlistOverrideComment: Example reason for the watchlist status being overridden country: US disabledUpdatedTimestamp: 2019-01-20T09:00:00Z individual: name: firstName: Bob lastName: Smith otherNames: H title: Mr created: 2019-01-20T09:00:00Z displayName: ABC language: en-US watchlistStatusUpdatedTimestamp: 2019-01-20T09:00:00+00:00 disabledComment: reason for disabled disabled: true company: name: ABC Group Plc operatingName: ABC Co payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 email: bob@example.com properties: payeeId: example: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 format: uuid readOnly: true type: string payorRefs: items: $ref: '#/components/schemas/PayeePayorRefV3' nullable: true readOnly: true type: array email: example: bob@example.com format: email nullable: true type: string onboardedStatus: $ref: '#/components/schemas/OnboardedStatusV3' watchlistStatus: $ref: '#/components/schemas/WatchlistStatusV3' watchlistStatusUpdatedTimestamp: example: 2019-01-20T09:00:00+00:00 format: date_time nullable: true readOnly: true type: string watchlistOverrideComment: example: Example reason for the watchlist status being overridden nullable: true type: string language: description: | An IETF BCP 47 language code which has been configured for use within this Velo environment.
See the /v1/supportedLanguages endpoint to list the available codes for an environment. example: en-US type: string created: example: 2019-01-20T09:00:00Z format: date-time type: string country: description: Valid ISO 3166 2 character country code. See the ISO specification for details. example: US maxLength: 2 minLength: 2 pattern: ^[A-Z]{2}$ title: ISO 3166 2 Character Country Code type: string displayName: example: ABC type: string payeeType: $ref: '#/components/schemas/PayeeType_2' disabled: type: boolean disabledComment: example: reason for disabled type: string disabledUpdatedTimestamp: example: 2019-01-20T09:00:00Z format: date-time type: string individual: $ref: '#/components/schemas/GetPayeeListResponseIndividualV3' company: $ref: '#/components/schemas/GetPayeeListResponseCompanyV3' type: object CreatePayeeV3: example: payorRefs: - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 address: country: US countyOrProvince: FL line4: line4 city: Key West line3: line3 line2: line2 line1: 500 Duval St zipOrPostcode: "33945" individual: name: firstName: Bob lastName: Smith otherNames: H title: Mr nationalIdentification: SA211123K dateOfBirth: 1970-05-20T00:00:00.000+0000 challenge: description: challenge description value: challenge test language: en-US company: taxId: "123123123" name: ABC Group Plc operatingName: ABC Co payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 email: bob@example.com remoteId: Remote ID paymentChannel: paymentChannelName: My Payment Channel routingNumber: XXXXX6789 accountName: My account countryCode: US iban: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1234 currency: USD accountNumber: XXXXXX5678 properties: payeeId: example: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 format: uuid readOnly: true type: string payorRefs: items: $ref: '#/components/schemas/PayeePayorRefV3' nullable: true readOnly: true type: array email: example: bob@example.com format: email maxLength: 255 minLength: 3 type: string remoteId: example: Remote ID maxLength: 100 minLength: 1 type: string type: $ref: '#/components/schemas/PayeeType_2' address: $ref: '#/components/schemas/CreatePayeeAddressV3' paymentChannel: $ref: '#/components/schemas/CreatePaymentChannelV3' challenge: $ref: '#/components/schemas/ChallengeV3' language: description: | An IETF BCP 47 language code which has been configured for use within this Velo environment.
See the /v1/supportedLanguages endpoint to list the available codes for an environment. example: en-US type: string company: $ref: '#/components/schemas/CompanyV3' individual: $ref: '#/components/schemas/CreateIndividualV3' required: - address - email - remoteId - type type: object Iban: description: Must match the regular expression ```^[A-Za-z0-9]+$```. example: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1234 maxLength: 34 minLength: 15 pattern: ^[A-Za-z0-9]+$ title: IBAN - International Bank Account Number type: string SupportedLanguage: description: | An IETF BCP 47 language code which has been configured for use within this Velo environment.
See the /v1/supportedLanguages endpoint to list the available codes for an environment. example: en-US type: string FailedSubmissionV3: example: failedSubmission: payorRefs: - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 address: country: US countyOrProvince: FL line4: line4 city: Key West line3: line3 line2: line2 line1: 500 Duval St zipOrPostcode: "33945" individual: name: firstName: Bob lastName: Smith otherNames: H title: Mr nationalIdentification: SA211123K dateOfBirth: 1970-05-20T00:00:00.000+0000 challenge: description: challenge description value: challenge test language: en-US company: taxId: "123123123" name: ABC Group Plc operatingName: ABC Co payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 email: bob@example.com remoteId: Remote ID paymentChannel: paymentChannelName: My Payment Channel routingNumber: XXXXX6789 accountName: My account countryCode: US iban: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1234 currency: USD accountNumber: XXXXXX5678 failureMessage: failure reason properties: failedSubmission: $ref: '#/components/schemas/FailedPayeeV3' failureMessage: example: failure reason type: string type: object PayeeInvitationStatusResponseV3: example: payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 gracePeriodEndDate: 2019-01-20T00:00:00.000+0000 invitationStatus: ACCEPTED properties: payeeId: example: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 format: uuid type: string invitationStatus: enum: - ACCEPTED - PENDING - DECLINED type: string gracePeriodEndDate: example: 2019-01-20 format: date type: string required: - invitationStatus - payeeId type: object PayeeDeltaV3: example: payeeCountry: US displayName: Payee1 payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 dbaName: Payee DBA Name email: payee1@example.com remoteId: payee_1 properties: remoteId: example: payee_1 maxLength: 100 minLength: 1 type: string payeeId: format: uuid readOnly: true type: string displayName: example: Payee1 type: string dbaName: example: Payee DBA Name type: string email: example: payee1@example.com format: email nullable: true type: string payeeCountry: example: US type: string onboardedStatus: $ref: '#/components/schemas/OnboardedStatusV3_2' required: - payeeId - remoteId type: object PayeePayorRefV4: example: payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 properties: payorId: example: ba08877f-9d96-41e4-9c26-44a872d856ae format: uuid type: string remoteId: example: uniqueIdForRemoteEntity type: string invitationStatus: $ref: '#/components/schemas/InvitationStatusV4' invitationStatusTimestamp: description: The timestamp when the invitation status is updated example: 2019-01-20T09:00:00Z format: date-time nullable: true type: string paymentChannelId: example: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 format: uuid type: string payableStatus: description: Indicates if the payee is payable for this payor type: boolean payableIssues: description: Indicates any conditions which prevent the payee from being payable for this payor items: $ref: '#/components/schemas/PayableIssueV4' type: array type: object WatchlistStatusV4: enum: - NONE - PENDING - REVIEW - PASSED - FAILED type: string LanguageV4: description: | An IETF BCP 47 language code which has been configured for use within this Velo environment.
See the /v1/supportedLanguages endpoint to list the available codes for an environment. example: en-US type: string PayeeAddressV4: example: country: US countyOrProvince: FL line4: line4 city: Key West line3: line3 line2: line2 line1: 500 Duval St zipOrPostcode: "33945" properties: line1: example: 500 Duval St maxLength: 255 minLength: 2 nullable: false type: string line2: maxLength: 255 minLength: 0 nullable: true type: string line3: maxLength: 255 minLength: 0 nullable: true type: string line4: maxLength: 255 minLength: 0 nullable: true type: string city: example: Key West maxLength: 100 minLength: 2 nullable: false type: string countyOrProvince: example: FL maxLength: 100 minLength: 2 nullable: true type: string zipOrPostcode: example: "33945" maxLength: 30 minLength: 2 nullable: true type: string country: example: US maxLength: 50 minLength: 2 nullable: false type: string required: - city - country - line1 type: object IndividualV4: example: name: firstName: Bob lastName: Smith otherNames: A title: Mr nationalIdentification: AB123456C dateOfBirth: 1985-01-01 properties: name: $ref: '#/components/schemas/IndividualV3_name' nationalIdentification: description: 'If not authorized to view, value will be masked. Example: XXXXX1234' example: AB123456C maxLength: 30 minLength: 6 readOnly: true type: string dateOfBirth: description: 'If not authorized to view, value will be masked. Example: - XXXX-XX-XX' example: 1985-01-01 readOnly: true type: string required: - dateOfBirth - name type: object CompanyV4: example: taxId: "123123123" name: ABC Group Plc operatingName: ABC Co nullable: true properties: name: example: ABC Group Plc maxLength: 40 minLength: 3 type: string taxId: description: Company Tax Id must be between 6 and 30 characters long example: "123123123" maxLength: 30 minLength: 6 nullable: true type: string operatingName: example: ABC Co maxLength: 100 minLength: 1 nullable: true type: string required: - name type: object ChallengeV4: description: |

Used to override the default challenge presented to the payee when they onboard

Not used after the payee has onboarded

example: description: challenge description value: "11984567" properties: value: description: The value that the user will be asked to verify when they onboard example: "11984567" maxLength: 20 minLength: 3 type: string description: example: challenge description maxLength: 255 minLength: 1 type: string required: - description - value type: object GetPayeeListResponseV4: example: payorRefs: - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 watchlistOverrideComment: Example reason for the watchlist status being overridden country: US disabledUpdatedTimestamp: 2019-01-20T09:00:00Z individual: name: firstName: Bob lastName: Smith otherNames: H title: Mr created: 2019-01-20T09:00:00Z displayName: ABC language: en-US watchlistStatusUpdatedTimestamp: 2019-01-20T09:00:00+00:00 disabledComment: reason for disabled disabled: true company: name: ABC Group Plc operatingName: ABC Co payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 email: bob@example.com properties: payeeId: example: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 format: uuid readOnly: true type: string payorRefs: items: $ref: '#/components/schemas/PayeePayorRefV4' nullable: true readOnly: true type: array email: example: bob@example.com format: email nullable: true type: string onboardedStatus: $ref: '#/components/schemas/OnboardedStatusV4' watchlistStatus: $ref: '#/components/schemas/WatchlistStatusV4' watchlistStatusUpdatedTimestamp: example: 2019-01-20T09:00:00+00:00 format: date_time nullable: true readOnly: true type: string watchlistOverrideComment: example: Example reason for the watchlist status being overridden nullable: true type: string language: description: | An IETF BCP 47 language code which has been configured for use within this Velo environment.
See the /v1/supportedLanguages endpoint to list the available codes for an environment. example: en-US type: string created: example: 2019-01-20T09:00:00Z format: date-time type: string country: description: Valid ISO 3166 2 character country code. See the ISO specification for details. example: US maxLength: 2 minLength: 2 pattern: ^[A-Z]{2}$ title: ISO 3166 2 Character Country Code type: string displayName: example: ABC type: string payeeType: $ref: '#/components/schemas/PayeeType_2' disabled: type: boolean disabledComment: example: reason for disabled type: string disabledUpdatedTimestamp: example: 2019-01-20T09:00:00Z format: date-time type: string individual: $ref: '#/components/schemas/GetPayeeListResponseIndividualV4' company: $ref: '#/components/schemas/GetPayeeListResponseCompanyV4' type: object CreatePayeeV4: example: payorRefs: - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 address: country: US countyOrProvince: FL line4: line4 city: Key West line3: line3 line2: line2 line1: 500 Duval St zipOrPostcode: "33945" individual: name: firstName: Bob lastName: Smith otherNames: H title: Mr nationalIdentification: SA211123K dateOfBirth: 1970-05-20T00:00:00.000+0000 challenge: description: challenge description value: "11984567" language: en-US company: taxId: "123123123" name: ABC Group Plc operatingName: ABC Co payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 email: bob@example.com remoteId: Remote ID paymentChannel: paymentChannelName: My Payment Channel routingNumber: XXXXX6789 accountName: My account countryCode: US iban: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1234 currency: USD accountNumber: XXXXXX5678 properties: payeeId: example: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 format: uuid readOnly: true type: string payorRefs: items: $ref: '#/components/schemas/PayeePayorRefV4' nullable: true readOnly: true type: array email: example: bob@example.com format: email maxLength: 255 minLength: 3 type: string remoteId: example: Remote ID maxLength: 100 minLength: 1 type: string type: $ref: '#/components/schemas/PayeeType_2' address: $ref: '#/components/schemas/CreatePayeeAddressV4' paymentChannel: $ref: '#/components/schemas/CreatePaymentChannelV4' challenge: $ref: '#/components/schemas/ChallengeV4' language: description: | An IETF BCP 47 language code which has been configured for use within this Velo environment.
See the /v1/supportedLanguages endpoint to list the available codes for an environment. example: en-US type: string company: $ref: '#/components/schemas/CompanyV4' individual: $ref: '#/components/schemas/CreateIndividualV4' required: - address - email - remoteId - type type: object FailedSubmissionV4: example: failedSubmission: payorRefs: - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 address: country: US countyOrProvince: FL line4: line4 city: Key West line3: line3 line2: line2 line1: 500 Duval St zipOrPostcode: "33945" individual: name: firstName: Bob lastName: Smith otherNames: H title: Mr nationalIdentification: SA211123K dateOfBirth: 1970-05-20T00:00:00.000+0000 challenge: description: challenge description value: "11984567" language: en-US company: taxId: "123123123" name: ABC Group Plc operatingName: ABC Co payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 email: bob@example.com remoteId: Remote ID paymentChannel: paymentChannelName: My Payment Channel routingNumber: XXXXX6789 accountName: My account countryCode: US iban: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1234 currency: USD accountNumber: XXXXXX5678 failureMessage: failure reason properties: failedSubmission: $ref: '#/components/schemas/FailedPayeeV4' failureMessage: example: failure reason type: string type: object PayeeInvitationStatusResponseV4: example: payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 gracePeriodEndDate: 2019-01-20T00:00:00.000+0000 invitationStatus: ACCEPTED properties: payeeId: example: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 format: uuid type: string invitationStatus: enum: - ACCEPTED - PENDING - DECLINED type: string gracePeriodEndDate: example: 2019-01-20 format: date type: string required: - invitationStatus - payeeId type: object PayeeDeltaV4: example: payeeCountry: US displayName: Payee1 payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 dbaName: Payee DBA Name email: payee1@example.com remoteId: payee_1 properties: remoteId: example: payee_1 maxLength: 100 minLength: 1 type: string payeeId: format: uuid readOnly: true type: string displayName: example: Payee1 type: string dbaName: example: Payee DBA Name type: string email: example: payee1@example.com format: email nullable: true type: string payeeCountry: description: Valid ISO 3166 2 character country code. See the ISO specification for details. example: US maxLength: 2 minLength: 2 pattern: ^[A-Z]{2}$ title: ISO 3166 2 Character Country Code type: string onboardedStatus: $ref: '#/components/schemas/OnboardedStatusV4_2' required: - payeeId - remoteId type: object Notifications: example: minimumBalance: 120000 properties: minimumBalance: example: 120000 type: integer type: object AutoTopUpConfig: example: targetBalance: 300000 minBalance: 10000 enabled: true properties: enabled: description: Is auto top-up enabled? automatically trigger funding to top-up the source account balance when the balance falls below the configured minimum level. example: true type: boolean minBalance: description: When the payor balance falls below this level then auto top-up will be triggered. Note - This is in minor units. example: 10000 format: int64 nullable: true type: integer targetBalance: description: When the payor balance falls below the min balance then auto top-up will request funds bring the balance to this level. Note - this is in minor units. example: 300000 format: int64 nullable: true type: integer required: - enabled type: object Notifications_2: example: minimumBalance: 120000 properties: minimumBalance: example: 120000 type: integer type: object AutoTopUpConfig_2: example: targetBalance: 300000 fundingAccountId: 640ab1bd-8a6a-4603-a83a-1edbc3ed5689 minBalance: 10000 enabled: true properties: enabled: description: Is auto top-up enabled? automatically trigger funding to top-up the source account balance when the balance falls below the configured minimum level. example: true type: boolean minBalance: description: When the payor balance falls below this level then auto top-up will be triggered. Note - This is in minor units. example: 10000 format: int64 nullable: true type: integer targetBalance: description: When the payor balance falls below the min balance then auto top-up will request funds bring the balance to this level. Note - this is in minor units. example: 300000 format: int64 nullable: true type: integer fundingAccountId: description: Id of funding account from which to pull funds when auto top-up is triggered. Note - if this is not set then auto top-up is effectively disabled. example: 640ab1bd-8a6a-4603-a83a-1edbc3ed5689 format: uuid type: string required: - enabled type: object LinkForResponse: example: rel: rel href: href properties: rel: type: string href: type: string type: object PageForResponse: example: numberOfElements: 0 totalPages: 1 pageSize: 5 page: 5 totalElements: 6 properties: numberOfElements: format: int32 type: integer totalElements: format: int64 type: integer totalPages: format: int32 type: integer page: format: int32 type: integer pageSize: format: int32 type: integer type: object FundingPayorStatusAuditResponse: example: amount: 2 fundingId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 currency: USD status: status properties: fundingId: format: uuid type: string amount: format: int64 type: integer currency: description: Valid ISO 4217 3 letter currency code. See the ISO specification for details. example: USD maxLength: 3 minLength: 3 pattern: ^[A-Z]{3}$ title: ISO Currency Code type: string status: type: string type: object FundingAudit: example: dateTime: 2000-01-23T04:56:07.000+00:00 fundingAccountName: fundingAccountName amount: 120000 fundingType: ACH currency: USD topupType: AUTOMATIC events: - principal: principal eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 - principal: principal eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 status: PENDING sourceAccountName: sourceAccountName properties: amount: description: The amount funded example: 120000 format: double type: number currency: description: The currency of the funding example: USD type: string dateTime: format: date-time type: string status: enum: - PENDING - FAILED - CREDIT - DEBIT type: string sourceAccountName: type: string fundingAccountName: type: string fundingType: enum: - ACH - WIRE - EMBEDDED type: string events: items: $ref: '#/components/schemas/FundingEvent' type: array topupType: enum: - AUTOMATIC - MANUAL type: string type: object PaymentDeltaV1: example: paymentId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorPaymentId: payorPaymentId sourceCurrency: sourceCurrency sourceAmount: 6 payoutId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 paymentCurrency: paymentCurrency paymentAmount: 0 status: status properties: paymentId: format: uuid readOnly: true type: string payoutId: format: uuid readOnly: true type: string payorPaymentId: nullable: true type: string paymentCurrency: nullable: true type: string paymentAmount: nullable: true type: integer status: nullable: true type: string sourceCurrency: nullable: true type: string sourceAmount: nullable: true type: integer required: - paymentId - payoutId type: object PayoutSummaryAuditV3: example: sourceAccountSummary: - sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 3434 - sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 3434 submittedDateTime: submittedDateTime payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalIncompletePayments: 123 fxSummaries: - invertedRate: 1.12 rate: 1.12 totalPaymentAmount: 1234 quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 1234 fundingStatus: FUNDED creationDateTime: 2000-01-23T04:56:07.000+00:00 status: UNQUOTED - invertedRate: 1.12 rate: 1.12 totalPaymentAmount: 1234 quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 1234 fundingStatus: FUNDED creationDateTime: 2000-01-23T04:56:07.000+00:00 status: UNQUOTED payoutId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 withdrawnDateTime: withdrawnDateTime totalPayments: 123 instructedDateTime: instructedDateTime totalFailedPayments: 123 payoutMemo: payoutMemo properties: payoutId: format: uuid type: string payorId: format: uuid type: string status: $ref: '#/components/schemas/PayoutStatusV3' submittedDateTime: type: string instructedDateTime: type: string withdrawnDateTime: type: string totalPayments: example: 123 type: integer totalIncompletePayments: example: 123 type: integer totalFailedPayments: example: 123 type: integer sourceAccountSummary: items: $ref: '#/components/schemas/SourceAccountSummaryV3' type: array fxSummaries: items: $ref: '#/components/schemas/FxSummaryV3' type: array payoutMemo: type: string required: - payoutId - status - submittedDateTime type: object PaymentAuditCurrencyV3: description: ISO 3 character currency code enum: - USD - GBP - EUR maxLength: 3 minLength: 3 type: string PaymentEventResponseV3: example: principal: Prinicple example eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 routingNumber: "123123123" accountName: My account iban: DE89 3704 0044 0532 0130 00 sourceAmount: 1299 eventType: PAYOUT_SUBMITTED accountNumber: "123123123" paymentAmount: 1299 properties: eventId: description: The id of the event. format: uuid type: string eventDateTime: description: The date/time at which the event occurred. format: date-time type: string eventType: description: The type of the event. enum: - PAYOUT_SUBMITTED - PAYOUT_COMPLETED - PAYOUT_INSTRUCTED_V3 - BANK_PAYMENT_REQUESTED - SOURCE_AMOUNT_CONFIRMED - PAYMENT_SUBMITTED - PAYMENT_SUBMITTED_ACCEPTED - PAYMENT_SUBMITTED_REJECTED - PAYMENT_CONFIRMED - PAYMENT_AWAITING_FUNDS - PAYMENT_FUNDED - PAYMENT_UNFUNDED - PAYMENT_FAILED - ACH_SUBMITTED_TO_ODFI - PAYMENT_ACCEPTED_BY_RAILS - ACH_RETURN_RECEIVED - RETURN_PAYMENT_FUNDING_REQUESTED - PAYOUT_BATCH_EXECUTED - PAYOUT_BATCH_QUOTE_EXPIRED - PAYOUT_BATCH_FUNDED - PAYOUT_BATCH_FUNDS_RETURN_REQUEST - PAYOUT_BATCH_FUNDS_RETURNED - PAYOUT_FUNDS_REQUEST - PAYOUT_FUNDS_GRANTED - PAYOUT_FUNDS_DENIED - PAYOUT_BATCH_QUOTED - PAYOUT_QUOTED - ACH_PAYMENT_RETURN_CANCELLED - RETURN_PAYMENT_CANCELLATION_REQUESTED - PAYOUT_WITHDRAWN type: string sourceCurrency: $ref: '#/components/schemas/PaymentAuditCurrencyV3' sourceAmount: description: The source amount exposed by the event. example: 1299 format: int64 type: integer paymentCurrency: $ref: '#/components/schemas/PaymentAuditCurrencyV3' paymentAmount: description: The destination amount exposed by the event. example: 1299 format: int64 type: integer accountNumber: description: The account number attached to the event. example: "123123123" type: string routingNumber: description: The routing number attached to the event. example: "123123123" type: string iban: example: DE89 3704 0044 0532 0130 00 type: string accountName: example: My account type: string principal: example: Prinicple example type: string required: - eventDateTime - eventId - eventType type: object PayoutSummaryAudit: example: dateTime: 2000-01-23T04:56:07.000+00:00 sourceAccountSummary: - sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 3344 - sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 3344 totalReturnedPayments: 1 fxSummaries: - invertedRate: 123.23 rate: 123.23 totalPaymentAmount: 34235 quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 5 fundingStatus: FUNDED creationDateTime: 2000-01-23T04:56:07.000+00:00 status: UNQUOTED - invertedRate: 123.23 rate: 123.23 totalPaymentAmount: 34235 quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 5 fundingStatus: FUNDED creationDateTime: 2000-01-23T04:56:07.000+00:00 status: UNQUOTED payoutId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalPayments: 0 schedule: scheduledFor: 2000-01-23T04:56:07.000+00:00 scheduleStatus: SCHEDULED notificationsEnabled: true scheduledBy: Aphra Behn scheduledByPrincipalId: 8946953b-1e3b-49cf-9da4-b704cbb78f3e scheduledAt: 2000-01-23T04:56:07.000+00:00 submittedDateTime: submittedDateTime payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalIncompletePayments: 6 withdrawnDateTime: 2000-01-23T04:56:07.000+00:00 totalWithdrawnPayments: 5 instructedDateTime: instructedDateTime payoutMemo: payoutMemo payorName: payorName properties: payoutId: format: uuid type: string payorId: format: uuid type: string status: $ref: '#/components/schemas/PayoutStatus' dateTime: format: date-time type: string submittedDateTime: type: string instructedDateTime: type: string withdrawnDateTime: format: date-time type: string totalPayments: type: integer totalIncompletePayments: type: integer totalReturnedPayments: type: integer totalWithdrawnPayments: type: integer sourceAccountSummary: items: $ref: '#/components/schemas/SourceAccountSummary' type: array fxSummaries: items: $ref: '#/components/schemas/FxSummary' type: array payoutMemo: type: string payoutType: $ref: '#/components/schemas/PayoutType' payorName: type: string schedule: $ref: '#/components/schemas/PayoutSchedule' required: - payorName - payoutType - status - submittedDateTime type: object PayoutStatus: enum: - ACCEPTED - REJECTED - SUBMITTED - QUOTED - INSTRUCTED - COMPLETED - INCOMPLETE - CONFIRMED - WITHDRAWN type: string PayoutType: description: The type of payout. enum: - STANDARD - AS - ON_BEHALF_OF type: string PayoutPayor: description: Details of payor and principal participating in a payout. example: principal: principal principalId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 dbaName: dbaName payorName: payorName properties: payorId: description: The id of the payor. format: uuid type: string payorName: description: The name of the payor. type: string dbaName: description: The alternate name of the payor. type: string principal: description: Email address if principal is a user or ID if application. type: string principalId: description: The id of the principal. format: uuid type: string required: - dbaName - payorId - payorName - principal - principalId type: object PayoutPrincipal: description: Details of principal participating in a payout. example: principal: principal principalId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 properties: principal: description: Email address if principal is a user or ID if application. type: string principalId: description: The id of the principal. format: uuid type: string required: - principal - principalId type: object PayoutSchedule: description: Details relating to a payout that was executed via a schedule or is still waiting to be executed example: scheduledFor: 2000-01-23T04:56:07.000+00:00 scheduleStatus: SCHEDULED notificationsEnabled: true scheduledBy: Aphra Behn scheduledByPrincipalId: 8946953b-1e3b-49cf-9da4-b704cbb78f3e scheduledAt: 2000-01-23T04:56:07.000+00:00 properties: scheduleStatus: $ref: '#/components/schemas/ScheduleStatus' scheduledAt: format: date-time type: string scheduledFor: format: date-time type: string scheduledByPrincipalId: description: ID of the user or application that scheduled the payout example: 8946953b-1e3b-49cf-9da4-b704cbb78f3e type: string notificationsEnabled: type: boolean scheduledBy: description: Optional display name as a hint for who scheduled the payout. Not populated if payout was scheduled by an application. example: Aphra Behn type: string required: - notificationsEnabled - scheduleStatus - scheduledAt - scheduledByPrincipalId - scheduledFor type: object PaymentAuditCurrency: description: ISO 3 character currency code enum: - USD - GBP - EUR maxLength: 3 minLength: 3 type: string PaymentEventResponse: example: eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 accountName: accountName eventType: PAYOUT_SUBMITTED accountNumber: accountNumber paymentAmount: 1299 principal: principal routingNumber: routingNumber iban: iban scheduledFor: 2000-01-23T04:56:07.000+00:00 sourceAmount: 1299 scheduledBy: Aphra Behn scheduledAt: 2000-01-23T04:56:07.000+00:00 properties: eventId: description: The id of the event. format: uuid type: string eventDateTime: description: The date/time at which the event occurred. format: date-time type: string eventType: description: The type of the event. enum: - PAYOUT_SUBMITTED - PAYOUT_COMPLETED - PAYOUT_INSTRUCTED_V3 - BANK_PAYMENT_REQUESTED - SOURCE_AMOUNT_CONFIRMED - PAYMENT_SUBMITTED - PAYMENT_SUBMITTED_ACCEPTED - PAYMENT_SUBMITTED_REJECTED - PAYMENT_CONFIRMED - PAYMENT_AWAITING_FUNDS - PAYMENT_FUNDED - PAYMENT_UNFUNDED - PAYMENT_FAILED - ACH_SUBMITTED_TO_ODFI - PAYMENT_ACCEPTED_BY_RAILS - ACH_RETURN_RECEIVED - RETURN_PAYMENT_FUNDING_REQUESTED - PAYOUT_BATCH_EXECUTED - PAYOUT_BATCH_QUOTE_EXPIRED - PAYOUT_BATCH_FUNDED - PAYOUT_BATCH_FUNDS_RETURN_REQUEST - PAYOUT_BATCH_FUNDS_RETURNED - PAYOUT_FUNDS_REQUEST - PAYOUT_FUNDS_GRANTED - PAYOUT_FUNDS_DENIED - PAYOUT_BATCH_QUOTED - PAYOUT_QUOTED - ACH_PAYMENT_RETURN_CANCELLED - RETURN_PAYMENT_CANCELLATION_REQUESTED - PAYOUT_WITHDRAWN - ORCHESTRATED_PAYMENT_BATCH_REQUESTED - ORCHESTRATED_PAYMENT_BATCH_CONFIRMED - ORCHESTRATED_PAYMENT_REQUESTED type: string sourceCurrency: $ref: '#/components/schemas/PaymentAuditCurrency' sourceAmount: description: The source amount exposed by the event. example: 1299 format: int64 type: integer paymentCurrency: $ref: '#/components/schemas/PaymentAuditCurrency' paymentAmount: description: The destination amount exposed by the event. example: 1299 format: int64 type: integer accountNumber: description: The account number attached to the event. type: string routingNumber: description: The routing number attached to the event. type: string iban: type: string accountName: type: string principal: type: string scheduledAt: format: date-time type: string scheduledFor: format: date-time type: string scheduledBy: description: Optional display name as a hint for who scheduled the payout. Not populated if payout was scheduled by an application. example: Aphra Behn type: string required: - eventDateTime - eventId - eventType type: object PaymentDelta: example: paymentId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorPaymentId: payorPaymentId sourceCurrency: sourceCurrency sourceAmount: 6 payoutId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 paymentCurrency: paymentCurrency paymentAmount: 0 status: status properties: paymentId: format: uuid readOnly: true type: string payoutId: format: uuid readOnly: true type: string payorPaymentId: nullable: true type: string paymentCurrency: nullable: true type: string paymentAmount: nullable: true type: integer status: nullable: true type: string sourceCurrency: nullable: true type: string sourceAmount: nullable: true type: integer required: - paymentId - payoutId type: object IsoCurrency: description: Valid ISO 4217 3 letter currency code. See the ISO specification for details. example: USD maxLength: 3 minLength: 3 pattern: ^[A-Z]{3}$ title: ISO Currency Code type: string TransmissionType: description: |

The transmission type that will be used to send a payment

If omitted, a default will be provided by the payment rails

enum: - SAME_DAY_ACH - WIRE - ACH example: ACH type: string QuoteFxSummaryV3: example: invertedRate: 1.12 creationTime: 2000-01-23T04:56:07.000+00:00 rate: 1.12 expiryTime: 2000-01-23T04:56:07.000+00:00 sourceCurrency: USD totalPaymentAmount: 1234 paymentCurrency: USD quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalSourceAmount: 1234 fundingStatus: FUNDED status: QUOTED properties: rate: example: 1.12 format: float type: number invertedRate: example: 1.12 format: float type: number creationTime: format: date-time type: string expiryTime: format: date-time type: string quoteId: format: uuid type: string totalSourceAmount: example: 1234 type: integer totalPaymentAmount: example: 1234 type: integer sourceCurrency: description: Valid ISO 4217 3 letter currency code. See the ISO specification for details. example: USD maxLength: 3 minLength: 3 pattern: ^[A-Z]{3}$ title: ISO Currency Code type: string paymentCurrency: description: Valid ISO 4217 3 letter currency code. See the ISO specification for details. example: USD maxLength: 3 minLength: 3 pattern: ^[A-Z]{3}$ title: ISO Currency Code type: string fundingStatus: enum: - UNFUNDED - INSTRUCTED - FUNDED example: FUNDED type: string status: enum: - UNQUOTED - QUOTED - EXPIRED - EXECUTED - REJECTED example: QUOTED type: string required: - creationTime - fundingStatus - paymentCurrency - quoteId - rate - sourceCurrency - status - totalPaymentAmount - totalSourceAmount type: object SourceAccountV3: example: sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 currency: USD totalPayoutCost: 1231200 sourceAccountName: AccountName properties: sourceAccountName: example: AccountName type: string sourceAccountId: format: uuid type: string currency: description: Valid ISO 4217 3 letter currency code. See the ISO specification for details. example: USD maxLength: 3 minLength: 3 pattern: ^[A-Z]{3}$ title: ISO Currency Code type: string totalPayoutCost: example: 1231200 type: integer required: - currency - sourceAccountId - sourceAccountName - totalPayoutCost type: object AcceptedPaymentV3: example: currencyType: USD amount: 1234 paymentMetadata: invoiceeId_123|abc001:12345|xyz002:4567 payorPaymentId: paymenIdVal123123 paymentMemo: Payment memo remoteSystemId: Remote_System_Id_101234 remoteId: remoteIdVal123 sourceAccountName: Chase properties: remoteId: example: remoteIdVal123 type: string currencyType: description: Valid ISO 4217 3 letter currency code. See the ISO specification for details. example: USD maxLength: 3 minLength: 3 pattern: ^[A-Z]{3}$ title: ISO Currency Code type: string amount: example: 1234 type: integer sourceAccountName: example: Chase type: string payorPaymentId: example: paymenIdVal123123 type: string paymentMemo: example: Payment memo type: string remoteSystemId: example: Remote_System_Id_101234 type: string paymentMetadata: example: invoiceeId_123|abc001:12345|xyz002:4567 type: string required: - amount - currencyType - payorPaymentId - remoteId - sourceAccountName type: object RejectedPaymentV3: example: currencyType: USD reason: The payee has not been onboarded amount: 1234 paymentMetadata: invoiceeId_123|abc001:12345|xyz002:4567 payorPaymentId: paymenIdVal123123 reasonCode: PAYMENT_VALUE_TOO_HIGH remoteSystemId: Remote_System_Id_101234 lineNumber: 10 message: Payment cannot be processed because of the Payee's OFAC or Compliance Status remoteId: remoteIdVal123 sourceAccountName: Chase properties: remoteId: example: remoteIdVal123 type: string currencyType: description: Valid ISO 4217 3 letter currency code. See the ISO specification for details. example: USD maxLength: 3 minLength: 3 pattern: ^[A-Z]{3}$ title: ISO Currency Code type: string amount: example: 1234 type: integer sourceAccountName: example: Chase type: string payorPaymentId: example: paymenIdVal123123 type: string remoteSystemId: example: Remote_System_Id_101234 type: string paymentMetadata: example: invoiceeId_123|abc001:12345|xyz002:4567 type: string reason: example: The payee has not been onboarded type: string reasonCode: example: PAYMENT_VALUE_TOO_HIGH type: string lineNumber: example: 10 type: integer message: example: Payment cannot be processed because of the Payee's OFAC or Compliance Status type: string required: - amount - currencyType - payorPaymentId - reason - remoteId - sourceAccountName type: object PayoutSchedule_2: description: Details relating to a payout that was executed via a schedule or is still waiting to be executed example: scheduledFor: 2000-01-23T04:56:07.000+00:00 scheduleStatus: SCHEDULED notificationsEnabled: true scheduledByPrincipalId: 8946953b-1e3b-49cf-9da4-b704cbb78f3e scheduledAt: 2000-01-23T04:56:07.000+00:00 properties: scheduleStatus: $ref: '#/components/schemas/ScheduleStatus_2' scheduledAt: format: date-time type: string scheduledFor: format: date-time type: string scheduledByPrincipalId: description: ID of the user or application that scheduled the payout example: 8946953b-1e3b-49cf-9da4-b704cbb78f3e type: string notificationsEnabled: type: boolean required: - notificationsEnabled - scheduleStatus - scheduledAt - scheduledByPrincipalId - scheduledFor type: object PaymentV3: example: amount: 1234 paymentMemo: Payment memo remoteId: remoteIdVal123 payee: individual: name: firstName: Fred lastName: Flintstone company: companyName: ACME Anvils PLC payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 paymentId: paymentId withdrawable: false autoWithdrawnReasonCode: VE0003 paymentMetadata: invoiceeId_123|abc001:12345|xyz002:4567 currency: USD payorPaymentId: paymenIdVal123123 transmissionType: ACH remoteSystemId: Remote_System_Id_101234 sourceAccountName: Chase status: SUBMITTED properties: paymentId: type: string remoteId: example: remoteIdVal123 type: string currency: example: USD maxLength: 3 minLength: 3 type: string amount: example: 1234 type: integer sourceAccountName: example: Chase type: string payorPaymentId: example: paymenIdVal123123 type: string paymentMemo: example: Payment memo type: string payee: $ref: '#/components/schemas/PayoutPayeeV3' withdrawable: example: false type: boolean status: enum: - SUBMITTED - ACCEPTED - REJECTED - WITHDRAWN - RETURNED - AWAITING_FUNDS - FUNDED - UNFUNDED - CANCELLED - REQUESTED type: string transmissionType: $ref: '#/components/schemas/TransmissionType' remoteSystemId: example: Remote_System_Id_101234 type: string paymentMetadata: example: invoiceeId_123|abc001:12345|xyz002:4567 type: string autoWithdrawnReasonCode: description: Populated only if the payment was automatically withdrawn during instruction for being invalid example: VE0003 type: string required: - paymentId type: object PaymentChannelCountry: example: isoCountryCode: US rules: - displayName: Account Name minLength: 5 displayOrder: 0 required: true maxLength: 50 validation: ^[0-9]{6,11}$ element: accountName - displayName: Account Name minLength: 5 displayOrder: 0 required: true maxLength: 50 validation: ^[0-9]{6,11}$ element: accountName properties: isoCountryCode: description: The ISO code for the country example: US type: string rules: description: The rules for the given country items: $ref: '#/components/schemas/PaymentChannelRule' type: array required: - isoCountryCode - rules type: object SupportedCountry: example: isoCountryCode: US currencies: - USD - USD properties: isoCountryCode: description: Valid ISO 3166 2 character country code. See the ISO specification for details. example: US maxLength: 2 minLength: 2 pattern: ^[A-Z]{2}$ title: ISO 3166 2 Character Country Code type: string currencies: items: $ref: '#/components/schemas/IsoCurrency' type: array type: object SupportedCountryV2: example: regions: - name: California abbreviation: CA - name: California abbreviation: CA isoCountryCode: US currencies: - USD - USD properties: isoCountryCode: description: Valid ISO 3166 2 character country code. See the ISO specification for details. example: US maxLength: 2 minLength: 2 pattern: ^[A-Z]{2}$ title: ISO 3166 2 Character Country Code type: string currencies: items: $ref: '#/components/schemas/IsoCurrency' type: array regions: items: $ref: '#/components/schemas/RegionV2' type: array type: object SupportedCurrencyV2: example: currency: USD maxPaymentAmount: 100000 properties: currency: description: Valid ISO 4217 3 letter currency code. See the ISO specification for details. example: USD maxLength: 3 minLength: 3 pattern: ^[A-Z]{3}$ title: ISO Currency Code type: string maxPaymentAmount: description: The max amount allowed in this currency example: 100000 type: integer type: object Category: description: The notification category. One of "payment", "payee", "debit". enum: - payment - payee - debit type: string UserType_2: enum: - BACKOFFICE - PAYOR - PAYEE example: PAYOR type: string MFADetails: example: mfa_type: TOTP verified: true properties: mfa_type: $ref: '#/components/schemas/MFAType' verified: description: true if the user has used the MFA device for login example: true type: boolean type: object InvitationStatusV3: enum: - ACCEPTED - PENDING - DECLINED type: string PayableIssueV3: description: payable issues for the payee and payor combination example: code: "3" message: payee-disabled properties: code: example: "3" type: string message: example: payee-disabled type: string required: - code - message type: object GetPayeeListResponseIndividualV3: example: name: firstName: Bob lastName: Smith otherNames: H title: Mr properties: name: $ref: '#/components/schemas/NameV3' type: object GetPayeeListResponseCompanyV3: example: name: ABC Group Plc operatingName: ABC Co properties: name: example: ABC Group Plc maxLength: 40 minLength: 1 type: string operatingName: example: ABC Co maxLength: 100 minLength: 1 nullable: true type: string type: object CreatePayeeAddressV3: example: country: US countyOrProvince: FL line4: line4 city: Key West line3: line3 line2: line2 line1: 500 Duval St zipOrPostcode: "33945" properties: line1: example: 500 Duval St maxLength: 100 minLength: 1 nullable: false type: string line2: maxLength: 100 minLength: 0 nullable: true type: string line3: maxLength: 100 minLength: 0 nullable: true type: string line4: maxLength: 100 minLength: 0 nullable: true type: string city: example: Key West maxLength: 50 minLength: 2 nullable: false type: string countyOrProvince: example: FL maxLength: 50 minLength: 2 nullable: true type: string zipOrPostcode: example: "33945" maxLength: 60 minLength: 2 nullable: true type: string country: description: 2 letter ISO 3166-1 country code enum: - AF - AX - AL - DZ - AS - AD - AO - AI - AQ - AG - AR - AM - AW - AU - AT - AZ - BS - BH - BD - BB - BY - BE - BZ - BJ - BM - BT - BO - BQ - BA - BW - BV - BR - IO - BN - BG - BF - BI - KH - CM - CA - CV - KY - CF - TD - CL - CN - CX - CC - CO - KM - CG - CD - CK - CR - CI - HR - CU - CW - CY - CZ - DK - DJ - DM - DO - EC - EG - SV - GQ - ER - EE - ET - FK - FO - FJ - FI - FR - GF - PF - TF - GA - GM - GE - DE - GH - GI - GR - GL - GD - GP - GU - GT - GG - GN - GW - GY - HT - HM - VA - HN - HK - HU - IS - IN - ID - IR - IQ - IE - IM - IL - IT - JM - JP - JE - JO - KZ - KE - KI - KP - KR - KW - KG - LA - LV - LB - LS - LR - LY - LI - LT - LU - MO - MK - MG - MW - MY - MV - ML - MT - MH - MQ - MR - MU - YT - MX - FM - MD - MC - MN - ME - MS - MA - MZ - MM - NA - NR - NP - NL - NC - NZ - NI - NE - NG - NU - NF - MP - NO - OM - PK - PW - PS - PA - PG - PY - PE - PH - PN - PL - PT - PR - QA - RE - RO - RU - RW - BL - SH - KN - LC - MF - PM - VC - WS - SM - ST - SA - SN - RS - SC - SL - SG - SX - SK - SI - SB - SO - ZA - GS - SS - ES - LK - SD - SR - SJ - SZ - SE - CH - SY - TW - TJ - TZ - TH - TL - TG - TK - TO - TT - TN - TR - TM - TC - TV - UG - UA - AE - GB - US - UM - UY - UZ - VU - VE - VN - VG - VI - WF - EH - YE - ZM - ZW example: US maxLength: 2 minLength: 2 nullable: false type: string required: - city - country - line1 type: object CreatePaymentChannelV3: example: paymentChannelName: My Payment Channel routingNumber: XXXXX6789 accountName: My account countryCode: US iban: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1234 currency: USD accountNumber: XXXXXX5678 properties: paymentChannelName: example: My Payment Channel type: string iban: description: Must match the regular expression ```^[A-Za-z0-9]+$```. example: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1234 maxLength: 34 minLength: 15 pattern: ^[A-Za-z0-9]+$ title: IBAN - International Bank Account Number type: string accountNumber: description: Either routing number and account number or only iban must be set example: XXXXXX5678 maxLength: 17 minLength: 6 type: string routingNumber: description: Either routing number and account number or only iban must be set example: XXXXX6789 maxLength: 9 minLength: 9 type: string countryCode: description: Valid ISO 3166 2 character country code. See the ISO specification for details. example: US maxLength: 2 minLength: 2 pattern: ^[A-Z]{2}$ title: ISO 3166 2 Character Country Code type: string currency: description: Valid ISO 4217 3 letter currency code. See the ISO specification for details. example: USD maxLength: 3 minLength: 3 pattern: ^[A-Z]{3}$ title: ISO Currency Code type: string accountName: example: My account type: string required: - accountName - countryCode - currency type: object CreateIndividualV3: example: name: firstName: Bob lastName: Smith otherNames: H title: Mr nationalIdentification: SA211123K dateOfBirth: 1970-05-20T00:00:00.000+0000 properties: name: $ref: '#/components/schemas/CreateIndividualV3_name' nationalIdentification: example: SA211123K maxLength: 30 minLength: 6 type: string dateOfBirth: description: Must not be date in future. Example - 1970-05-20 example: 1970-05-20 format: date type: string required: - dateOfBirth - name type: object FailedPayeeV3: example: payorRefs: - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 address: country: US countyOrProvince: FL line4: line4 city: Key West line3: line3 line2: line2 line1: 500 Duval St zipOrPostcode: "33945" individual: name: firstName: Bob lastName: Smith otherNames: H title: Mr nationalIdentification: SA211123K dateOfBirth: 1970-05-20T00:00:00.000+0000 challenge: description: challenge description value: challenge test language: en-US company: taxId: "123123123" name: ABC Group Plc operatingName: ABC Co payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 email: bob@example.com remoteId: Remote ID paymentChannel: paymentChannelName: My Payment Channel routingNumber: XXXXX6789 accountName: My account countryCode: US iban: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1234 currency: USD accountNumber: XXXXXX5678 properties: payeeId: example: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 format: uuid readOnly: true type: string payorRefs: items: $ref: '#/components/schemas/PayeePayorRefV3' nullable: true readOnly: true type: array email: example: bob@example.com format: email type: string remoteId: example: Remote ID type: string type: $ref: '#/components/schemas/PayeeType_2' address: $ref: '#/components/schemas/CreatePayeeAddressV3' paymentChannel: $ref: '#/components/schemas/CreatePaymentChannelV3' challenge: $ref: '#/components/schemas/ChallengeV3' language: description: | An IETF BCP 47 language code which has been configured for use within this Velo environment.
See the /v1/supportedLanguages endpoint to list the available codes for an environment. example: en-US type: string company: $ref: '#/components/schemas/CompanyV3' individual: $ref: '#/components/schemas/CreateIndividualV3' type: object OnboardedStatusV3_2: enum: - CREATED - INVITED - REGISTERED - ONBOARDED type: string PayableIssueV4: description: payable issues for the payee and payor combination example: code: "3" message: payee-disabled properties: code: example: "3" type: string message: example: payee-disabled type: string required: - code - message type: object GetPayeeListResponseIndividualV4: example: name: firstName: Bob lastName: Smith otherNames: H title: Mr properties: name: $ref: '#/components/schemas/NameV4' type: object GetPayeeListResponseCompanyV4: example: name: ABC Group Plc operatingName: ABC Co properties: name: example: ABC Group Plc maxLength: 40 minLength: 1 type: string operatingName: example: ABC Co maxLength: 100 minLength: 1 nullable: true type: string type: object CreatePayeeAddressV4: example: country: US countyOrProvince: FL line4: line4 city: Key West line3: line3 line2: line2 line1: 500 Duval St zipOrPostcode: "33945" properties: line1: example: 500 Duval St maxLength: 100 minLength: 1 nullable: false type: string line2: maxLength: 100 minLength: 0 nullable: true type: string line3: maxLength: 100 minLength: 0 nullable: true type: string line4: maxLength: 100 minLength: 0 nullable: true type: string city: example: Key West maxLength: 50 minLength: 2 nullable: false type: string countyOrProvince: example: FL maxLength: 50 minLength: 2 nullable: true type: string zipOrPostcode: example: "33945" maxLength: 60 minLength: 2 nullable: true type: string country: description: Valid ISO 3166 2 character country code. See the ISO specification for details. example: US maxLength: 2 minLength: 2 pattern: ^[A-Z]{2}$ title: ISO 3166 2 Character Country Code type: string required: - city - country - line1 type: object CreatePaymentChannelV4: example: paymentChannelName: My Payment Channel routingNumber: XXXXX6789 accountName: My account countryCode: US iban: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1234 currency: USD accountNumber: XXXXXX5678 properties: paymentChannelName: example: My Payment Channel type: string iban: description: Must match the regular expression ```^[A-Za-z0-9]+$```. example: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1234 maxLength: 34 minLength: 15 pattern: ^[A-Za-z0-9]+$ title: IBAN - International Bank Account Number type: string accountNumber: description: Either routing number and account number or only iban must be set example: XXXXXX5678 maxLength: 17 minLength: 6 type: string routingNumber: description: Either routing number and account number or only iban must be set example: XXXXX6789 maxLength: 9 minLength: 9 type: string countryCode: description: Valid ISO 3166 2 character country code. See the ISO specification for details. example: US maxLength: 2 minLength: 2 pattern: ^[A-Z]{2}$ title: ISO 3166 2 Character Country Code type: string currency: description: Valid ISO 4217 3 letter currency code. See the ISO specification for details. example: USD maxLength: 3 minLength: 3 pattern: ^[A-Z]{3}$ title: ISO Currency Code type: string accountName: example: My account type: string required: - accountName - countryCode - currency type: object CreateIndividualV4: example: name: firstName: Bob lastName: Smith otherNames: H title: Mr nationalIdentification: SA211123K dateOfBirth: 1970-05-20T00:00:00.000+0000 properties: name: $ref: '#/components/schemas/CreateIndividualV3_name' nationalIdentification: example: SA211123K maxLength: 30 minLength: 6 type: string dateOfBirth: description: Must not be date in future. Example - 1970-05-20 example: 1970-05-20 format: date type: string required: - dateOfBirth - name type: object FailedPayeeV4: example: payorRefs: - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 - payorId: ba08877f-9d96-41e4-9c26-44a872d856ae invitationStatusTimestamp: 2019-01-20T09:00:00Z payableStatus: true payableIssues: - code: "3" message: payee-disabled - code: "3" message: payee-disabled remoteId: uniqueIdForRemoteEntity paymentChannelId: 70faaff7-2c32-4b44-b27f-f0b6c484e6f3 address: country: US countyOrProvince: FL line4: line4 city: Key West line3: line3 line2: line2 line1: 500 Duval St zipOrPostcode: "33945" individual: name: firstName: Bob lastName: Smith otherNames: H title: Mr nationalIdentification: SA211123K dateOfBirth: 1970-05-20T00:00:00.000+0000 challenge: description: challenge description value: "11984567" language: en-US company: taxId: "123123123" name: ABC Group Plc operatingName: ABC Co payeeId: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 email: bob@example.com remoteId: Remote ID paymentChannel: paymentChannelName: My Payment Channel routingNumber: XXXXX6789 accountName: My account countryCode: US iban: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1234 currency: USD accountNumber: XXXXXX5678 properties: payeeId: example: 2aa5d7e0-2ecb-403f-8494-1865ed0454e9 format: uuid readOnly: true type: string payorRefs: items: $ref: '#/components/schemas/PayeePayorRefV4' nullable: true readOnly: true type: array email: example: bob@example.com format: email type: string remoteId: example: Remote ID type: string type: $ref: '#/components/schemas/PayeeType_2' address: $ref: '#/components/schemas/CreatePayeeAddressV4' paymentChannel: $ref: '#/components/schemas/CreatePaymentChannelV4' challenge: $ref: '#/components/schemas/ChallengeV4' language: description: | An IETF BCP 47 language code which has been configured for use within this Velo environment.
See the /v1/supportedLanguages endpoint to list the available codes for an environment. example: en-US type: string company: $ref: '#/components/schemas/CompanyV4' individual: $ref: '#/components/schemas/CreateIndividualV4' type: object OnboardedStatusV4_2: enum: - CREATED - INVITED - REGISTERED - ONBOARDED type: string FundingEvent: example: principal: principal eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 properties: eventId: format: uuid type: string eventDateTime: format: date-time type: string fundingEventType: $ref: '#/components/schemas/FundingEventType' principal: type: string type: object PayoutStatusV3: enum: - ACCEPTED - REJECTED - SUBMITTED - QUOTED - INSTRUCTED - COMPLETED - INCOMPLETE - CONFIRMED - WITHDRAWN type: string SourceAccountSummaryV3: example: sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 3434 properties: sourceAccountId: format: uuid type: string totalCost: example: 3434 format: int64 type: integer currency: $ref: '#/components/schemas/PaymentAuditCurrencyV3' required: - sourceAccountId - totalCost type: object FxSummaryV3: example: invertedRate: 1.12 rate: 1.12 totalPaymentAmount: 1234 quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 1234 fundingStatus: FUNDED creationDateTime: 2000-01-23T04:56:07.000+00:00 status: UNQUOTED properties: quoteId: format: uuid type: string creationDateTime: format: date-time type: string rate: example: 1.12 format: float type: number invertedRate: example: 1.12 format: float type: number totalCost: example: 1234 type: integer totalPaymentAmount: example: 1234 type: integer sourceCurrency: $ref: '#/components/schemas/PaymentAuditCurrencyV3' paymentCurrency: $ref: '#/components/schemas/PaymentAuditCurrencyV3' status: enum: - UNQUOTED - QUOTED - EXPIRED - EXECUTED type: string fundingStatus: enum: - FUNDED - INSTRUCTED - UNFUNDED type: string required: - creationDateTime - fundingStatus - invertedRate - quoteId - rate - status - totalCost - totalPaymentAmount type: object SourceAccountSummary: example: sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 3344 properties: sourceAccountId: format: uuid type: string totalCost: example: 3344 format: int64 type: integer currency: $ref: '#/components/schemas/PaymentAuditCurrency' required: - sourceAccountId - totalCost type: object FxSummary: example: invertedRate: 123.23 rate: 123.23 totalPaymentAmount: 34235 quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 5 fundingStatus: FUNDED creationDateTime: 2000-01-23T04:56:07.000+00:00 status: UNQUOTED properties: quoteId: format: uuid type: string creationDateTime: format: date-time type: string rate: example: 123.23 format: double type: number invertedRate: example: 123.23 format: double type: number totalCost: type: integer totalPaymentAmount: example: 34235 type: integer sourceCurrency: $ref: '#/components/schemas/PaymentAuditCurrency' paymentCurrency: $ref: '#/components/schemas/PaymentAuditCurrency' status: enum: - UNQUOTED - QUOTED - EXPIRED - EXECUTED type: string fundingStatus: enum: - FUNDED - INSTRUCTED - UNFUNDED type: string required: - creationDateTime - fundingStatus - invertedRate - quoteId - rate - status - totalCost - totalPaymentAmount type: object ScheduleStatus: enum: - SCHEDULED - EXECUTED - FAILED example: SCHEDULED type: string ScheduleStatus_2: enum: - SCHEDULED - EXECUTED - FAILED example: SCHEDULED type: string PayoutPayeeV3: description: Payee data associated with a payment. Either individual or company must be populated example: individual: name: firstName: Fred lastName: Flintstone company: companyName: ACME Anvils PLC payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 properties: payeeId: format: uuid type: string individual: $ref: '#/components/schemas/PayoutIndividualV3' company: $ref: '#/components/schemas/PayoutCompanyV3' required: - payeeId type: object PaymentChannelRule: description: Rules that will get applied when creating or updating a payment channel for the given country example: displayName: Account Name minLength: 5 displayOrder: 0 required: true maxLength: 50 validation: ^[0-9]{6,11}$ element: accountName properties: element: description: |

the rule element

will match a given element name for a payment channel configuration example: accountName type: string required: description: is this element required type: boolean displayName: description: User friendly name example: Account Name type: string minLength: description: mininum length of the element data example: 5 type: integer maxLength: description: maximum length of the element data example: 50 type: integer validation: description: a regex to validate the element data example: ^[0-9]{6,11}$ type: string displayOrder: type: integer required: - displayName - element - required - validation type: object RegionV2: example: name: California abbreviation: CA properties: name: example: California type: string abbreviation: example: CA type: string type: object NameV3: example: firstName: Bob lastName: Smith otherNames: H title: Mr properties: title: example: Mr maxLength: 10 minLength: 1 type: string firstName: example: Bob maxLength: 40 minLength: 1 type: string otherNames: example: H maxLength: 40 minLength: 1 type: string lastName: example: Smith maxLength: 40 minLength: 1 type: string type: object NameV4: example: firstName: Bob lastName: Smith otherNames: H title: Mr properties: title: example: Mr maxLength: 10 minLength: 1 type: string firstName: example: Bob maxLength: 40 minLength: 1 type: string otherNames: example: H maxLength: 40 minLength: 1 type: string lastName: example: Smith maxLength: 40 minLength: 1 type: string type: object FundingEventType: enum: - PAYOR_FUNDING_DETECTED - PAYOR_FUNDING_REQUESTED - PAYOR_FUNDING_RETURN_RECEIVED - FUNDING_RETURN_DETECTED - PAYOR_FUNDING_REQUEST_SUBMITTED - PAYOR_FUNDING_ENTRY_DETAIL_RECEIVED - FUNDING_DEALLOCATED type: string PayoutIndividualV3: example: name: firstName: Fred lastName: Flintstone properties: name: $ref: '#/components/schemas/PayoutNameV3' required: - name type: object PayoutCompanyV3: example: companyName: ACME Anvils PLC properties: companyName: example: ACME Anvils PLC type: string required: - companyName type: object PayoutNameV3: example: firstName: Fred lastName: Flintstone properties: firstName: example: Fred type: string lastName: example: Flintstone type: string required: - firstName - lastName type: object inline_response_401: properties: errors: description: one or more errors items: $ref: '#/components/schemas/Error' minItems: 1 nullable: true type: array correlationId: description: a unique identifier to track a request or related sequence of requests example: ee53e01d-c078-43fd-abd4-47e92f4a06cf format: uuid nullable: true type: string httpStatusCode: description: this will mirror the Status-Code part of the Status-Line http response header and is included for extra clarity example: 401 type: integer inline_response_403: properties: errors: description: one or more errors items: $ref: '#/components/schemas/Error' minItems: 1 nullable: true type: array correlationId: description: a unique identifier to track a request or related sequence of requests example: ee53e01d-c078-43fd-abd4-47e92f4a06cf format: uuid nullable: true type: string httpStatusCode: description: this will mirror the Status-Code part of the Status-Line http response header and is included for extra clarity example: 403 type: integer inline_response_400: properties: errors: description: one or more errors items: $ref: '#/components/schemas/Error' minItems: 1 nullable: true type: array correlationId: description: a unique identifier to track a request or related sequence of requests example: ee53e01d-c078-43fd-abd4-47e92f4a06cf format: uuid nullable: true type: string httpStatusCode: description: this will mirror the Status-Code part of the Status-Line http response header and is included for extra clarity example: 400 type: integer inline_response_404: properties: errors: description: one or more errors items: $ref: '#/components/schemas/Error' minItems: 1 nullable: true type: array correlationId: description: a unique identifier to track a request or related sequence of requests example: ee53e01d-c078-43fd-abd4-47e92f4a06cf format: uuid nullable: true type: string httpStatusCode: description: this will mirror the Status-Code part of the Status-Line http response header and is included for extra clarity example: 404 type: integer inline_response_409: properties: errors: description: one or more errors items: $ref: '#/components/schemas/Error' minItems: 1 nullable: true type: array correlationId: description: a unique identifier to track a request or related sequence of requests example: ee53e01d-c078-43fd-abd4-47e92f4a06cf format: uuid nullable: true type: string httpStatusCode: description: this will mirror the Status-Code part of the Status-Line http response header and is included for extra clarity example: 409 type: integer inline_response_412: properties: errors: description: one or more errors items: $ref: '#/components/schemas/Error' minItems: 1 nullable: true type: array correlationId: description: a unique identifier to track a request or related sequence of requests example: ee53e01d-c078-43fd-abd4-47e92f4a06cf format: uuid nullable: true type: string httpStatusCode: description: this will mirror the Status-Code part of the Status-Line http response header and is included for extra clarity example: 412 type: integer PaymentEvent_allOf: properties: paymentId: description: ID of this payment within the Velo platform example: cbd9280f-8fde-4190-b014-979d88f3ec54 format: uuid type: string payoutPayorIds: $ref: '#/components/schemas/PayoutPayorIds' payorPaymentId: description: ID of this payment in the payors system example: ourpayment-id12345 type: string required: - paymentId PaymentStatusChanged_allOf: properties: status: description: The new status of the payment. One of "SUBMITTED" "ACCEPTED" "REJECTED" "ACCEPTED_BY_RAILS" "CONFIRMED" "RETURNED" "WITHDRAWN" example: ACCEPTED type: string required: - status PaymentRejectedOrReturned_allOf: properties: reasonCode: description: The Velo code that indicates why the payment was rejected or returned example: VE0001 type: string reasonMessage: description: The description of why the payment was rejected or returned example: VE0001 type: string required: - reasonCode - reasonMessage PayeeEvent_allOf_reasons: properties: code: example: "00001" type: string message: example: payment channel disabled type: string required: - code - message PayeeEvent_allOf: properties: payeeId: description: ID of this payee within the Velo platform example: cbd9280f-8fde-4190-b014-979d88f3ec54 format: uuid type: string reasons: description: The reasons for the event notification. items: $ref: '#/components/schemas/PayeeEvent_allOf_reasons' type: array required: - payeeId DebitEvent_allOf: properties: debitTransactionId: description: ID of this debit transaction within the Velo platform example: cbd9280f-8fde-4190-b014-979d88f3ec54 format: uuid type: string required: - debitTransactionId DebitStatusChanged_allOf: properties: status: description: The new status of the debit. One of "PENDING" "PROCESSING" "REJECTED" "RELEASED" example: PENDING type: string required: - status PagedUserResponse_page: example: numberOfElements: 12 totalPages: 2 pageSize: 25 page: 1 totalElements: 33 properties: numberOfElements: example: 12 type: integer totalElements: example: 33 type: integer totalPages: example: 2 type: integer page: example: 1 type: integer pageSize: example: 25 type: integer PagedUserResponse_links: example: rel: first href: https://api.sandbox.velopayments.com/v2/users??type=PAYOR&page=1&pageSize=10 properties: rel: example: first type: string href: example: https://api.sandbox.velopayments.com/v2/users??type=PAYOR&page=1&pageSize=10 type: string PayorLinksResponse_links: example: toPayorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 fromPayorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 linkType: PARENT_OF properties: linkId: format: uuid type: string fromPayorId: format: uuid type: string linkType: enum: - PARENT_OF type: string toPayorId: format: uuid type: string required: - fromPayorId - linkId - linkType - toPayorId PayorLinksResponse_payors: example: payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 kycState: FAILED_KYC primaryContactEmail: primaryContactEmail payorName: payorName properties: payorId: format: uuid type: string payorName: type: string primaryContactEmail: type: string kycState: enum: - FAILED_KYC - PASSED_KYC - REQUIRES_KYC type: string required: - payorId - payorName PagedPayeeResponseV3_summary: example: totalOnboardedCount: 10 totalRegisteredCount: 10 totalPayeesCount: 10 totalInvitedCount: 10 totalWatchlistFailedCount: 0 properties: totalPayeesCount: example: 10 type: integer totalInvitedCount: example: 10 type: integer totalRegisteredCount: example: 10 type: integer totalOnboardedCount: example: 10 type: integer totalWatchlistFailedCount: example: 0 type: integer PagedPayeeResponseV3_page: example: numberOfElements: 10 totalPages: 10 pageSize: 10 page: 10 totalElements: 10 properties: numberOfElements: example: 10 type: integer totalElements: example: 10 type: integer totalPages: example: 10 type: integer page: example: 10 type: integer pageSize: example: 10 type: integer PagedPayeeResponseV3_links: example: rel: rel href: href properties: rel: type: string href: type: string CreatePayeesCSVResponseV3_rejectedCsvRows: example: rejectedContent: unable,to,process,csv,line lineNumber: 3 message: rejected message 1 properties: lineNumber: example: 3 type: integer rejectedContent: example: unable,to,process,csv,line type: string message: example: rejected message 1 type: string PagedPayeeInvitationStatusResponseV3_page: example: numberOfElements: 0 totalPages: 1 pageSize: 5 page: 5 totalElements: 6 properties: numberOfElements: type: integer totalElements: type: integer totalPages: type: integer page: type: integer pageSize: type: integer PayeeDeltaResponseV3_page: example: numberOfElements: 2 totalPages: 1 pageSize: 25 page: 1 totalElements: 2 properties: numberOfElements: example: 2 type: integer totalElements: example: 2 type: integer totalPages: example: 1 type: integer page: example: 1 type: integer pageSize: example: 25 type: integer PayeeDeltaResponseV3_links: example: rel: first href: http://api.sandbox.velopayments.com/v3/payees/deltas?payorId=0a818933-087d-47f2-ad83-2f986ed087eb&updatedSince=2019-01-20T09:00:00+00:00&page=1&pageSize=1000 properties: rel: example: first type: string href: example: http://api.sandbox.velopayments.com/v3/payees/deltas?payorId=0a818933-087d-47f2-ad83-2f986ed087eb&updatedSince=2019-01-20T09:00:00+00:00&page=1&pageSize=1000 type: string PayeeDeltaResponseV4_links: example: rel: first href: http://api.sandbox.velopayments.com/v4/payees/deltas?payorId=0a818933-087d-47f2-ad83-2f986ed087eb&updatedSince=2019-01-20T09:00:00+00:00&page=1&pageSize=1000 properties: rel: example: first type: string href: example: http://api.sandbox.velopayments.com/v4/payees/deltas?payorId=0a818933-087d-47f2-ad83-2f986ed087eb&updatedSince=2019-01-20T09:00:00+00:00&page=1&pageSize=1000 type: string ListSourceAccountResponse_page: example: numberOfElements: 1 totalPages: 2 pageSize: 25 page: 1 totalElements: 1 properties: numberOfElements: example: 1 type: integer totalElements: example: 1 type: integer totalPages: example: 2 type: integer page: example: 1 type: integer pageSize: example: 25 type: integer ListSourceAccountResponse_links: example: rel: first href: https://api.sandbox.velopayments.com/v1/sourceAccounts?payorId=a2967711-df07-41e5-b5ea-f563088911c6&page=1&pageSize=0&sort=fundingRef:asc properties: rel: example: first type: string href: example: https://api.sandbox.velopayments.com/v1/sourceAccounts?payorId=a2967711-df07-41e5-b5ea-f563088911c6&page=1&pageSize=0&sort=fundingRef:asc type: string ListSourceAccountResponseV2_links: example: rel: first href: https://api.sandbox.velopayments.com/v2/sourceAccounts?payorId=a2967711-df07-41e5-b5ea-f563088911c6&page=1&pageSize=0&sort=fundingRef:asc properties: rel: example: first type: string href: example: https://api.sandbox.velopayments.com/v2/sourceAccounts?payorId=a2967711-df07-41e5-b5ea-f563088911c6&page=1&pageSize=0&sort=fundingRef:asc type: string ListSourceAccountResponseV3_links: example: rel: first href: https://api.sandbox.velopayments.com/v3/sourceAccounts?payorId=a2967711-df07-41e5-b5ea-f563088911c6&page=1&pageSize=0&sort=fundingRef:asc properties: rel: example: first type: string href: example: https://api.sandbox.velopayments.com/v3/sourceAccounts?payorId=a2967711-df07-41e5-b5ea-f563088911c6&page=1&pageSize=0&sort=fundingRef:asc type: string GetFundingsResponse_links: example: rel: first href: https://api.sandbox.velopayments.com/v1/paymentaudit/fundings?payorId=2a5d8af2-a1ed-4d7f-b9a7-ebe4b333be5a&page=1&pageSize=10 properties: rel: example: first type: string href: example: https://api.sandbox.velopayments.com/v1/paymentaudit/fundings?payorId=2a5d8af2-a1ed-4d7f-b9a7-ebe4b333be5a&page=1&pageSize=10 type: string GetPayoutsResponseV3_page: example: numberOfElements: 12 totalPages: 123 pageSize: 25 page: 1 totalElements: 123 properties: numberOfElements: example: 12 type: integer totalElements: example: 123 type: integer totalPages: example: 123 type: integer page: example: 1 type: integer pageSize: example: 25 type: integer GetPayoutsResponseV3_links: example: rel: first href: https://example.com properties: rel: example: first type: string href: example: https://example.com type: string GetPaymentsForPayoutResponseV3_summary: example: incompletePayments: 123 confirmedPayments: 123 releasedPayments: 123 submittedDateTime: 2000-01-23T04:56:07.000+00:00 payoutStatus: ACCEPTED withdrawnDateTime: 2000-01-23T04:56:07.000+00:00 totalPayments: 123 instructedDateTime: 2000-01-23T04:56:07.000+00:00 payoutMemo: Payment Memo value failedPayments: 0 properties: payoutStatus: description: The current status of the payout. enum: - ACCEPTED - REJECTED - SUBMITTED - QUOTED - INSTRUCTED - COMPLETED - INCOMPLETE - CONFIRMED - WITHDRAWN type: string submittedDateTime: description: The date/time at which the payout was submitted. format: date-time type: string instructedDateTime: description: The date/time at which the payout was instructed. format: date-time type: string withdrawnDateTime: description: The date/time at which the payout was withdrawn. format: date-time type: string payoutMemo: description: The memo attached to the payout. example: Payment Memo value type: string totalPayments: description: The count of payments within the payout. example: 123 type: integer confirmedPayments: description: The count of payments within the payout which have been confirmed. example: 123 type: integer releasedPayments: description: The count of payments within the payout which have been released. example: 123 type: integer incompletePayments: description: The count of payments within the payout which are incomplete. example: 123 type: integer failedPayments: description: The count of payments within the payout which have failed or been returned. example: 0 type: integer GetPaymentsForPayoutResponseV3_page: example: numberOfElements: 12 totalPages: 10 pageSize: 25 page: 1 totalElements: 12 properties: numberOfElements: example: 12 type: integer totalElements: example: 12 type: integer totalPages: example: 10 type: integer page: example: 1 type: integer pageSize: example: 25 type: integer ListPaymentsResponseV3_page: example: numberOfElements: 12 totalPages: 12 pageSize: 25 page: 1 totalElements: 12 properties: numberOfElements: example: 12 type: integer totalElements: example: 12 type: integer totalPages: example: 12 type: integer page: example: 1 type: integer pageSize: example: 25 type: integer GetPaymentsForPayoutResponseV4_summary: example: withdrawnPayments: 2 submitting: principal: principal principalId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 dbaName: dbaName payorName: payorName confirmedPayments: 6 releasedPayments: 1 withdrawn: principal: principal principalId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalPayments: 0 payoutFrom: principal: principal principalId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 dbaName: dbaName payorName: payorName payoutTo: principal: principal principalId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 dbaName: dbaName payorName: payorName quoted: principal: principal principalId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 instructed: principal: principal principalId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 schedule: scheduledFor: 2000-01-23T04:56:07.000+00:00 scheduleStatus: SCHEDULED notificationsEnabled: true scheduledBy: Aphra Behn scheduledByPrincipalId: 8946953b-1e3b-49cf-9da4-b704cbb78f3e scheduledAt: 2000-01-23T04:56:07.000+00:00 incompletePayments: 5 submittedDateTime: 2000-01-23T04:56:07.000+00:00 quotedDateTime: 2000-01-23T04:56:07.000+00:00 withdrawnDateTime: 2000-01-23T04:56:07.000+00:00 returnedPayments: 5 instructedDateTime: 2000-01-23T04:56:07.000+00:00 payoutMemo: payoutMemo properties: payoutStatus: $ref: '#/components/schemas/PayoutStatus' submittedDateTime: description: The date/time at which the payout was submitted. format: date-time type: string instructedDateTime: description: The date/time at which the payout was instructed. format: date-time type: string withdrawnDateTime: format: date-time type: string quotedDateTime: description: The date/time at which the payout was quoted. format: date-time type: string payoutMemo: description: The memo attached to the payout. type: string totalPayments: description: The count of payments within the payout. type: integer confirmedPayments: description: The count of payments within the payout which have been confirmed. type: integer releasedPayments: description: The count of payments within the payout which have been released. type: integer incompletePayments: description: The count of payments within the payout which are incomplete. type: integer returnedPayments: description: The count of payments within the payout which have been returned. type: integer withdrawnPayments: description: The count of payments within the payout which have been withdrawn. type: integer payoutType: $ref: '#/components/schemas/PayoutType' submitting: $ref: '#/components/schemas/PayoutPayor' payoutFrom: $ref: '#/components/schemas/PayoutPayor' payoutTo: $ref: '#/components/schemas/PayoutPayor' quoted: $ref: '#/components/schemas/PayoutPrincipal' instructed: $ref: '#/components/schemas/PayoutPrincipal' withdrawn: $ref: '#/components/schemas/PayoutPrincipal' schedule: $ref: '#/components/schemas/PayoutSchedule' PaymentResponseV4_payout: example: payoutId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payoutFrom: principal: principal principalId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 dbaName: dbaName payorName: payorName payoutTo: principal: principal principalId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 dbaName: dbaName payorName: payorName properties: payoutId: format: uuid type: string payoutFrom: $ref: '#/components/schemas/PayoutPayor' payoutTo: $ref: '#/components/schemas/PayoutPayor' IndividualV3_name: example: firstName: Bob lastName: Smith otherNames: A title: Mr properties: title: example: Mr maxLength: 10 minLength: 1 type: string firstName: example: Bob maxLength: 40 minLength: 1 type: string otherNames: example: A maxLength: 40 minLength: 1 type: string lastName: example: Smith maxLength: 40 minLength: 1 type: string required: - firstName - lastName CreateIndividualV3_name: example: firstName: Bob lastName: Smith otherNames: H title: Mr properties: title: example: Mr maxLength: 10 minLength: 1 type: string firstName: example: Bob maxLength: 40 minLength: 1 type: string otherNames: example: H maxLength: 40 minLength: 1 type: string lastName: example: Smith maxLength: 40 minLength: 1 type: string required: - firstName - lastName securitySchemes: OAuth2: description: This API uses OAuth 2 with the Client Credentials grant flow. [More info](https://www.oauth.com/oauth2-servers/access-tokens/client-credentials) flows: clientCredentials: scopes: ' ': Scopes not required tokenUrl: https://api.sandbox.velopayments.com/v1/login type: oauth2 basicAuth: scheme: basic type: http oAuthVeloBackOffice: description: This API uses OAuth 2 with the implicit grant flow. Authenticated user must have backoffice role [More info](https://api.example.com/docs/auth) flows: clientCredentials: scopes: ' ': Scopes not required tokenUrl: https://api.sandbox.velopayments.com/oauth/token type: oauth2 x-tagGroups: - name: Payor Operations tags: - Payors - Funding Manager - Webhooks - Payins - name: Payee Operations tags: - Payees - Payee Invitation - Invites - name: Payouts tags: - Payout Service - name: Reporting tags: - Payment Audit Service - name: Auth tags: - Login - Users - Tokens - name: API Utilities tags: - Currencies - Countries - name: Legal tags: - Legal x-webhooks: veloWebhookNotification: post: summary: Webhook notifications description: The webhook notifications that are sent to the payor's configured webhook endpoint URL tags: - Webhooks operationId: veloWebhook requestBody: content: application/json: schema: $ref: '#/components/schemas/Notification' responses: 200: description: A successful response indicates that the notification has been received by the customers system. Any other http status will result in the notification being retried.