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.27.128 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. Use HTTP Basic Auth. String value of Basic and a Base64 endcoded 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. Basic 44a9537d-d55d-4b47-8082-14061c2bcdd8:c396b26b-137a-44fd-87f5-34631f8fd529 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: 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/v1/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/v1/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/PayeeDetailResponse' 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/WatchlistStatus' - 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/OnboardedStatus' - 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' - 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/PagedPayeeResponse' 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: v3CreatePayee requestBody: content: application/json: schema: $ref: '#/components/schemas/CreatePayeesRequest' multipart/form-data: schema: properties: payorId: format: uuid type: string file: description: CSV File of payee data items: $ref: '#/components/schemas/CreatePayeesCSVRequest' 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/CreatePayeesCSVResponse' 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/QueryBatchResponse' 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/InvitePayeeRequest' 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/InvitationStatus' - 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/PagedPayeeInvitationStatusResponse' 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/PayeeDeltaResponse' 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/UpdateRemoteIdRequest' 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/UpdatePayeeDetailsRequest' 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/PayeeDetailResponse_2' 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.
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/UpdatePayeeDetailsRequest_2' 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/UpdateRemoteIdRequest_2' 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/WatchlistStatus' - 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/OnboardedStatus' - 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' - 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/OfacStatus' - 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/PagedPayeeResponse_2' 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/CreatePayeesRequest_2' multipart/form-data: schema: properties: payorId: format: uuid type: string file: description: CSV File of payee data items: $ref: '#/components/schemas/CreatePayeesCSVRequest_2' 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/CreatePayeesCSVResponse_2' 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/QueryBatchResponse_2' 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/InvitePayeeRequest_2' 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/InvitationStatus' - 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/PagedPayeeInvitationStatusResponse_2' 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/PayeeDeltaResponse_2' 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/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/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
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: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 refresh_token: IwOGYzYTlmM2YxOTQ5MGE3YmNmMDFkNTVk scope: example_scope token_type: bearer expires_in: 1799 entityIds: - entityIds - entityIds properties: access_token: format: uuid 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 payeeIdIf 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 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 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 email: foo@example.com secondaryContactNumber: "11235555550" status: ENABLED - lastName: Doe 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 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 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 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 roles: description: | The role(s) for the user example: - payor.admin items: $ref: '#/components/schemas/Role' minItems: 1 type: array 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: - payor.admin smsNumber: "11235555555" entityId: 7fffa261-ac68-49e6-b605-d24a444d9206 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: backoffice.admin, payor.master_admin, payor.admin, payor.support example: - 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 null if the user is not a payor user example: 7fffa261-ac68-49e6-b605-d24a444d9206 format: uuid nullable: true 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
address:
country: US
countyOrProvince: FL
line4: line4
city: Key West
line3: line3
line2: line2
line1: 500 Duval St
zipOrPostcode: "33945"
includesReports: true
allowsLanguageChoice: true
language: EN
dbaName: Some Biz
primaryContactPhone: 123-123-1234
payeeGracePeriodDays: 0
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
wuCustomerId: wuCustomerId
remoteSystemIds:
- REMOTE_SYSTEM_ID
- REMOTE_SYSTEM_ID
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
payorXid:
description: A unique identifier that an external system uses to reference
the payor in their system
example: ABC_201234
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
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
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.
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
PayeeDetailResponse:
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/OnboardedStatus_2'
watchlistStatus:
$ref: '#/components/schemas/WatchlistStatus'
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'
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/PayeeAddress'
individual:
$ref: '#/components/schemas/Individual'
company:
$ref: '#/components/schemas/Company'
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/Challenge'
type: object
WatchlistStatus:
enum:
- NONE
- PENDING
- REVIEW
- PASSED
- FAILED
type: string
OnboardedStatus:
enum:
- CREATED
- INVITED
- REGISTERED
- ONBOARDED
type: string
PayeeType:
description: The type of the payee
enum:
- Individual
- Company
type: string
PagedPayeeResponse:
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/PagedPayeeResponse_summary'
page:
$ref: '#/components/schemas/PagedPayeeResponse_page'
links:
items:
$ref: '#/components/schemas/PagedPayeeResponse_links'
type: array
content:
items:
$ref: '#/components/schemas/GetPayeeListResponse'
type: array
type: object
CreatePayeesRequest:
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/CreatePayee'
type: array
required:
- payees
- payorId
type: object
CreatePayeesCSVRequest:
properties:
type:
$ref: '#/components/schemas/PayeeType'
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: Must be a 2 character country code - per ISO 3166-1
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
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]+$
type: string
paymentChannelCountryCode:
description: Must be a 2 character country code - per ISO 3166-1
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
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
CreatePayeesCSVResponse:
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/CreatePayeesCSVResponse_rejectedCsvRows'
type: array
type: object
QueryBatchResponse:
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/FailedSubmission'
type: array
type: object
InvitePayeeRequest:
example:
payorId: 9ac75325-5dcd-42d5-b992-175d7e0a035e
properties:
payorId:
example: 9ac75325-5dcd-42d5-b992-175d7e0a035e
format: uuid
type: string
required:
- payorId
type: object
InvitationStatus:
enum:
- ACCEPTED
- PENDING
- DECLINED
type: string
PagedPayeeInvitationStatusResponse:
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/PagedPayeeInvitationStatusResponse_page'
links:
items:
$ref: '#/components/schemas/PagedPayeeResponse_links'
type: array
content:
items:
$ref: '#/components/schemas/PayeeInvitationStatusResponse'
type: array
type: object
PayeeDeltaResponse:
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/PayeeDeltaResponse_page'
links:
items:
$ref: '#/components/schemas/PayeeDeltaResponse_links'
type: array
content:
items:
$ref: '#/components/schemas/PayeeDelta'
type: array
type: object
UpdateRemoteIdRequest:
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
UpdatePayeeDetailsRequest:
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/PayeeAddress'
individual:
$ref: '#/components/schemas/Individual'
company:
$ref: '#/components/schemas/Company'
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'
challenge:
$ref: '#/components/schemas/Challenge'
email:
example: bob@example.com
format: email
nullable: true
type: string
type: object
PayeeDetailResponse_2:
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/PayeePayorRef'
nullable: true
readOnly: true
type: array
email:
example: bob@example.com
format: email
nullable: true
type: string
onboardedStatus:
$ref: '#/components/schemas/OnboardedStatus'
watchlistStatus:
$ref: '#/components/schemas/WatchlistStatus_2'
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'
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/PayeeAddress_2'
individual:
$ref: '#/components/schemas/Individual_2'
company:
$ref: '#/components/schemas/Company_2'
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/Challenge_2'
type: object
UpdatePayeeDetailsRequest_2:
properties:
address:
$ref: '#/components/schemas/PayeeAddress_2'
individual:
$ref: '#/components/schemas/Individual_2'
company:
$ref: '#/components/schemas/Company_2'
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'
challenge:
$ref: '#/components/schemas/Challenge_2'
email:
example: bob@example.com
format: email
nullable: true
type: string
type: object
UpdateRemoteIdRequest_2:
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
OfacStatus:
enum:
- PENDING
- PASSED
- FAILED
type: string
PagedPayeeResponse_2:
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/PagedPayeeResponse_summary'
page:
$ref: '#/components/schemas/PagedPayeeResponse_page'
links:
items:
$ref: '#/components/schemas/PagedPayeeResponse_links'
type: array
content:
items:
$ref: '#/components/schemas/GetPayeeListResponse_2'
type: array
type: object
CreatePayeesRequest_2:
properties:
payorId:
example: 9ac75325-5dcd-42d5-b992-175d7e0a035e
type: string
payees:
items:
$ref: '#/components/schemas/CreatePayee_2'
type: array
required:
- payees
- payorId
type: object
CreatePayeesCSVRequest_2:
properties:
type:
$ref: '#/components/schemas/PayeeType'
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: Must be a 2 character country code - per ISO 3166-1
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
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]+$
type: string
paymentChannelCountryCode:
description: Must be a 2 character country code - per ISO 3166-1
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
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
CreatePayeesCSVResponse_2:
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/CreatePayeesCSVResponse_rejectedCsvRows'
type: array
type: object
QueryBatchResponse_2:
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/FailedSubmission_2'
type: array
type: object
InvitePayeeRequest_2:
properties:
payorId:
example: 9ac75325-5dcd-42d5-b992-175d7e0a035e
format: uuid
type: string
required:
- payorId
type: object
PagedPayeeInvitationStatusResponse_2:
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/PagedPayeeInvitationStatusResponse_page'
links:
items:
$ref: '#/components/schemas/PagedPayeeResponse_links'
type: array
content:
items:
$ref: '#/components/schemas/PayeeInvitationStatusResponse_2'
type: array
type: object
PayeeDeltaResponse_2:
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/PayeeDeltaResponse_page'
links:
items:
$ref: '#/components/schemas/PayeeDeltaResponse_2_links'
type: array
content:
items:
$ref: '#/components/schemas/PayeeDelta_2'
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/PagedPayeeInvitationStatusResponse_page'
links:
items:
$ref: '#/components/schemas/PagedPayeeResponse_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/PagedPayeeInvitationStatusResponse_page'
links:
items:
$ref: '#/components/schemas/PagedPayeeResponse_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:
- principal: principal
eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
eventDateTime: 2000-01-23T04:56:07.000+00:00
routingNumber: routingNumber
accountName: accountName
iban: iban
sourceAmount: 1299
eventType: PAYOUT_SUBMITTED
accountNumber: accountNumber
paymentAmount: 1299
- principal: principal
eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
eventDateTime: 2000-01-23T04:56:07.000+00:00
routingNumber: routingNumber
accountName: accountName
iban: iban
sourceAmount: 1299
eventType: PAYOUT_SUBMITTED
accountNumber: accountNumber
paymentAmount: 1299
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:
- principal: principal
eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
eventDateTime: 2000-01-23T04:56:07.000+00:00
routingNumber: routingNumber
accountName: accountName
iban: iban
sourceAmount: 1299
eventType: PAYOUT_SUBMITTED
accountNumber: accountNumber
paymentAmount: 1299
- principal: principal
eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
eventDateTime: 2000-01-23T04:56:07.000+00:00
routingNumber: routingNumber
accountName: accountName
iban: iban
sourceAmount: 1299
eventType: PAYOUT_SUBMITTED
accountNumber: accountNumber
paymentAmount: 1299
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/PagedPayeeInvitationStatusResponse_page'
links:
items:
$ref: '#/components/schemas/PagedPayeeResponse_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:
- principal: principal
eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
eventDateTime: 2000-01-23T04:56:07.000+00:00
routingNumber: routingNumber
accountName: accountName
iban: iban
sourceAmount: 1299
eventType: PAYOUT_SUBMITTED
accountNumber: accountNumber
paymentAmount: 1299
- principal: principal
eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
eventDateTime: 2000-01-23T04:56:07.000+00:00
routingNumber: routingNumber
accountName: accountName
iban: iban
sourceAmount: 1299
eventType: PAYOUT_SUBMITTED
accountNumber: accountNumber
paymentAmount: 1299
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:
- principal: principal
eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
eventDateTime: 2000-01-23T04:56:07.000+00:00
routingNumber: routingNumber
accountName: accountName
iban: iban
sourceAmount: 1299
eventType: PAYOUT_SUBMITTED
accountNumber: accountNumber
paymentAmount: 1299
- principal: principal
eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
eventDateTime: 2000-01-23T04:56:07.000+00:00
routingNumber: routingNumber
accountName: accountName
iban: iban
sourceAmount: 1299
eventType: PAYOUT_SUBMITTED
accountNumber: accountNumber
paymentAmount: 1299
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:
- principal: principal
eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
eventDateTime: 2000-01-23T04:56:07.000+00:00
routingNumber: routingNumber
accountName: accountName
iban: iban
sourceAmount: 1299
eventType: PAYOUT_SUBMITTED
accountNumber: accountNumber
paymentAmount: 1299
- principal: principal
eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
eventDateTime: 2000-01-23T04:56:07.000+00:00
routingNumber: routingNumber
accountName: accountName
iban: iban
sourceAmount: 1299
eventType: PAYOUT_SUBMITTED
accountNumber: accountNumber
paymentAmount: 1299
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/PagedPayeeInvitationStatusResponse_page'
links:
items:
$ref: '#/components/schemas/PagedPayeeResponse_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/PagedPayeeInvitationStatusResponse_page' links: items: $ref: '#/components/schemas/PagedPayeeResponse_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/PagedPayeeInvitationStatusResponse_page' links: items: $ref: '#/components/schemas/PagedPayeeResponse_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/InvitationStatus_2' 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/PayableIssue' type: array type: object OnboardedStatus_2: enum: - CREATED - INVITED - REGISTERED - ONBOARDED type: string Language: description: | An IETF BCP 47 language code which has been configured for use within this Velo environment.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 InvitationStatus_2: enum: - ACCEPTED - PENDING - DECLINED type: string PayableIssue: 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 GetPayeeListResponseIndividual: example: name: firstName: Bob lastName: Smith otherNames: H title: Mr properties: name: $ref: '#/components/schemas/Name' type: object GetPayeeListResponseCompany: 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 CreatePayeeAddress: 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 CreatePaymentChannel: 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]+$```. Either routing number and account number or only iban must be set example: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX1234 maxLength: 34 minLength: 15 pattern: ^[A-Za-z0-9]+$ 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: Two character 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 type: string currency: enum: - USD - GBP - EUR type: string accountName: example: My account type: string required: - accountName - countryCode - currency type: object CreateIndividual: 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/CreateIndividual_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 FailedPayee: 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' address: $ref: '#/components/schemas/CreatePayeeAddress' paymentChannel: $ref: '#/components/schemas/CreatePaymentChannel' challenge: $ref: '#/components/schemas/Challenge' language: description: | An IETF BCP 47 language code which has been configured for use within this Velo environment.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 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 RegionV2: example: name: California abbreviation: CA properties: name: example: California type: string abbreviation: example: CA type: string type: object 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 type: object Name_2: 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 PagedPayeeResponse_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 PagedPayeeResponse_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 PagedPayeeResponse_links: example: rel: rel href: href properties: rel: type: string href: type: string CreatePayeesCSVResponse_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 PagedPayeeInvitationStatusResponse_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 PayeeDeltaResponse_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 PayeeDeltaResponse_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 PayeeDeltaResponse_2_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' Individual_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 CreateIndividual_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.