openapi: 3.0.1 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.11.69 x-logo: url: https://velopayments.com/images/velo-logo.svg servers: - description: Velo Payments Sandbox for testing url: https://api.sandbox.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 payment history to payees. name: Payments - description: APIs which allows you to work with payees invited to the Velo Platform. name: Invites - 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/payors/{payorId}: get: description: | Get a Single Payor by Id (200 - OK, 404 - payor not found). operationId: getPayorById parameters: - description: The account owner Payor ID in: path name: payorId required: true schema: format: uuid type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/Payor' description: Get Payor Details x-contracts: - contractId: 1 body: payorId: 0a818933-087d-47f2-ad83-2f986ed087eb 404: description: Payor Id Not Found x-contracts: - contractId: 2 summary: Get Payor tags: - Payors x-contracts: - contractId: 1 name: Test Good Response contractPath: /v1/payors/0a818933-087d-47f2-ad83-2f986ed087eb - contractId: 2 name: Test Not Found contractPath: /v1/payors/00000000-0000-0000-0000-000000000000 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' /v1/payors/{payorId}/payorFundingBankDetailsUpdate: post: description: | This API allows you to set or update the funding details for the given Payor ID. operationId: setPayorFundingBankDetails parameters: - description: The account owner Payor ID in: path name: payorId required: true schema: format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/PayorFundingBankDetailsUpdate' description: Update Funding bank details of given Payor Id required: true x-contracts: - contractId: 1 headers: Content-Type: application/json body: routingNumber: "123456789" accountNumber: "12345" accountName: Robert C. Smith matchers: headers: - key: Content-Type regex: application/json.* body: - path: $.routingNumber type: by_regex predefined: non_empty - path: $.accountNumber type: by_regex predefined: non_empty - path: $.accountName type: by_regex predefined: non_empty responses: 202: description: HTTP Accepted x-contracts: - contractId: 1 400: description: Invalid Request Body 403: description: Not Authorized 404: description: Payor Id Not Found summary: Set Funding Bank Details tags: - Funding Manager x-contracts: - contractId: 1 name: Set Funding Bank Details contractPath: /v1/payors/0a818933-087d-47f2-ad83-2f986ed087eb/payorFundingBankDetailsUpdate x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v1/payors/c64b31d1-d553-4205-ac22-b57020a9c7db/payorFundingBankDetailsUpdate' -i -X POST \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer 1d1e3d28-0d6a-4d45-b250-9962a2c545db' \ -d '{"routingNumber":"123456789","accountNumber":"12345","accountName":"Robert C. Smith"}' /v1/payors/{payorId}/applications: post: description: Create an application for the given Payor ID operationId: payorCreateApplicationRequest parameters: - description: The account owner 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: description: invalid request body or payor in invalid state 404: description: Payor not found. 409: description: Application name conflict summary: Create Application tags: - Payor Applications x-contracts: - contractId: 1 name: Test Create Application contractPath: /v1/payors/835ac62e-616c-4261-bf38-63366db78c0d/applications 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"}' /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 account owner 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: example: | HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 Content-Length: 111 { "apiKey" : "385d4506-e7dd-446e-a092-5f30b98e7b26", "apiSecret" : "f25767d9-342a-48ac-a788-0a7a38ae6fb3" } 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: description: Invalid Request Body or Payor in invalid state 404: description: Payor Id Not Found summary: Create API Key tags: - Payor Applications 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 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"]}' /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 account owner Payor ID in: path name: payorId required: true schema: format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/PayorEmailOptOutRequest' description: Details of application API key to create required: true responses: 202: description: HTTP Accepted 400: description: Invalid Request Body 404: description: Payor Id Not Found 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}' /v1/payors/{payorId}/branding/logos: post: description: Add Payor Logo operationId: payorAddPayorLogo parameters: - description: The account owner 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: description: Invalid Request Body 404: description: Payor Id Not Found 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 account owner Payor ID in: path name: payorId required: true schema: format: uuid type: string responses: 200: content: application/json: example: | HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 Content-Length: 221 { "payorName" : "Payor1", "logoUrl" : "https://s3-us-west-2.amazonaws.com/velopayments-branding/test/logo.png", "collectiveAlias" : "customer", "supportContact" : "support@mycorp.com", "dbaName" : "my company" } 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: description: Invalid Request Body or Payor in invalid state 404: description: Payor Id Not Found x-contracts: - contractId: 2 summary: Get Branding tags: - Payors 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 - 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 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' /v1/payees: get: description: Get a paginated response listing the payees for a payor. operationId: listPayees 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 ofacStatus of the payees. in: query name: ofacStatus required: false schema: $ref: '#/components/schemas/OfacStatus' - 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: format: email type: string - description: The display name of the payees. in: query name: displayName required: false schema: type: string - description: The remote id of the payees. in: query name: remoteId required: false schema: 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 payees. in: query name: payeeCountry 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: Page size. Default is 25. Max allowable is 100. in: query name: pageSize required: false schema: default: 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 pattern: '[a-zA-Z]+[:desc|:asc]' type: string responses: 200: content: application/json: example: | { "page" : { "numberOfElements" : 2, "totalElements" : 45, "totalPages" : 23, "page" : 9, "pageSize" : 2 }, "links" : [ { "rel" : "first", "href" : "https://api.sandbox.velopayments.com/v1/payees?payorId=1982b223-73b7-419d-a2e1-e64362b0ee8b&page=1&pageSize=2&sort=displayName:asc" }, { "rel" : "last", "href" : "https://api.sandbox.velopayments.com/v1/payees?payorId=1982b223-73b7-419d-a2e1-e64362b0ee8b&page=23&pageSize=2&sort=displayName:asc" }, { "rel" : "self", "href" : "https://api.sandbox.velopayments.com/v1/payees?payorId=1982b223-73b7-419d-a2e1-e64362b0ee8b&page=9&pageSize=2&sort=displayName:asc" }, { "rel" : "prev", "href" : "https://api.sandbox.velopayments.com/v1/payees?payorId=1982b223-73b7-419d-a2e1-e64362b0ee8b&page=8&pageSize=2&sort=displayName:asc" }, { "rel" : "next", "href" : "https://api.sandbox.velopayments.com/v1/payees?payorId=1982b223-73b7-419d-a2e1-e64362b0ee8b&page=10&pageSize=2&sort=displayName:asc" } ], "content" : [ { "payeeId" : "ee2cc9a1-34dd-4ab6-91e3-db111d08d995", "payorRefs" : [ { "payorId" : "13322f2a-8edb-41ef-aab4-9b070317a51a", "remoteId" : "remoteId" } ], "displayName" : null, "email" : "bob@example.com", "individual" : { "name" : { "title" : "Mr", "firstName" : "Barney", "otherNames" : "Grubb", "lastName" : "Cuthbert" } }, "onboardedStatus" : "CREATED", "ofacStatus" : "PENDING" }, { "payeeId" : "e904966e-ae6a-4ddd-879c-fd1167c21849", "payorRefs" : [ { "payorId" : "13322f2a-8edb-41ef-aab4-9b070317a51a", "remoteId" : "remoteId" } ], "displayName" : null, "email" : "bob@example.com", "individual" : { "name" : { "title" : "Mr", "firstName" : "Barney", "otherNames" : "Grubb", "lastName" : "Cuthbert" } }, "onboardedStatus" : "CREATED", "ofacStatus" : "PENDING" } ] } schema: $ref: '#/components/schemas/PayeeResponse' 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/v1/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 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 - path: $.content[0].email type: by_regex predefined: email - path: $.content[0].created type: by_regex value: ([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9]).([0-9]{6})Z - path: $.content[0].payorRefs[0].payorId type: by_regex predefined: uuid 400: description: Bad Request 404: description: Not Found summary: List Payees tags: - Payees x-contracts: - contractId: 1 name: Test List Payees request: queryParameters: - key: page value: 1 - key: pageSize value: 30 x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v1/payees?pageSize=2&page=8&payorId=9cade13d-0c55-41a7-9e6d-164e8b138b40&ofacStatus=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' /v1/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: deletePayeeById parameters: - description: The UUID of the payee. in: path name: payeeId required: true schema: format: uuid type: string responses: 204: description: No content. Payee Id accepted for deletion. 400: description: Bad Request. Payee Id failed validation for deletion. summary: Delete Payee by Id tags: - Payees get: description: Get Payee by Id operationId: getPayeeById parameters: - description: The UUID of the payee. in: path name: payeeId required: true schema: format: uuid type: string - description: | Optional. If omitted or set to false, any Personal Identifiable Information (PII) values are returned masked. If set to true, and you have permission, the PII values will be returned as their original unmasked values. in: query name: sensitive required: false schema: type: boolean responses: 200: content: application/json: schema: $ref: '#/components/schemas/Payee' description: 200 response, request completed okay 404: description: Payee Not found summary: Get Payee by Id tags: - Payees /v2/payees: 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, 409 - if there is a duplicate remote id within the batch / if there is a duplicate email within the batch). operationId: v2CreatePayee 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. required: true 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,The Country,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,The Country,,,,,,,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: Content-Type: application/json Location: https://api.sandbox.velopayments.com/v2/payees/batch/dbe7df3a-6b75-4bcb-97c5-45d25f828267 matchers: headers: - key: Location type: by_regex predefined: url - key: Content-Type regex: application/json.* - contractId: 2 headers: Content-Type: application/json Location: https://api.sandbox.velopayments.com/v2/payees/batch/dbe7df3a-6b75-4bcb-97c5-45d25f828267 matchers: headers: - key: Location type: by_regex predefined: url - key: Content-Type regex: application/json.* 400: description: Bad Request summary: Intiate Payee Creation tags: - Payee Invitation x-contracts: - contractId: 1 name: Create Payees by JSON - contractId: 2 name: Create Payees by CSV x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v2/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"}]}' /v2/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: v2QueryBatchStatus 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 summary: Query Batch Status tags: - Payee Invitation x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v2/payees/batch/6a84cb4c-9e6e-4499-8964-2ce5fd051de2' -i -X GET \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer f01caad1-5ae5-454d-9467-5053e459fe45' /v1/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: resendPayeeInvite parameters: - description: The UUID of the payee. in: path name: payeeId required: true schema: format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/InvitePayeeRequest' required: true responses: 200: content: application/json: schema: $ref: '#/components/schemas/InvitationStatusResponse' description: 200 response, request completed okay 404: description: Not Found 409: description: Conflict summary: Resend Payee Invite tags: - Payee Invitation x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v1/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"}' /v1/payees/payors/{payorId}/invitationStatus: get: description: | Returns a list of payees associated with a payor, along with invitation status and grace period end date. operationId: getPayor parameters: - description: The account owner Payor ID in: path name: payorId required: true schema: format: uuid type: string responses: 200: content: application/json: schema: $ref: '#/components/schemas/InvitationStatusResponse' description: Get Payor Details summary: Get Payee Invitation Status tags: - Payee Invitation x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v1/payees/payors/77f84ae9-42df-49d7-941b-47360347f86f/invitationStatus' -i -X GET \ -H 'Authorization: Bearer ed73aa9a-b51b-44cb-a8e9-11e2fb85046b' /v1/sourceAccounts: description: List Source Accounts get: 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: Page size. Default is 25. Max allowable is 100. in: query name: pageSize required: false schema: default: 25 format: int32 type: integer - description: Sort String in: query name: sort required: false schema: type: string responses: 200: content: application/json: example: | HTTP/1.1 200 OK Content-Length: 1455 Content-Type: application/json;charset=UTF-8 { "page" : { "numberOfElements" : 2, "totalElements" : 2, "totalPages" : 1, "page" : 1, "pageSize" : 0 }, "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" : "last", "href" : "https://api.sandbox.velopayments.com/v1/sourceAccounts?payorId=a2967711-df07-41e5-b5ea-f563088911c6&page=1&pageSize=0&sort=fundingRef:asc" }, { "rel" : "self", "href" : "https://api.sandbox.velopayments.com/v1/sourceAccounts?payorId=a2967711-df07-41e5-b5ea-f563088911c6&page=1&pageSize=0&sort=fundingRef:asc" } ], "content" : [ { "id" : "ee53e01d-c078-43fd-abd4-47e92f4a06cf", "balance" : 1203489, "currency" : "USD", "fundingRef" : "a1b2c3d4", "physicalAccountName" : "VELO_FBO_MYBANKA_USD", "railsId" : "SIM", "payorId" : "a2967711-df07-41e5-b5ea-f563088911c6", "name" : "mySourceAccount", "pooled" : true, "balanceVisible" : true, "customerId" : null }, { "id" : "a587c938-e497-4349-8817-129a5e801f30", "balance" : 1203489, "currency" : "USD", "fundingRef" : "a1b2c3d4", "physicalAccountName" : "VELO_FBO_MYBANKA_USD", "railsId" : "SIM", "payorId" : "a2967711-df07-41e5-b5ea-f563088911c6", "name" : "mySourceAccount", "pooled" : true, "balanceVisible" : true, "customerId" : null } ] } schema: $ref: '#/components/schemas/ListSourceAccountResponse' description: List Source Account response 400: description: Invalid Request Parameters 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: 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: example: | HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 Content-Length: 356 { "id" : "414ad313-51b4-4d93-82b2-0a40963d95ba", "balance" : 1203489, "currency" : "USD", "fundingRef" : "a1b2c3d4", "physicalAccountName" : "VELO_FBO_MYBANKA_USD", "railsId" : "SIM", "payorId" : "a2967711-df07-41e5-b5ea-f563088911c6", "name" : "mySourceAccount", "pooled" : true, "balanceVisible" : true, "customerId" : "123456789" } schema: $ref: '#/components/schemas/SourceAccountResponse' description: Source account response 400: description: Bad Request, Invalid path parameter 404: description: Not found 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 /v2/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: 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/FundingRequest' description: Body to included ammount to be funded required: true responses: 202: content: application/json: example: | HTTP/1.1 202 Accepted description: Request Accepted 400: description: Invalid Request Body 404: description: Source Account Not Found 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}' /v1/paymentaudit/fundings: get: description: | Get a list of Fundings for a payor. operationId: getFundings parameters: - 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: Page size. Default is 25. Max allowable is 100. in: query name: pageSize required: false schema: default: 25 format: int32 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: description: Bad Request 404: description: Payor Id Not Found summary: Get Fundings for Payor tags: - Payment Audit Service - Funding Manager 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' /v3/paymentaudit/payouts: get: description: | Get List of payouts for payor operationId: getPayoutsForPayor 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: Page size. Default is 25. Max allowable is 100. in: query name: pageSize required: false schema: default: 25 format: int32 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/GetPayoutsResponse' description: Payor data found 400: description: Invalid Request Parameter 404: description: Payor Id Not Found summary: Get Payouts for Payor tags: - Payment Audit Service x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v3/paymentaudit/payouts?payorId=449aa6c3-0569-47f6-a430-a470040da67c' -i -X GET \ -H 'Authorization: Bearer a9d9247d-5e30-4cea-a6e1-0898534ce768' /v3/paymentaudit/payouts/{payoutId}: get: description: | Get List of payments for Payout operationId: getPaymentsForPayout parameters: - description: The id (UUID) of the payout. in: path name: payoutId required: true schema: format: uuid type: string - description: The remote id of the payees. in: query name: remoteId required: false schema: type: string - description: Payment Status in: query name: status required: false schema: enum: - ACCEPTED - AWAITING_FUNDS - FUNDED - UNFUNDED - BANK_PAYMENT_REQUESTED - REJECTED - ACCEPTED_BY_RAILS - CONFIRMED - FAILED - WITHDRAWN type: string - description: The source amount from range filter. Filters for sourceAmount >= sourceAmountFrom in: query name: sourceAmountFrom required: false schema: format: int32 type: integer - description: The source amount to range filter. Filters for sourceAmount ⇐ sourceAmountTo in: query name: sourceAmountTo required: false schema: format: int32 type: integer - description: The payment amount from range filter. Filters for paymentAmount >= paymentAmountFrom in: query name: paymentAmountFrom required: false schema: format: int32 type: integer - description: The payment amount to range filter. Filters for paymentAmount ⇐ paymentAmountTo in: query name: paymentAmountTo required: false schema: format: int32 type: integer - description: The submitted date from range filter. Format is yyyy-MM-dd. in: query name: submittedDateFrom required: false schema: format: date type: string - description: The submitted date to range filter. Format is yyyy-MM-dd. in: query name: submittedDateTo required: false schema: format: date type: string - description: Page number. Default is 1. in: query name: page required: false schema: default: 1 format: int32 type: integer - description: Page size. Default is 25. Max allowable is 100. in: query name: pageSize required: false schema: default: 25 format: int32 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/GetPaymentsForPayoutResponse' description: 200 response, data found okay 400: description: Invalid Request Parameter 404: description: Payout Id Not Found summary: Get Payments for Payout tags: - Payment Audit Service - Payout History 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: description: Get payments for the given payor Id operationId: listPaymentsAudit 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 - 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 source 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: Page size. Default is 25. Max allowable is 100. in: query name: pageSize required: false schema: default: 25 format: int32 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/ListPaymentsResponse' description: Details of Payee 400: description: Bad Request Parameter summary: Get List of Payments tags: - Payment Audit Service /v3/paymentaudit/payments/{paymentId}: get: description: | Get the payment with the given id. This contains the payment history. operationId: getPaymentDetails parameters: - description: Payment Id in: path name: paymentId required: true schema: format: uuid type: string - description: | Optional. If omitted or set to false, any Personal Identifiable Information (PII) values are returned masked. If set to true, and you have permission, the PII values will be returned as their original unmasked values. in: query name: sensitive required: false schema: type: boolean responses: 200: content: application/json: schema: $ref: '#/components/schemas/PaymentResponse' description: 200 response, request completed okay 404: description: Payment Id Not Found summary: Get Payment tags: - Payment Audit Service x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v1/paymentaudit/payments/c3a422c2-12ac-4416-84fe-964221bd9815' -i \ -H 'Authorization: Bearer 67a1b299-69b1-4fdf-a576-96b81199a2b9' /v1/paymentaudit/payoutStatistics: get: description: Get payout statistics for a payor. operationId: getPayoutStats 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: List Source Account response 400: description: Bad Request 404: description: Not Found summary: Get Payout Statistics tags: - Payout History 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' /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: exportTransactionsCSV parameters: - description: The account owner Payor ID 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: Start date, inclusive. Format is YYYY-MM-DD in: query name: submittedDateFrom required: false schema: format: date type: string responses: 200: content: application/csv: schema: type: string description: Export Transactions response 204: description: No Content 400: description: invalid Request 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 of which 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: submitPayout requestBody: content: application/json: schema: $ref: '#/components/schemas/CreatePayoutRequest' multipart/form-data: schema: properties: payorId: 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/PaymentInstruction' type: array type: object description: Post ammount to transfer via ACH 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: description: Bad Request 404: description: Not Found 503: description: Service Unavailable summary: Submit Payout tags: - Submit Payout 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 '{"payorId":"ef7da492-e5a5-4086-b1ed-6d27323fc669","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 delete payout details from payout service and rails services but will just move the status of the payout to WITHDRAWN in payment audit. parameters: - description: Id of the payout in: path name: payoutId required: true schema: format: uuid type: string responses: 202: description: HTTP 202 Accepted 404: description: Not Found summary: Withdraw Payout tags: - Withdraw Payout 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. parameters: - description: Id of the payout in: path name: payoutId required: true schema: format: uuid type: string responses: 200: content: application/json: example: | HTTP/1.1 200 OK Content-Length: 1586 Content-Type: application/json;charset=UTF-8 { "payoutId" : "e547b83b-37d7-4f39-b4d0-dd65c224609d", "status" : "QUOTED", "paymentsSubmitted" : 5, "paymentsAccepted" : 3, "paymentsRejected" : 2, "fxSummaries" : [ { "quoteId" : "c005696c-14e6-4d5c-a96c-666bf0711f62", "expiryTime" : "2019-02-01T10:32:22.045Z", "creationTime" : "2019-02-01T10:31:22.045Z", "rate" : 1.1599, "invertedRate" : 0.8621, "totalSourceAmount" : 1160, "totalPaymentAmount" : 1000, "sourceCurrency" : "USD", "paymentCurrency" : "EUR", "status" : "QUOTED", "fundingStatus" : "UNFUNDED" }, { "quoteId" : "c005696c-14e6-4d5c-a96c-666bf0711f62", "expiryTime" : "2019-02-01T10:32:22.045Z", "creationTime" : "2019-02-01T10:31:22.045Z", "rate" : 1.3267, "invertedRate" : 0.7537, "totalSourceAmount" : 3980, "totalPaymentAmount" : 3000, "sourceCurrency" : "USD", "paymentCurrency" : "GBP", "status" : "QUOTED", "fundingStatus" : "UNFUNDED" } ], "accounts" : [ { "sourceAccountName" : "source account 1", "sourceAccountId" : "2db02c2f-ad14-4737-9f02-87903df03a83", "currency" : "USD", "totalPayoutCost" : 51 } ], "rejectedPayments" : [ { "remoteId" : "myRemoteId03", "currencyType" : "EUR", "amount" : 1245, "sourceAccountName" : "source account 1", "payorPaymentId" : "Ref001", "reason" : "UNKNOWN_REMOTE_ID" }, { "remoteId" : "myRemoteId04", "currencyType" : "GBP", "amount" : 2999, "sourceAccountName" : "source account 1", "payorPaymentId" : "Ref001", "reason" : "COMPLIANCE_ISSUE" } ] } schema: $ref: '#/components/schemas/PayoutSummaryResponse' description: Details of Payout 404: description: Not Found summary: Get Payout Summary tags: - Get Payout 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' post: description: Instruct a payout to be made for the specified payoutId. parameters: - description: Id of the payout in: path name: payoutId required: true schema: format: uuid type: string responses: 202: description: HTTP 202 Accepted 404: description: Not Found 409: description: Conflict summary: Instruct Payout tags: - Instruct Payout 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 parameters: - description: Id of the payout in: path name: payoutId required: true schema: format: uuid type: string responses: 200: content: application/json: example: | HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 Content-Length: 354 { "fxSummaries" : [ { "quoteId" : "cf5007a0-2c51-4187-9581-837c0345b060", "expiryTime" : "2019-02-01T10:32:21.754Z", "creationTime" : "2019-02-01T10:31:21.754Z", "rate" : 1.1599, "invertedRate" : 0.8621, "totalSourceAmount" : 11, "totalPaymentAmount" : 10, "sourceCurrency" : "USD", "paymentCurrency" : "EUR" } ] } schema: $ref: '#/components/schemas/QuoteResponse' description: Quote for payout 404: description: Not Found 409: description: Conflict summary: Create a quote for the payout tags: - Quote Payout 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' /v1/paymentChannelRules: get: description: List the country specific payment channel rules. responses: 200: content: application/json: example: |- HTTP/1.1 200 OK Content-Length: 2158 Content-Type: application/json;charset=UTF-8 { "bank" : [ { "isoCountryCode" : "US", "rules" : [ { "element" : "accountName", "required" : true, "displayName" : "Account Holder Name", "minLength" : 1, "maxLength" : 100, "validation" : "^.*$", "displayOrder" : 1 }, { "element" : "accountNumber", "required" : true, "displayName" : "Account Number", "minLength" : 6, "maxLength" : 11, "validation" : "^[0-9]{6,11}$", "displayOrder" : 3 }, { "element" : "routingNumber", "required" : true, "displayName" : "Routing Number", "minLength" : 9, "maxLength" : 9, "validation" : "^[0-9]{9}$", "displayOrder" : 2 }, { "element" : "paymentChannelName", "required" : false, "displayName" : "Payment Channel Name", "minLength" : 1, "maxLength" : 20, "validation" : "^.*$" }, { "element" : "currency", "required" : true, "displayName" : "Currency", "minLength" : 3, "maxLength" : 3, "validation" : "^[A-Z]{3}$" } ] }, { "isoCountryCode" : "GB", "rules" : [ { "element" : "accountName", "required" : true, "displayName" : "Account Holder Name", "minLength" : 1, "maxLength" : 100, "validation" : "^.*$", "displayOrder" : 1 }, { "element" : "accountNumber", "required" : true, "displayName" : "Account Number", "minLength" : 8, "maxLength" : 8, "validation" : "^[0-9]{8}$", "displayOrder" : 3 }, { "element" : "routingNumber", "required" : true, "displayName" : "Sort Code", "minLength" : 6, "maxLength" : 6, "validation" : "^[0-9]{6}$", "displayOrder" : 2 }, { "element" : "paymentChannelName", "required" : false, "displayName" : "Payment Channel Name", "minLength" : 1, "maxLength" : 20, "validation" : "^.*$" }, { "element" : "currency", "required" : true, "displayName" : "Currency", "minLength" : 3, "maxLength" : 3, "validation" : "^[A-Z]{3}$" } ] } ] } schema: $ref: '#/components/schemas/PaymentChannelRulesResponse' description: List Payment Channel Country Rules 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/supportedCountries: get: description: List the supported countries. operationId: listSupportedCountries responses: 200: content: application/json: example: |- HTTP/1.1 200 OK Content-Length: 347 Content-Type: application/json;charset=UTF-8 { "countries" : [ { "isoCountryCode" : "US", "currencies" : [ "USD" ] }, { "isoCountryCode" : "GB", "currencies" : [ "GBP" ] }, { "isoCountryCode" : "FR", "currencies" : [ "EUR" ] }, { "isoCountryCode" : "CA", "currencies" : [ "CAD" ] }, { "isoCountryCode" : "JP", "currencies" : [ "JPY" ] } ] } schema: $ref: '#/components/schemas/SupportedCountriesResponse' description: List of Supported Countries 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/currencies: get: description: List the supported currencies. operationId: listSupportedCurrencies responses: 200: content: application/json: example: |- HTTP/1.1 200 OK Content-Length: 938 Content-Type: application/json;charset=UTF-8 { "currencies" : [ { "currency" : "AUD", "maxPaymentAmount" : 1000 }, { "currency" : "CAD", "maxPaymentAmount" : 1000 }, { "currency" : "CHF", "maxPaymentAmount" : 1000 }, { "currency" : "CNY", "maxPaymentAmount" : 1000 }, { "currency" : "EUR", "maxPaymentAmount" : 1000 }, { "currency" : "GBP", "maxPaymentAmount" : 1000 }, { "currency" : "ILS", "maxPaymentAmount" : 1000 }, { "currency" : "JPY", "maxPaymentAmount" : 1000 }, { "currency" : "MXN", "maxPaymentAmount" : 1000 }, { "currency" : "NOK", "maxPaymentAmount" : 1000 }, { "currency" : "PHP", "maxPaymentAmount" : 1000 }, { "currency" : "SGD", "maxPaymentAmount" : 1000 }, { "currency" : "THB", "maxPaymentAmount" : 1000 }, { "currency" : "USD", "maxPaymentAmount" : 1000 }, { "currency" : "ZAR", "maxPaymentAmount" : 1000 } ] } schema: $ref: '#/components/schemas/SupportedCurrencyResponse' description: List Supported Currencies summary: List Supported Currencies tags: - Currencies x-code-samples: - lang: shell source: | $ curl 'https://api.sandbox.velopayments.com/v2/currencies' -i -X GET \ -H 'Authorization: Bearer 2f661796-3b13-467b-82c0-faf0f0721294' components: schemas: PayorCreateApiKeyResponse: example: apiKey: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 apiSecret: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 properties: apiKey: description: API Key format: uuid type: string apiSecret: description: API Secret format: uuid type: string type: object CreatePayoutRequest: example: |- { "payorId":"ef7da492-e5a5-4086-b1ed-6d27323fc669", "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"}] } properties: payorId: format: uuid type: string payoutMemo: type: string payments: items: $ref: '#/components/schemas/PaymentInstruction' maxItems: 2000 minItems: 1 type: array required: - payments - payorId type: object Company: example: taxId: taxId name: name nullable: true properties: name: maxLength: 40 minLength: 1 type: string taxId: description: Company Tax Id (EIN) must be 9 numeric characters. Must match the regular expression ```[\d]{9}```. nullable: true pattern: ^[\d]{9}$ type: string required: - name type: object PaymentChannelCountry: example: isoCountryCode: isoCountryCode rules: - displayName: displayName minLength: 0 displayOrder: 1 required: true maxLength: 6 validation: validation element: element - displayName: displayName minLength: 0 displayOrder: 1 required: true maxLength: 6 validation: validation element: element properties: isoCountryCode: type: string rules: items: $ref: '#/components/schemas/PaymentChannelRule' type: array type: object Address: example: country: country countyOrProvince: countyOrProvince line4: line4 city: city line3: line3 line2: line2 line1: line1 zipOrPostcode: zipOrPostcode properties: line1: maxLength: 255 minLength: 2 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: maxLength: 100 minLength: 2 type: string countyOrProvince: maxLength: 100 minLength: 2 nullable: true type: string zipOrPostcode: maxLength: 30 minLength: 2 nullable: true type: string country: maxLength: 50 minLength: 2 type: string required: - city - country - line1 type: object InvitationStatusResponse: example: payeeInvitationStatuses: - payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 gracePeriodEndDate: 2000-01-23 invitationStatus: ACCEPTED - payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 gracePeriodEndDate: 2000-01-23 invitationStatus: ACCEPTED properties: payeeInvitationStatuses: items: $ref: '#/components/schemas/PayeeInvitationStatus' type: array required: - payeeInvitationStatuses type: object PaymentChannelRule: example: displayName: displayName minLength: 0 displayOrder: 1 required: true maxLength: 6 validation: validation element: element properties: element: type: string required: type: boolean displayName: type: string minLength: type: integer maxLength: type: integer validation: type: string displayOrder: type: integer type: object PayorCreateApiKeyRequest: example: roles: - payor.admin - payor.admin - payor.admin - payor.admin - payor.admin - payor.admin - payor.admin - payor.admin - payor.admin - payor.admin name: name description: description properties: name: description: A name for the key. maxLength: 100 minLength: 2 type: string description: description: Description of the key. maxLength: 1024 minLength: 2 type: string roles: description: A list of roles to assign to the key. items: description: Name of role enum: - payor.admin - payor.support type: string maxItems: 10 minItems: 1 type: array required: - name - roles type: object QuoteFxSummary: example: invertedRate: 5.63737665663332876420099637471139430999755859375 creationTime: 2000-01-23T04:56:07.000+00:00 rate: 5.962133916683182377482808078639209270477294921875 expiryTime: 2000-01-23T04:56:07.000+00:00 sourceCurrency: sourceCurrency totalPaymentAmount: 7 paymentCurrency: paymentCurrency quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalSourceAmount: 2 fundingStatus: fundingStatus status: status properties: rate: format: decimal type: number invertedRate: format: decimal type: number creationTime: format: date-time type: string expiryTime: format: date-time type: string quoteId: format: uuid type: string totalSourceAmount: type: integer totalPaymentAmount: type: integer sourceCurrency: maxLength: 3 minLength: 3 type: string paymentCurrency: maxLength: 3 minLength: 3 type: string fundingStatus: type: string status: type: string required: - creationTime - paymentCurrency - quoteId - rate - sourceCurrency - totalPaymentAmount - totalSourceAmount type: object QueryBatchResponse: example: failures: - failedSubmission: payorRefs: - payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 invitationStatus: invitationStatus remoteId: remoteId - payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 invitationStatus: invitationStatus remoteId: remoteId country: country cellphoneNumber: cellphoneNumber address: country: country countyOrProvince: countyOrProvince line4: line4 city: city line3: line3 line2: line2 line1: line1 zipOrPostcode: zipOrPostcode individual: name: firstName: firstName lastName: lastName otherNames: otherNames title: title nationalIdentification: "" dateOfBirth: "" social: facebookId: facebookId twitterId: twitterId linkedInId: linkedInId displayName: displayName created: 2000-01-23T04:56:07.000+00:00 lastOfacCheckTimestamp: lastOfacCheckTimestamp gracePeriodEndDate: 2000-01-23 paymentChannel: paymentChannelName: paymentChannelName routingNo: routingNo accountName: accountName countryCode: countryCode iban: iban currency: USD accountNumber: accountNumber marketingOptIns: - optedIn: true timestamp: 2000-01-23T04:56:07.000+00:00 - optedIn: true timestamp: 2000-01-23T04:56:07.000+00:00 challenge: description: description value: value company: taxId: taxId name: name payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 email: email acceptTermsAndConditionsTimestamp: 2000-01-23T04:56:07.000+00:00 failureMessage: failureMessage - failedSubmission: payorRefs: - payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 invitationStatus: invitationStatus remoteId: remoteId - payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 invitationStatus: invitationStatus remoteId: remoteId country: country cellphoneNumber: cellphoneNumber address: country: country countyOrProvince: countyOrProvince line4: line4 city: city line3: line3 line2: line2 line1: line1 zipOrPostcode: zipOrPostcode individual: name: firstName: firstName lastName: lastName otherNames: otherNames title: title nationalIdentification: "" dateOfBirth: "" social: facebookId: facebookId twitterId: twitterId linkedInId: linkedInId displayName: displayName created: 2000-01-23T04:56:07.000+00:00 lastOfacCheckTimestamp: lastOfacCheckTimestamp gracePeriodEndDate: 2000-01-23 paymentChannel: paymentChannelName: paymentChannelName routingNo: routingNo accountName: accountName countryCode: countryCode iban: iban currency: USD accountNumber: accountNumber marketingOptIns: - optedIn: true timestamp: 2000-01-23T04:56:07.000+00:00 - optedIn: true timestamp: 2000-01-23T04:56:07.000+00:00 challenge: description: description value: value company: taxId: taxId name: name payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 email: email acceptTermsAndConditionsTimestamp: 2000-01-23T04:56:07.000+00:00 failureMessage: failureMessage pendingCount: 6 failureCount: 0 status: SUBMITTED properties: status: description: Batch Status enum: - SUBMITTED - ACCEPTED type: string failureCount: format: int32 type: integer pendingCount: format: int32 type: integer failures: items: $ref: '#/components/schemas/FailedSubmission' type: array type: object PaymentChannelRulesResponse: example: bank: - isoCountryCode: isoCountryCode rules: - displayName: displayName minLength: 0 displayOrder: 1 required: true maxLength: 6 validation: validation element: element - displayName: displayName minLength: 0 displayOrder: 1 required: true maxLength: 6 validation: validation element: element - isoCountryCode: isoCountryCode rules: - displayName: displayName minLength: 0 displayOrder: 1 required: true maxLength: 6 validation: validation element: element - displayName: displayName minLength: 0 displayOrder: 1 required: true maxLength: 6 validation: validation element: element properties: bank: items: $ref: '#/components/schemas/PaymentChannelCountry' type: array type: object PayorLogoRequest: properties: logo: format: binary type: string type: object CreatePaymentChannel: example: paymentChannelName: paymentChannelName routingNumber: routingNumber accountName: accountName countryCode: countryCode iban: iban currency: USD accountNumber: accountNumber properties: paymentChannelName: 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 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 maxLength: 17 minLength: 6 type: string routingNumber: description: Either routing number and account number or only iban must be set maxLength: 9 minLength: 9 type: string countryCode: description: Two character country code maxLength: 2 minLength: 2 type: string currency: enum: - USD - GBP - EUR type: string accountName: type: string required: - accountName - countryCode - currency type: object SupportedCurrency: example: currency: currency maxPaymentAmount: 0 properties: currency: description: ISO Currency Code type: string maxPaymentAmount: type: integer type: object PayeeType: enum: - Individual - Company type: string PaymentAuditCurrency: description: ISO 3 character currency code enum: - USD - GBP - EUR maxLength: 3 minLength: 3 type: string FxSummary: example: invertedRate: 2.3021358869347654518833223846741020679473876953125 rate: 5.63737665663332876420099637471139430999755859375 totalPaymentAmount: 9 quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 7 fundingStatus: FUNDED creationDateTime: 2000-01-23T04:56:07.000+00:00 status: UNQUOTED properties: quoteId: format: uuid type: string creationDateTime: format: date-time type: string rate: format: double type: number invertedRate: format: double type: number totalCost: type: integer totalPaymentAmount: type: integer sourceCurrency: $ref: '#/components/schemas/PaymentAuditCurrency' paymentCurrency: $ref: '#/components/schemas/PaymentAuditCurrency' status: enum: - UNQUOTED - QUOTED - EXPIRED - EXECUTED type: string fundingStatus: enum: - FUNDED - INSTRUCTED - UNFUNDED type: string required: - creationDateTime - fundingStatus - invertedRate - quoteId - rate - status - totalCost - totalPaymentAmount type: object GetPaymentsForPayoutResponse_page: example: numberOfElements: 2 totalPages: 9 pageSize: 2 page: 3 totalElements: 7 properties: numberOfElements: type: integer totalElements: type: integer totalPages: type: integer page: type: integer pageSize: type: integer QuoteResponse: example: fxSummaries: - invertedRate: 5.63737665663332876420099637471139430999755859375 creationTime: 2000-01-23T04:56:07.000+00:00 rate: 5.962133916683182377482808078639209270477294921875 expiryTime: 2000-01-23T04:56:07.000+00:00 sourceCurrency: sourceCurrency totalPaymentAmount: 7 paymentCurrency: paymentCurrency quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalSourceAmount: 2 fundingStatus: fundingStatus status: status - invertedRate: 5.63737665663332876420099637471139430999755859375 creationTime: 2000-01-23T04:56:07.000+00:00 rate: 5.962133916683182377482808078639209270477294921875 expiryTime: 2000-01-23T04:56:07.000+00:00 sourceCurrency: sourceCurrency totalPaymentAmount: 7 paymentCurrency: paymentCurrency quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalSourceAmount: 2 fundingStatus: fundingStatus status: status properties: fxSummaries: items: $ref: '#/components/schemas/QuoteFxSummary' type: array type: object GetPayoutStatistics: example: thisMonthFailedPaymentsCount: 6 thisMonthPayoutsCount: 0 properties: thisMonthPayoutsCount: type: integer thisMonthFailedPaymentsCount: type: integer required: - thisMonthFailedPaymentsCount - thisMonthPayoutsCount type: object PayorCreateApplicationRequest: example: name: name description: description properties: name: description: The name of the application. maxLength: 100 minLength: 2 type: string description: description: Description of the application. maxLength: 1024 minLength: 2 type: string required: - name type: object PayoutStatus: enum: - ACCEPTED - REJECTED - SUBMITTED - QUOTED - INSTRUCTED - COMPLETED - INCOMPLETE - CONFIRMED - WITHDRAWN type: string GetFundingsResponse: allOf: - $ref: '#/components/schemas/PagedResponse' - properties: content: $ref: '#/components/schemas/FundingAudit' type: object type: object RejectedPayment: example: currencyType: currencyType reason: UNKNOWN_REMOTE_ID amount: 3 payorPaymentId: payorPaymentId lineNumber: 2 message: message remoteId: remoteId sourceAccountName: sourceAccountName properties: remoteId: type: string currencyType: type: string amount: type: integer sourceAccountName: type: string payorPaymentId: type: string reason: enum: - UNKNOWN_REMOTE_ID - UNKNOWN_SOURCE_ACCOUNT - UNSUPPORTED_CURRENCY - PAYMENT_VALUE_TOO_HIGH - UNSUPPORTED_COUNTRY - UNSUPPORTED_CURRENCY_FOR_COUNTRY - PAYEE_NOT_ONBOARDED - COMPLIANCE_ISSUE - DUPLICATE_PAYOR_PAYMENT_ID - CURRENCY_MISMATCH - DECLINED_INVITE - PENDING_INVITE - BADLY_FORMED_DATA_ROW - OTHER type: string lineNumber: type: integer message: type: string required: - amount - currencyType - payorPaymentId - reason - remoteId - sourceAccountName type: object FundingRequest: example: amount: 800828191 properties: amount: description: Amount to fund, decimal implied maximum: 9999999999 minimum: 1 type: integer required: - amount type: object GetPaymentsForPayoutResponse: description: List Payments for payout example: summary: totalOnboardedCount: 5 totalRegisteredCount: 1 totalPayeesCount: 0 totalInvitedCount: 6 totalOfacFailedCount: 5 links: - rel: rel href: href - rel: rel href: href page: numberOfElements: 2 totalPages: 9 pageSize: 2 page: 3 totalElements: 7 content: - traceNumber: traceNumber accountName: accountName paymentMemo: paymentMemo paymentAmount: 6 fundingStatus: FUNDED paymentChannelName: paymentChannelName filenameReference: filenameReference rate: 1.46581298050294517310021547018550336360931396484375 paymentId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 countryCode: countryCode returnReason: returnReason submittedDateTime: 2000-01-23T04:56:07.000+00:00 sourceAmount: 0 railsId: railsId 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: 5.63737665663332876420099637471139430999755859375 eventType: PAYOUT_SUBMITTED accountNumber: accountNumber paymentAmount: 2.3021358869347654518833223846741020679473876953125 - principal: principal eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 routingNumber: routingNumber accountName: accountName iban: iban sourceAmount: 5.63737665663332876420099637471139430999755859375 eventType: PAYOUT_SUBMITTED accountNumber: accountNumber paymentAmount: 2.3021358869347654518833223846741020679473876953125 payorName: payorName sourceAccountName: sourceAccountName paymentChannelId: paymentChannelId invertedRate: 5.962133916683182377482808078639209270477294921875 sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 individualIdentificationNumber: individualIdentificationNumber accountNumber: accountNumber quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 remoteId: remoteId routingNumber: routingNumber returnCost: 7 iban: iban payorPaymentId: payorPaymentId status: ACCEPTED - traceNumber: traceNumber accountName: accountName paymentMemo: paymentMemo paymentAmount: 6 fundingStatus: FUNDED paymentChannelName: paymentChannelName filenameReference: filenameReference rate: 1.46581298050294517310021547018550336360931396484375 paymentId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 countryCode: countryCode returnReason: returnReason submittedDateTime: 2000-01-23T04:56:07.000+00:00 sourceAmount: 0 railsId: railsId 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: 5.63737665663332876420099637471139430999755859375 eventType: PAYOUT_SUBMITTED accountNumber: accountNumber paymentAmount: 2.3021358869347654518833223846741020679473876953125 - principal: principal eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 routingNumber: routingNumber accountName: accountName iban: iban sourceAmount: 5.63737665663332876420099637471139430999755859375 eventType: PAYOUT_SUBMITTED accountNumber: accountNumber paymentAmount: 2.3021358869347654518833223846741020679473876953125 payorName: payorName sourceAccountName: sourceAccountName paymentChannelId: paymentChannelId invertedRate: 5.962133916683182377482808078639209270477294921875 sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 individualIdentificationNumber: individualIdentificationNumber accountNumber: accountNumber quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 remoteId: remoteId routingNumber: routingNumber returnCost: 7 iban: iban payorPaymentId: payorPaymentId status: ACCEPTED properties: summary: $ref: '#/components/schemas/GetPaymentsForPayoutResponse_summary' page: $ref: '#/components/schemas/GetPaymentsForPayoutResponse_page' links: items: $ref: '#/components/schemas/GetPaymentsForPayoutResponse_links' type: array content: items: $ref: '#/components/schemas/PaymentResponse' type: array type: object CreatePayee: example: payorRefs: - payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 invitationStatus: invitationStatus remoteId: remoteId - payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 invitationStatus: invitationStatus remoteId: remoteId country: country cellphoneNumber: cellphoneNumber address: country: country countyOrProvince: countyOrProvince line4: line4 city: city line3: line3 line2: line2 line1: line1 zipOrPostcode: zipOrPostcode individual: name: firstName: firstName lastName: lastName otherNames: otherNames title: title nationalIdentification: "" dateOfBirth: "" social: facebookId: facebookId twitterId: twitterId linkedInId: linkedInId displayName: displayName created: 2000-01-23T04:56:07.000+00:00 lastOfacCheckTimestamp: lastOfacCheckTimestamp type: Individual gracePeriodEndDate: 2000-01-23 remoteId: remoteId paymentChannel: paymentChannelName: paymentChannelName routingNumber: routingNumber accountName: accountName countryCode: countryCode iban: iban currency: USD accountNumber: accountNumber marketingOptIns: - optedIn: true timestamp: 2000-01-23T04:56:07.000+00:00 - optedIn: true timestamp: 2000-01-23T04:56:07.000+00:00 challenge: description: description value: value company: taxId: taxId name: name payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 email: email acceptTermsAndConditionsTimestamp: 2000-01-23T04:56:07.000+00:00 properties: payeeId: format: uuid readOnly: true type: string payorRefs: items: $ref: '#/components/schemas/PayorRef' nullable: true readOnly: true type: array email: format: email maxLength: 244 minLength: 3 nullable: true type: string remoteId: maxLength: 100 minLength: 1 type: string type: enum: - Individual - Company type: string displayName: type: string country: type: string address: $ref: '#/components/schemas/Address' paymentChannel: $ref: '#/components/schemas/CreatePaymentChannel' challenge: $ref: '#/components/schemas/Challenge' language: $ref: '#/components/schemas/Language' acceptTermsAndConditionsTimestamp: description: The timestamp when the payee last accepted T&Cs format: date-time nullable: true readOnly: true type: string cellphoneNumber: type: string payeeType: $ref: '#/components/schemas/PayeeType' company: $ref: '#/components/schemas/Company' individual: $ref: '#/components/schemas/Individual' created: format: date-time type: string gracePeriodEndDate: format: date nullable: true readOnly: true type: string lastOfacCheckTimestamp: format: date_time nullable: true readOnly: true type: string marketingOptIns: items: $ref: '#/components/schemas/MarketingOptIn' type: array ofacStatus: $ref: '#/components/schemas/OfacStatus' onboardedStatus: $ref: '#/components/schemas/OnboardedStatus' social: $ref: '#/components/schemas/Social' required: - email - remoteId type: object SourceAccountSummary: example: sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 5.962133916683182377482808078639209270477294921875 properties: sourceAccountId: format: uuid type: string totalCost: format: int32 type: number currency: $ref: '#/components/schemas/PaymentAuditCurrency' required: - sourceAccountId - totalCost type: object GetPaymentsForPayoutResponse_summary: example: totalOnboardedCount: 5 totalRegisteredCount: 1 totalPayeesCount: 0 totalInvitedCount: 6 totalOfacFailedCount: 5 properties: totalPayeesCount: type: integer totalInvitedCount: type: integer totalRegisteredCount: type: integer totalOnboardedCount: type: integer totalOfacFailedCount: type: integer FailedSubmission: example: failedSubmission: payorRefs: - payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 invitationStatus: invitationStatus remoteId: remoteId - payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 invitationStatus: invitationStatus remoteId: remoteId country: country cellphoneNumber: cellphoneNumber address: country: country countyOrProvince: countyOrProvince line4: line4 city: city line3: line3 line2: line2 line1: line1 zipOrPostcode: zipOrPostcode individual: name: firstName: firstName lastName: lastName otherNames: otherNames title: title nationalIdentification: "" dateOfBirth: "" social: facebookId: facebookId twitterId: twitterId linkedInId: linkedInId displayName: displayName created: 2000-01-23T04:56:07.000+00:00 lastOfacCheckTimestamp: lastOfacCheckTimestamp gracePeriodEndDate: 2000-01-23 paymentChannel: paymentChannelName: paymentChannelName routingNo: routingNo accountName: accountName countryCode: countryCode iban: iban currency: USD accountNumber: accountNumber marketingOptIns: - optedIn: true timestamp: 2000-01-23T04:56:07.000+00:00 - optedIn: true timestamp: 2000-01-23T04:56:07.000+00:00 challenge: description: description value: value company: taxId: taxId name: name payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 email: email acceptTermsAndConditionsTimestamp: 2000-01-23T04:56:07.000+00:00 failureMessage: failureMessage properties: failedSubmission: $ref: '#/components/schemas/Payee' failureMessage: type: string type: object InvitePayeeRequest: example: payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 properties: payorId: format: uuid type: string required: - payorId 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 Individual: example: name: firstName: firstName lastName: lastName otherNames: otherNames title: title nationalIdentification: "" dateOfBirth: "" properties: name: $ref: '#/components/schemas/Individual_name' nationalIdentification: oneOf: - pattern: ^[\d]{9}$ type: string - description: 'If not authorized to view, value will be masked. Exmaple: XXXXX1234' pattern: ^XXXXX[\d]{4}$ type: string dateOfBirth: oneOf: - description: example - 1970-05-20 format: date type: string - description: 'If not authorized to view, value will be masked. Example: - XXXX-XX-XX' pattern: ^XXXX-XX-XX$ type: string required: - dateOfBirth - name type: object PayoutSummaryResponse: example: rejectedPayments: - currencyType: currencyType reason: UNKNOWN_REMOTE_ID amount: 3 payorPaymentId: payorPaymentId lineNumber: 2 message: message remoteId: remoteId sourceAccountName: sourceAccountName - currencyType: currencyType reason: UNKNOWN_REMOTE_ID amount: 3 payorPaymentId: payorPaymentId lineNumber: 2 message: message remoteId: remoteId sourceAccountName: sourceAccountName paymentsRejected: 1 paymentsSubmitted: 0 fxSummaries: - invertedRate: 5.63737665663332876420099637471139430999755859375 creationTime: 2000-01-23T04:56:07.000+00:00 rate: 5.962133916683182377482808078639209270477294921875 expiryTime: 2000-01-23T04:56:07.000+00:00 sourceCurrency: sourceCurrency totalPaymentAmount: 7 paymentCurrency: paymentCurrency quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalSourceAmount: 2 fundingStatus: fundingStatus status: status - invertedRate: 5.63737665663332876420099637471139430999755859375 creationTime: 2000-01-23T04:56:07.000+00:00 rate: 5.962133916683182377482808078639209270477294921875 expiryTime: 2000-01-23T04:56:07.000+00:00 sourceCurrency: sourceCurrency totalPaymentAmount: 7 paymentCurrency: paymentCurrency quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalSourceAmount: 2 fundingStatus: fundingStatus status: status accounts: - sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 currency: currency totalPayoutCost: 9 sourceAccountName: sourceAccountName - sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 currency: currency totalPayoutCost: 9 sourceAccountName: sourceAccountName payoutId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 status: status paymentsAccepted: 6 properties: payoutId: format: uuid type: string status: type: string paymentsSubmitted: type: integer paymentsAccepted: type: integer paymentsRejected: type: integer fxSummaries: items: $ref: '#/components/schemas/QuoteFxSummary' type: array accounts: items: $ref: '#/components/schemas/SourceAccount' type: array rejectedPayments: items: $ref: '#/components/schemas/RejectedPayment' type: array required: - accounts - fxSummaries - rejectedPayments type: object CreatePayeesCSVRequest: properties: type: $ref: '#/components/schemas/PayeeType' remoteId: maxLength: 100 minLength: 1 type: string email: format: email type: string addressLine1: maxLength: 255 minLength: 2 type: string addressLine2: maxLength: 255 minLength: 0 type: string addressLine3: maxLength: 255 minLength: 0 type: string addressLine4: maxLength: 255 minLength: 0 type: string addressCity: maxLength: 100 minLength: 2 type: string addressCountyOrProvince: maxLength: 100 minLength: 2 type: string addressZipOrPostcode: maxLength: 30 minLength: 2 type: string addressCountry: maxLength: 50 minLength: 2 type: string individualTitle: maxLength: 10 minLength: 1 type: string individualFirstName: maxLength: 40 minLength: 1 type: string individualOtherNames: maxLength: 40 minLength: 1 type: string individualLastName: maxLength: 40 minLength: 1 type: string individualNationalIdentification: type: string individualDateOfBirth: description: example - 1970-05-20 format: date type: string companyName: maxLength: 40 minLength: 1 type: string companyTaxId: description: Company Tax Id (EIN) must be 9 numeric characters. Must match the regular expression ```[\d]{9}```. pattern: '[\\d]{9}' type: string paymentChannelIban: description: Must match the regular expression ```^[A-Za-z0-9]+$```. maxLength: 34 minLength: 15 pattern: ^[A-Za-z0-9]+$ type: string paymentChannelAccountNumber: maxLength: 17 minLength: 6 type: string paymentChannelRoutingNo: maxLength: 9 minLength: 9 type: string paymentChannelCountryCode: description: Must be a 3 character currency code. ISO 4217 maxLength: 9 minLength: 9 type: string paymentChannelCurrency: enum: - USD - GBP - EUR type: string paymentChannelAccountName: type: string challengeValue: maxLength: 20 minLength: 3 type: string challengeDescription: maxLength: 255 minLength: 1 type: string payeeLanguage: enum: - AR - EN - ES - FR - HE - HI - JA - PT - RU - UR - ZH type: string required: - addressCity - addressCountry - addressLine1 - addressZipOrPostcode - email - remoteId - type type: object Payee: example: payorRefs: - payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 invitationStatus: invitationStatus remoteId: remoteId - payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 invitationStatus: invitationStatus remoteId: remoteId country: country cellphoneNumber: cellphoneNumber address: country: country countyOrProvince: countyOrProvince line4: line4 city: city line3: line3 line2: line2 line1: line1 zipOrPostcode: zipOrPostcode individual: name: firstName: firstName lastName: lastName otherNames: otherNames title: title nationalIdentification: "" dateOfBirth: "" social: facebookId: facebookId twitterId: twitterId linkedInId: linkedInId displayName: displayName created: 2000-01-23T04:56:07.000+00:00 lastOfacCheckTimestamp: lastOfacCheckTimestamp gracePeriodEndDate: 2000-01-23 paymentChannel: paymentChannelName: paymentChannelName routingNo: routingNo accountName: accountName countryCode: countryCode iban: iban currency: USD accountNumber: accountNumber marketingOptIns: - optedIn: true timestamp: 2000-01-23T04:56:07.000+00:00 - optedIn: true timestamp: 2000-01-23T04:56:07.000+00:00 challenge: description: description value: value company: taxId: taxId name: name payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 email: email acceptTermsAndConditionsTimestamp: 2000-01-23T04:56:07.000+00:00 properties: payeeId: format: uuid readOnly: true type: string payorRefs: items: $ref: '#/components/schemas/PayorRef' nullable: true readOnly: true type: array email: format: email nullable: true type: string address: $ref: '#/components/schemas/Address' country: type: string displayName: type: string paymentChannel: $ref: '#/components/schemas/PaymentChannel' challenge: $ref: '#/components/schemas/Challenge' language: $ref: '#/components/schemas/Language' acceptTermsAndConditionsTimestamp: description: The timestamp when the payee last accepted T&Cs format: date-time nullable: true readOnly: true type: string cellphoneNumber: type: string payeeType: $ref: '#/components/schemas/PayeeType' company: $ref: '#/components/schemas/Company' individual: $ref: '#/components/schemas/Individual' created: format: date-time type: string gracePeriodEndDate: format: date nullable: true readOnly: true type: string lastOfacCheckTimestamp: format: date_time nullable: true readOnly: true type: string marketingOptIns: items: $ref: '#/components/schemas/MarketingOptIn' type: array ofacStatus: $ref: '#/components/schemas/OfacStatus' onboardedStatus: $ref: '#/components/schemas/OnboardedStatus' social: $ref: '#/components/schemas/Social' type: object CreatePayeesCSVResponse: example: batchId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 rejectedCsvRows: - rejectedCsvRows - rejectedCsvRows properties: batchId: format: uuid type: string rejectedCsvRows: items: type: string type: array type: object SupportedCountriesResponse: example: countries: - isoCountryCode: isoCountryCode currencies: - currencies - currencies - isoCountryCode: isoCountryCode currencies: - currencies - currencies properties: countries: items: $ref: '#/components/schemas/SupportedCountry' type: array type: object PaymentChannel: example: paymentChannelName: paymentChannelName routingNo: routingNo accountName: accountName countryCode: countryCode iban: iban currency: USD accountNumber: accountNumber properties: paymentChannelName: type: string iban: description: Must match the regular expression ```^[A-Za-z0-9]+$```. maxLength: 34 minLength: 15 pattern: ^[A-Za-z0-9]+$ type: string accountNumber: maxLength: 17 minLength: 6 type: string routingNo: maxLength: 9 minLength: 9 type: string countryCode: description: Must be a 3 character currency code. ISO 4217 maxLength: 9 minLength: 9 type: string currency: enum: - USD - GBP - EUR type: string accountName: type: string required: - accountName - accountNumber - countryCode - currency - routingNo - type type: object PayorEmailOptOutRequest: example: reminderEmailsOptOut: true properties: reminderEmailsOptOut: type: boolean type: object FundingAudit: properties: amount: format: double type: number dateTime: format: date-time type: string status: enum: - PENDING - FAILED - CREDIT - DEBIT type: string currency: type: string sourceAccountName: type: string fundingAccountName: type: string fundingType: type: string events: items: $ref: '#/components/schemas/FundingEvent' type: array type: object PaymentInstruction: properties: remoteId: description: Your identifier for payee maxLength: 100 minLength: 1 type: string currency: description: Payee's currency enum: - USD - GBP - EUR type: string amount: description: Amount to send to Payee format: int64 maximum: 9223372036854775807 minimum: 1 type: integer paymentMemo: maxLength: 40 minLength: 0 type: string sourceAccountName: maxLength: 64 minLength: 1 type: string payorPaymentId: maxLength: 40 minLength: 0 type: string required: - amount - currency - remoteId - sourceAccountName type: object PayorFundingBankDetailsUpdate: example: routingNumber: routingNumber accountName: accountName accountNumber: accountNumber properties: routingNumber: description: Routing number for the payor’s bank maxLength: 9 minLength: 9 type: string accountNumber: description: Payor’s bank account number. maxLength: 17 minLength: 4 type: string accountName: description: Payor’s bank account name. maxLength: 22 minLength: 1 type: string required: - accountName - accountNumber - routingNumber type: object PayorRef: example: payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 invitationStatus: invitationStatus remoteId: remoteId properties: payorId: format: uuid type: string remoteId: type: string invitationStatus: type: string type: object Challenge: example: description: description value: value properties: value: maxLength: 20 minLength: 3 type: string description: maxLength: 255 minLength: 1 type: string required: - description - value type: object FundingEvent: properties: eventId: format: uuid type: string eventDateTime: format: date-time type: string fundingEventType: $ref: '#/components/schemas/FundingEventType' type: object PaymentResponse: example: traceNumber: traceNumber accountName: accountName paymentMemo: paymentMemo paymentAmount: 6 fundingStatus: FUNDED paymentChannelName: paymentChannelName filenameReference: filenameReference rate: 1.46581298050294517310021547018550336360931396484375 paymentId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 countryCode: countryCode returnReason: returnReason submittedDateTime: 2000-01-23T04:56:07.000+00:00 sourceAmount: 0 railsId: railsId 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: 5.63737665663332876420099637471139430999755859375 eventType: PAYOUT_SUBMITTED accountNumber: accountNumber paymentAmount: 2.3021358869347654518833223846741020679473876953125 - principal: principal eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 routingNumber: routingNumber accountName: accountName iban: iban sourceAmount: 5.63737665663332876420099637471139430999755859375 eventType: PAYOUT_SUBMITTED accountNumber: accountNumber paymentAmount: 2.3021358869347654518833223846741020679473876953125 payorName: payorName sourceAccountName: sourceAccountName paymentChannelId: paymentChannelId invertedRate: 5.962133916683182377482808078639209270477294921875 sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 individualIdentificationNumber: individualIdentificationNumber accountNumber: accountNumber quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 remoteId: remoteId routingNumber: routingNumber returnCost: 7 iban: iban payorPaymentId: payorPaymentId status: ACCEPTED properties: paymentId: format: uuid type: string payeeId: format: uuid type: string payorId: format: uuid type: string payorName: type: string quoteId: format: uuid type: string sourceAccountId: format: uuid type: string sourceAccountName: type: string remoteId: type: string sourceAmount: type: integer sourceCurrency: $ref: '#/components/schemas/PaymentAuditCurrency' paymentAmount: type: integer paymentCurrency: $ref: '#/components/schemas/PaymentAuditCurrency' rate: format: double type: number invertedRate: format: double 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: enum: - FUNDED - INSTRUCTED - UNFUNDED type: string routingNumber: type: string accountNumber: type: string iban: type: string paymentMemo: type: string filenameReference: type: string individualIdentificationNumber: type: string traceNumber: type: string payorPaymentId: type: string paymentChannelId: type: string paymentChannelName: type: string accountName: type: string railsId: type: string countryCode: type: string events: items: $ref: '#/components/schemas/PaymentEventResponse' type: array returnCost: type: integer returnReason: type: string required: - events - fundingStatus - payeeId - paymentAmount - paymentId - payorId - quoteId - railsId - sourceAccountId - status - submittedDateTime type: object OfacStatus: enum: - PENDING - PASSED - FAILED type: string PayoutSummaryAudit: example: dateTime: 2000-01-23T04:56:07.000+00:00 sourceAccountSummary: - sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 5.962133916683182377482808078639209270477294921875 - sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 5.962133916683182377482808078639209270477294921875 submittedDateTime: submittedDateTime payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalIncompletePayments: 6 fxSummaries: - invertedRate: 2.3021358869347654518833223846741020679473876953125 rate: 5.63737665663332876420099637471139430999755859375 totalPaymentAmount: 9 quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 7 fundingStatus: FUNDED creationDateTime: 2000-01-23T04:56:07.000+00:00 status: UNQUOTED - invertedRate: 2.3021358869347654518833223846741020679473876953125 rate: 5.63737665663332876420099637471139430999755859375 totalPaymentAmount: 9 quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 7 fundingStatus: FUNDED creationDateTime: 2000-01-23T04:56:07.000+00:00 status: UNQUOTED payoutId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalPayments: 0 instructedDateTime: instructedDateTime totalFailedPayments: 1 payoutMemo: payoutMemo properties: payoutId: format: uuid type: string payorId: format: uuid type: string status: $ref: '#/components/schemas/PayoutStatus' dateTime: format: date-time type: string submittedDateTime: type: string instructedDateTime: type: string totalPayments: type: integer totalIncompletePayments: type: integer totalFailedPayments: type: integer sourceAccountSummary: items: $ref: '#/components/schemas/SourceAccountSummary' type: array fxSummaries: items: $ref: '#/components/schemas/FxSummary' type: array payoutMemo: type: string required: - payoutId - status - submittedDateTime type: object ListSourceAccountResponse: description: List Source Accounts Response Object example: links: - rel: rel href: href - rel: rel href: href page: numberOfElements: 2 totalPages: 9 pageSize: 2 page: 3 totalElements: 7 content: - physicalAccountName: physicalAccountName fundingRef: fundingRef balance: 0.80082819046101150206595775671303272247314453125 pooled: true name: name customerId: customerId physicalAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 currency: USD railsId: railsId balanceVisible: true id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 - physicalAccountName: physicalAccountName fundingRef: fundingRef balance: 0.80082819046101150206595775671303272247314453125 pooled: true name: name customerId: customerId physicalAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 currency: USD railsId: railsId balanceVisible: true id: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 properties: page: $ref: '#/components/schemas/GetPaymentsForPayoutResponse_page' links: items: $ref: '#/components/schemas/GetPaymentsForPayoutResponse_links' type: array content: items: $ref: '#/components/schemas/SourceAccountResponse' type: array type: object Language: description: Available Payee Language codes enum: - AR - EN - ES - FR - HE - HI - JA - PT - RU - UR - ZH type: string ListPaymentsResponse: description: List Payments Response Object example: summary: totalOnboardedCount: 5 totalRegisteredCount: 1 totalPayeesCount: 0 totalInvitedCount: 6 totalOfacFailedCount: 5 links: - rel: rel href: href - rel: rel href: href page: numberOfElements: 2 totalPages: 9 pageSize: 2 page: 3 totalElements: 7 content: - traceNumber: traceNumber accountName: accountName paymentMemo: paymentMemo paymentAmount: 6 fundingStatus: FUNDED paymentChannelName: paymentChannelName filenameReference: filenameReference rate: 1.46581298050294517310021547018550336360931396484375 paymentId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 countryCode: countryCode returnReason: returnReason submittedDateTime: 2000-01-23T04:56:07.000+00:00 sourceAmount: 0 railsId: railsId 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: 5.63737665663332876420099637471139430999755859375 eventType: PAYOUT_SUBMITTED accountNumber: accountNumber paymentAmount: 2.3021358869347654518833223846741020679473876953125 - principal: principal eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 routingNumber: routingNumber accountName: accountName iban: iban sourceAmount: 5.63737665663332876420099637471139430999755859375 eventType: PAYOUT_SUBMITTED accountNumber: accountNumber paymentAmount: 2.3021358869347654518833223846741020679473876953125 payorName: payorName sourceAccountName: sourceAccountName paymentChannelId: paymentChannelId invertedRate: 5.962133916683182377482808078639209270477294921875 sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 individualIdentificationNumber: individualIdentificationNumber accountNumber: accountNumber quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 remoteId: remoteId routingNumber: routingNumber returnCost: 7 iban: iban payorPaymentId: payorPaymentId status: ACCEPTED - traceNumber: traceNumber accountName: accountName paymentMemo: paymentMemo paymentAmount: 6 fundingStatus: FUNDED paymentChannelName: paymentChannelName filenameReference: filenameReference rate: 1.46581298050294517310021547018550336360931396484375 paymentId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 countryCode: countryCode returnReason: returnReason submittedDateTime: 2000-01-23T04:56:07.000+00:00 sourceAmount: 0 railsId: railsId 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: 5.63737665663332876420099637471139430999755859375 eventType: PAYOUT_SUBMITTED accountNumber: accountNumber paymentAmount: 2.3021358869347654518833223846741020679473876953125 - principal: principal eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 routingNumber: routingNumber accountName: accountName iban: iban sourceAmount: 5.63737665663332876420099637471139430999755859375 eventType: PAYOUT_SUBMITTED accountNumber: accountNumber paymentAmount: 2.3021358869347654518833223846741020679473876953125 payorName: payorName sourceAccountName: sourceAccountName paymentChannelId: paymentChannelId invertedRate: 5.962133916683182377482808078639209270477294921875 sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 individualIdentificationNumber: individualIdentificationNumber accountNumber: accountNumber quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 remoteId: remoteId routingNumber: routingNumber returnCost: 7 iban: iban payorPaymentId: payorPaymentId status: ACCEPTED properties: summary: $ref: '#/components/schemas/GetPaymentsForPayoutResponse_summary' page: $ref: '#/components/schemas/GetPaymentsForPayoutResponse_page' links: items: $ref: '#/components/schemas/GetPaymentsForPayoutResponse_links' type: array content: items: $ref: '#/components/schemas/PaymentResponse' type: array type: object GetPaymentsForPayoutResponse_links: example: rel: rel href: href properties: rel: type: string href: type: string PagedResponse_page: properties: numberOfElements: format: int32 type: integer totalElements: format: int32 type: integer totalPages: format: int32 type: integer page: format: int32 type: integer pageSize: format: int32 type: integer Individual_name: example: firstName: firstName lastName: lastName otherNames: otherNames title: title properties: title: maxLength: 10 minLength: 1 type: string firstName: maxLength: 40 minLength: 1 type: string otherNames: maxLength: 40 minLength: 1 type: string lastName: maxLength: 40 minLength: 1 type: string required: - firstName - lastName Social: example: facebookId: facebookId twitterId: twitterId linkedInId: linkedInId nullable: true properties: twitterId: type: string facebookId: type: string linkedInId: type: string type: object GetPayoutsResponse: description: List Payouts Response example: summary: totalOnboardedCount: 5 totalRegisteredCount: 1 totalPayeesCount: 0 totalInvitedCount: 6 totalOfacFailedCount: 5 links: - rel: rel href: href - rel: rel href: href page: numberOfElements: 2 totalPages: 9 pageSize: 2 page: 3 totalElements: 7 content: - dateTime: 2000-01-23T04:56:07.000+00:00 sourceAccountSummary: - sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 5.962133916683182377482808078639209270477294921875 - sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 5.962133916683182377482808078639209270477294921875 submittedDateTime: submittedDateTime payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalIncompletePayments: 6 fxSummaries: - invertedRate: 2.3021358869347654518833223846741020679473876953125 rate: 5.63737665663332876420099637471139430999755859375 totalPaymentAmount: 9 quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 7 fundingStatus: FUNDED creationDateTime: 2000-01-23T04:56:07.000+00:00 status: UNQUOTED - invertedRate: 2.3021358869347654518833223846741020679473876953125 rate: 5.63737665663332876420099637471139430999755859375 totalPaymentAmount: 9 quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 7 fundingStatus: FUNDED creationDateTime: 2000-01-23T04:56:07.000+00:00 status: UNQUOTED payoutId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalPayments: 0 instructedDateTime: instructedDateTime totalFailedPayments: 1 payoutMemo: payoutMemo - dateTime: 2000-01-23T04:56:07.000+00:00 sourceAccountSummary: - sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 5.962133916683182377482808078639209270477294921875 - sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 5.962133916683182377482808078639209270477294921875 submittedDateTime: submittedDateTime payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalIncompletePayments: 6 fxSummaries: - invertedRate: 2.3021358869347654518833223846741020679473876953125 rate: 5.63737665663332876420099637471139430999755859375 totalPaymentAmount: 9 quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 7 fundingStatus: FUNDED creationDateTime: 2000-01-23T04:56:07.000+00:00 status: UNQUOTED - invertedRate: 2.3021358869347654518833223846741020679473876953125 rate: 5.63737665663332876420099637471139430999755859375 totalPaymentAmount: 9 quoteId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalCost: 7 fundingStatus: FUNDED creationDateTime: 2000-01-23T04:56:07.000+00:00 status: UNQUOTED payoutId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 totalPayments: 0 instructedDateTime: instructedDateTime totalFailedPayments: 1 payoutMemo: payoutMemo properties: summary: $ref: '#/components/schemas/GetPaymentsForPayoutResponse_summary' page: $ref: '#/components/schemas/GetPaymentsForPayoutResponse_page' links: items: $ref: '#/components/schemas/GetPaymentsForPayoutResponse_links' type: array content: items: $ref: '#/components/schemas/PayoutSummaryAudit' type: array type: object PayeeInvitationStatus: example: payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 gracePeriodEndDate: 2000-01-23 invitationStatus: ACCEPTED properties: payeeId: format: uuid type: string invitationStatus: enum: - ACCEPTED - PENDING - DECLINED type: string gracePeriodEndDate: format: date type: string required: - invitationStatus - payeeId type: object SourceAccount: example: sourceAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 currency: currency totalPayoutCost: 9 sourceAccountName: sourceAccountName properties: sourceAccountName: type: string sourceAccountId: format: uuid type: string currency: type: string totalPayoutCost: type: integer required: - currency - sourceAccountId - sourceAccountName - totalPayoutCost type: object PayorBrandingResponse: example: supportContact: supportContact collectiveAlias: collectiveAlias dbaName: dbaName logoUrl: http://example.com/aeiou payorName: payorName properties: payorName: description: The name of the payor type: string logoUrl: description: The URL to use for this payor’s logo format: uri type: string collectiveAlias: description: How the payor has chosen to refer to payees nullable: true type: string supportContact: description: The payor’s support contact address nullable: true type: string dbaName: description: The payor’s 'Doing Business As' name nullable: true type: string required: - logoUrl - payorName type: object PayeeResponse: description: List Payees Response Object example: summary: totalOnboardedCount: 5 totalRegisteredCount: 1 totalPayeesCount: 0 totalInvitedCount: 6 totalOfacFailedCount: 5 links: - rel: rel href: href - rel: rel href: href page: numberOfElements: 2 totalPages: 9 pageSize: 2 page: 3 totalElements: 7 content: - payorRefs: - payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 invitationStatus: invitationStatus remoteId: remoteId - payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 invitationStatus: invitationStatus remoteId: remoteId country: country cellphoneNumber: cellphoneNumber address: country: country countyOrProvince: countyOrProvince line4: line4 city: city line3: line3 line2: line2 line1: line1 zipOrPostcode: zipOrPostcode individual: name: firstName: firstName lastName: lastName otherNames: otherNames title: title nationalIdentification: "" dateOfBirth: "" social: facebookId: facebookId twitterId: twitterId linkedInId: linkedInId displayName: displayName created: 2000-01-23T04:56:07.000+00:00 lastOfacCheckTimestamp: lastOfacCheckTimestamp gracePeriodEndDate: 2000-01-23 paymentChannel: paymentChannelName: paymentChannelName routingNo: routingNo accountName: accountName countryCode: countryCode iban: iban currency: USD accountNumber: accountNumber marketingOptIns: - optedIn: true timestamp: 2000-01-23T04:56:07.000+00:00 - optedIn: true timestamp: 2000-01-23T04:56:07.000+00:00 challenge: description: description value: value company: taxId: taxId name: name payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 email: email acceptTermsAndConditionsTimestamp: 2000-01-23T04:56:07.000+00:00 - payorRefs: - payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 invitationStatus: invitationStatus remoteId: remoteId - payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 invitationStatus: invitationStatus remoteId: remoteId country: country cellphoneNumber: cellphoneNumber address: country: country countyOrProvince: countyOrProvince line4: line4 city: city line3: line3 line2: line2 line1: line1 zipOrPostcode: zipOrPostcode individual: name: firstName: firstName lastName: lastName otherNames: otherNames title: title nationalIdentification: "" dateOfBirth: "" social: facebookId: facebookId twitterId: twitterId linkedInId: linkedInId displayName: displayName created: 2000-01-23T04:56:07.000+00:00 lastOfacCheckTimestamp: lastOfacCheckTimestamp gracePeriodEndDate: 2000-01-23 paymentChannel: paymentChannelName: paymentChannelName routingNo: routingNo accountName: accountName countryCode: countryCode iban: iban currency: USD accountNumber: accountNumber marketingOptIns: - optedIn: true timestamp: 2000-01-23T04:56:07.000+00:00 - optedIn: true timestamp: 2000-01-23T04:56:07.000+00:00 challenge: description: description value: value company: taxId: taxId name: name payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 email: email acceptTermsAndConditionsTimestamp: 2000-01-23T04:56:07.000+00:00 properties: summary: $ref: '#/components/schemas/GetPaymentsForPayoutResponse_summary' page: $ref: '#/components/schemas/GetPaymentsForPayoutResponse_page' links: items: $ref: '#/components/schemas/GetPaymentsForPayoutResponse_links' type: array content: items: $ref: '#/components/schemas/Payee' type: array type: object CreatePayeesRequest: example: payees: - payorRefs: - payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 invitationStatus: invitationStatus remoteId: remoteId - payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 invitationStatus: invitationStatus remoteId: remoteId country: country cellphoneNumber: cellphoneNumber address: country: country countyOrProvince: countyOrProvince line4: line4 city: city line3: line3 line2: line2 line1: line1 zipOrPostcode: zipOrPostcode individual: name: firstName: firstName lastName: lastName otherNames: otherNames title: title nationalIdentification: "" dateOfBirth: "" social: facebookId: facebookId twitterId: twitterId linkedInId: linkedInId displayName: displayName created: 2000-01-23T04:56:07.000+00:00 lastOfacCheckTimestamp: lastOfacCheckTimestamp type: Individual gracePeriodEndDate: 2000-01-23 remoteId: remoteId paymentChannel: paymentChannelName: paymentChannelName routingNumber: routingNumber accountName: accountName countryCode: countryCode iban: iban currency: USD accountNumber: accountNumber marketingOptIns: - optedIn: true timestamp: 2000-01-23T04:56:07.000+00:00 - optedIn: true timestamp: 2000-01-23T04:56:07.000+00:00 challenge: description: description value: value company: taxId: taxId name: name payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 email: email acceptTermsAndConditionsTimestamp: 2000-01-23T04:56:07.000+00:00 - payorRefs: - payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 invitationStatus: invitationStatus remoteId: remoteId - payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 invitationStatus: invitationStatus remoteId: remoteId country: country cellphoneNumber: cellphoneNumber address: country: country countyOrProvince: countyOrProvince line4: line4 city: city line3: line3 line2: line2 line1: line1 zipOrPostcode: zipOrPostcode individual: name: firstName: firstName lastName: lastName otherNames: otherNames title: title nationalIdentification: "" dateOfBirth: "" social: facebookId: facebookId twitterId: twitterId linkedInId: linkedInId displayName: displayName created: 2000-01-23T04:56:07.000+00:00 lastOfacCheckTimestamp: lastOfacCheckTimestamp type: Individual gracePeriodEndDate: 2000-01-23 remoteId: remoteId paymentChannel: paymentChannelName: paymentChannelName routingNumber: routingNumber accountName: accountName countryCode: countryCode iban: iban currency: USD accountNumber: accountNumber marketingOptIns: - optedIn: true timestamp: 2000-01-23T04:56:07.000+00:00 - optedIn: true timestamp: 2000-01-23T04:56:07.000+00:00 challenge: description: description value: value company: taxId: taxId name: name payeeId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 email: email acceptTermsAndConditionsTimestamp: 2000-01-23T04:56:07.000+00:00 payorId: payorId properties: payorId: type: string payees: items: $ref: '#/components/schemas/CreatePayee' type: array required: - payees - payorId type: object SupportedCountry: example: isoCountryCode: isoCountryCode currencies: - currencies - currencies properties: isoCountryCode: type: string currencies: items: type: string type: array type: object MarketingOptIn: example: optedIn: true timestamp: 2000-01-23T04:56:07.000+00:00 properties: optedIn: type: boolean timestamp: format: date-time type: string type: object SupportedCurrencyResponse: example: currencies: - currency: currency maxPaymentAmount: 0 - currency: currency maxPaymentAmount: 0 properties: currencies: items: $ref: '#/components/schemas/SupportedCurrency' type: array type: object SourceAccountResponse: example: physicalAccountName: physicalAccountName fundingRef: fundingRef balance: 0.80082819046101150206595775671303272247314453125 pooled: true name: name customerId: customerId physicalAccountId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 currency: USD railsId: railsId 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 format: int32 type: number currency: enum: - USD maxLength: 3 minLength: 3 type: string fundingRef: type: string physicalAccountName: type: string railsId: type: string payorId: format: uuid type: string name: type: string pooled: type: boolean balanceVisible: type: boolean customerId: nullable: true type: string physicalAccountId: format: uuid type: string type: object OnboardedStatus: enum: - CREATED - INVITED - REGISTERED - ONBOARDED type: string PaymentEventResponse: example: principal: principal eventId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 eventDateTime: 2000-01-23T04:56:07.000+00:00 routingNumber: routingNumber accountName: accountName iban: iban sourceAmount: 5.63737665663332876420099637471139430999755859375 eventType: PAYOUT_SUBMITTED accountNumber: accountNumber paymentAmount: 2.3021358869347654518833223846741020679473876953125 properties: eventId: description: The id of the event. format: uuid type: string eventDateTime: description: The date/time at which the event occurred. format: date-time type: string eventType: description: The type of the event. enum: - PAYOUT_SUBMITTED - PAYOUT_COMPLETED - PAYOUT_INSTRUCTED_V3 - BANK_PAYMENT_REQUESTED - SOURCE_AMOUNT_CONFIRMED - PAYMENT_SUBMITTED - PAYMENT_SUBMITTED_ACCEPTED - PAYMENT_SUBMITTED_REJECTED - PAYMENT_CONFIRMED - PAYMENT_AWAITING_FUNDS - PAYMENT_FUNDED - PAYMENT_UNFUNDED - PAYMENT_FAILED - ACH_SUBMITTED_TO_ODFI - PAYMENT_ACCEPTED_BY_RAILS - ACH_RETURN_RECEIVED - RETURN_PAYMENT_FUNDING_REQUESTED - PAYOUT_BATCH_EXECUTED - PAYOUT_BATCH_QUOTE_EXPIRED - PAYOUT_BATCH_FUNDED - PAYOUT_BATCH_FUNDS_RETURN_REQUEST - PAYOUT_BATCH_FUNDS_RETURNED - PAYOUT_FUNDS_REQUEST - PAYOUT_FUNDS_GRANTED - PAYOUT_FUNDS_DENIED - PAYOUT_BATCH_QUOTED - PAYOUT_QUOTED - ACH_PAYMENT_RETURN_CANCELLED - RETURN_PAYMENT_CANCELLATION_REQUESTED - PAYOUT_WITHDRAWN type: string sourceCurrency: $ref: '#/components/schemas/PaymentAuditCurrency' sourceAmount: description: The source amount exposed by the event. format: double type: number paymentCurrency: $ref: '#/components/schemas/PaymentAuditCurrency' paymentAmount: description: The destination amount exposed by the event. format: double type: number accountNumber: description: The account number attached to the event. type: string routingNumber: description: The routing number attached to the event. type: string iban: type: string accountName: type: string principal: type: string required: - eventDateTime - eventId - eventType type: object PagedResponse: properties: page: $ref: '#/components/schemas/PagedResponse_page' links: items: type: object type: array type: object Payor: example: primaryContactName: primaryContactName payeeGracePeriodProcessingEnabled: true supportContact: supportContact address: country: country countyOrProvince: countyOrProvince line4: line4 city: city line3: line3 line2: line2 line1: line1 zipOrPostcode: zipOrPostcode fundingAccountAccountName: fundingAccountAccountName includesReports: true allowsLanguageChoice: true language: EN fundingAccountAccountNumber: fundingAccountAccountNumber dbaName: dbaName primaryContactPhone: primaryContactPhone payeeGracePeriodDays: 0 fundingAccountRoutingNumber: fundingAccountRoutingNumber reminderEmailsOptOut: true manualLockout: true collectiveAlias: collectiveAlias payorId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91 kycState: FAILED_KYC primaryContactEmail: primaryContactEmail payorName: payorName properties: payorId: format: uuid readOnly: true type: string payorName: description: The name of the payor. type: string address: $ref: '#/components/schemas/Address' primaryContactName: description: Name of primary contact for the payor. type: string primaryContactPhone: description: Primary contact phone number for the payor. type: string primaryContactEmail: description: Primary contact email for the payor. format: email type: string fundingAccountRoutingNumber: description: The funding account routing number to be used for the payor. type: string fundingAccountAccountNumber: description: The funding account number to be used for the payor. type: string fundingAccountAccountName: description: The funding account name to be used for the payor. type: string kycState: description: The kyc state of the payor. enum: - FAILED_KYC - PASSED_KYC - REQUIRES_KYC type: string manualLockout: description: Whether or not the payor has been manually locked by the backoffice. type: boolean payeeGracePeriodProcessingEnabled: description: Whether grace period processing is enabled. type: boolean payeeGracePeriodDays: description: The grace period for paying payees in days. type: integer collectiveAlias: description: How the payor has chosen to refer to payees. type: string supportContact: description: The payor’s support contact address. type: string dbaName: description: The payor’s 'Doing Business As' name. 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. type: boolean language: description: The payor’s language preference. Must be one of [EN, FR]. enum: - EN - FR type: string includesReports: type: boolean required: - payorName type: object 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 x-tagGroups: - name: Payor Operations tags: - Payors - Payor Branding - Payor Applications - Payor Information - Funding Manager - name: Payee Operations tags: - Payees - Payee Service - Payee Batch Creation - Payee Invitation - name: Payouts tags: - Submit Payout - Get Payout - Quote Payout - Instruct Payout - Withdraw Payout - Payout History - name: Reporting tags: - Payments - Payment Audit Service - name: API Utilities tags: - Currencies - Countries - name: Legal tags: - Legal