Onboarding
In order to use the API your company needs to be one of the following:- To be an existing Ebury customer with access to Ebury Online;
- To be on-boarded as an Ebury customer with access to Ebury Online: Currently this is an out-of-band process that needs to be completed by the Ebury sales team.
Live on-boarding functionality is planned for a future phase of the API.
Credentials
With an active Ebury Online account you need a few details to call the API:- A client secret that is used in the Authentication workflow described below;
- An access token which you will get by implementing the Authentication workflow;
- A client account identifier that links a user to a given account and needs to be passed to the Authentication workflow;
- You’ll need to supply a redirect URL, which will be used during the Authentication workflow.
Environments
The following is a list of environments available when developing against or using our API: Environment EndpointsAPI Description
Whilst each subject area is documented below they are also supported by an individual Swagger specification document. Please use the links below to download for your desired environment:Rate limiting
Rate limiting of the Ebury API is primarily on a per-client basis. If you receive a response with a status code of429 Too Many Requests, it means that you have been rate limited for sending too many requests, and should wait before sending further requests.
Error Handling
The Ebury API tries to honour HTTP return codes relevant to the error that is being conveyed. However, 4xx HTTP return codes are also used as a “blanket” with more information to be found in the response body of the error message e.g., a409 will indicate an issue with the data sent that can be rectified: you should consult this message to help you take corrective action.
Idempotency
The Ebury API is not exposing idempotent operations by default. ThePOST requests can however include a header X-Idempotency-Id, to be used as a lock to gain idempotency features.
After every POST request, the response header X-Idempotency-Status is returned with the result of the idempotency logic.
This is an opt-in feature. If the header X-Idempotency-Id is not present, no extra logic is considered.
The first time the API sees a X-Idempotency-Id, it returns accepted and locks the value for 15 days.
The following times the same value is used within the first 15 days: the API will return duplicated, with status 409, and will not process the request.
We suggest using a random UUID as X-Idempotency-Id.
Summary for situations.
HTTP Response Codes
Error Message
string
A short code for the error
string
The error message
string
Error details
Verification of Payee
Due to a regulation regarding Corporate Payments, the Ebury API runs some Verification of Payee validations on beneficiaries when payment requests are done. Verification of Payee validation checks if the Beneficiary data stored in Ebury (if the request contains a Beneficiary ID) or provided (if the request contains Beneficiary Name, IBAN and Swift Code) matches the actual Bank details. Afull-match confirms that everything is correct, a partial-match lets us know that the data is close but not exactly the same (name varies slightly), and no-match warns us that the data is different, which could cause a scam to take place if we go forward with the payment. We also have other error statuses for cases like being unable to find the beneficiary ID provided in our systems, or the system to run the validations is not available at the moment.
When a Single Payment, Multipayment or Mass-Payment request runs the VoP (Verification of Payee) check, two things can happen:
- The VoP result is a
full-match(for all payments involved), and the payment goes through directly. - At least one of the payments did not return a
full-match, and the payment does not go through. The request gets a response with a specific error message indicating this VoP result.
authorization_id is provided. That authorization_id can be used as queryparam on the payment requests to confirm that the customer wants to go with the payment even though the VoP check was not full-match. The request itself needs to contain the same data as the previous attempt, only the new vop_authorization_id queryparam needs to be added, holding the value of the authorization_id received in the previous error response.
If the vop_authorization_id queryparam is provided in the Single Payment, Multipayment or Mass-Payment request, the system will check that the value ID matches the one in our database (including the whole request payload received alongside it) and, if it matches, the payment goes through. Otherwise, it returns a specific error explaining that the provided vop_authorization_id is not correct.
We have two flags to activate Verification of Payee for customers once they are fully integrated with the new implementation.
vop_opted_outskips Multipayment and Mass-payment (bulk payment) Verification of Payee checks. This is part of the Verification of Payee regulation: any customer that wants to Opt Out of VoP for bulk payments can do so by providing an official signed letter requesting to be opted out of the feature. Apart from this, all customers will be initially opted out, until a grace period, for them to have time to integrate with the new API flow for VoP. After that, any customers that have not provided theOpt Outletter will be marked asfalseforvop_opted_out. If a customer Opts Out of VoP, no changes will be needed regarding endpoint implementation.vop_skip_single_paymentsskip Single Payment (/payments) Verification of Payee checks. This is just a flag we added to give customers some time to integrate with the new API flow for VoP. Initially, all customers will have the flag active. Single Payments cannot be opted out of Verification of Payee according to the regulation, so after the grace period, all API customers will be marked asfalseforvop_skip_single_payments.
/vop endpoint will always be available once the feature is launched by October 9, 2025, and therefore will be able to run Verification of Payee checks.
VoP Error Codes
VoP Check Error Message
The VoP Check not full-match error message will hold the following information:string
The VoP error code
string
Explains the reason why the system returned a VoP error
object
VoP Check Details
string
The ID that can be used as
vop_authorization_id queryparam to go through with the payments that didn’t return a successful full-match VoP result.array
A list of vop results, one for each Beneficiary involved in the verification check
string
Highest priority status received from VoP checks
VoP Result
string
General information relating the VoP result
string
If
partial-match, the actual Beneficiary name in the Bank data.string
The VoP result for the Beneficiary. One of
FULL_MATCH, PARTIAL_MATCH, NO_MATCH, UNABLE_TO_MATCH or an error.array
List of response scheme codes. Field to have a reference of the VoP error origin.