curl --request GET \
--url https://api.next.orenda.finance/v1/batch-payments/verify/{requestId} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.next.orenda.finance/v1/batch-payments/verify/{requestId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.next.orenda.finance/v1/batch-payments/verify/{requestId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"success": true,
"data": {
"requestId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"status": "COMPLETED",
"totalPayments": 2,
"totalProcessed": 2,
"payments": {
"validPayments": [
{
"payer": {
"iban": "GB29NWBK60161331926819"
},
"payee": {
"name": "Jane Doe",
"iban": "DE89370400440532013000",
"bic": "COBADEFFXXX"
},
"amount": "100.00",
"reference": "Invoice 001",
"fee": 0.2,
"accountId": "acc_123",
"availableBalance": 10000,
"currency": "GBP"
}
],
"invalidPayments": [
{
"payer": {
"iban": "GB29NWBK60161331926819"
},
"payee": {
"name": "John Smith",
"iban": "US64SVBKUS6S3300958879"
},
"amount": "50.00",
"reference": "Invoice 002",
"reason": "Payee IBAN is not from an EU member country",
"fee": 0,
"accountId": "acc_123",
"availableBalance": 10000,
"currency": "GBP"
}
]
}
}
}{
"success": false,
"code": "VERIFICATION_PROCESSING",
"error_code": "VERIFICATION_PROCESSING",
"message": "Verification is still being processed. Please try again later.",
"data": {
"status": "PROCESSING"
}
}{
"success": false,
"code": "VALIDATION_ERROR",
"message": "Missing requestId parameter"
}{
"message": "Unauthorized"
}Get verify status
Poll this with the requestId from verify until status is no longer PROCESSING. While it’s still running you get error_code: "VERIFICATION_PROCESSING". When done, the items are split into validPayments and invalidPayments (each invalid item carries a reason). Fix or drop the invalid ones, then initiate with the set you want to send.
Each item is also stamped with its source account’s accountId, currency, and availableBalance (major units; present only for card-funded accounts) so you can flag insufficient-balance rows before submitting. Group items by accountId, sum each group’s amount plus fee, and compare against that account’s availableBalance; treat a missing balance as unknown. This is an early UI signal only. Sufficiency is re-checked at submit.
An unknown or not-yet-written requestId returns 202, not 404: a verification that’s queued but not yet stored is indistinguishable from one that never existed, so this endpoint never returns 404. Keep polling until you get a 200.
curl --request GET \
--url https://api.next.orenda.finance/v1/batch-payments/verify/{requestId} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.next.orenda.finance/v1/batch-payments/verify/{requestId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.next.orenda.finance/v1/batch-payments/verify/{requestId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"success": true,
"data": {
"requestId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"status": "COMPLETED",
"totalPayments": 2,
"totalProcessed": 2,
"payments": {
"validPayments": [
{
"payer": {
"iban": "GB29NWBK60161331926819"
},
"payee": {
"name": "Jane Doe",
"iban": "DE89370400440532013000",
"bic": "COBADEFFXXX"
},
"amount": "100.00",
"reference": "Invoice 001",
"fee": 0.2,
"accountId": "acc_123",
"availableBalance": 10000,
"currency": "GBP"
}
],
"invalidPayments": [
{
"payer": {
"iban": "GB29NWBK60161331926819"
},
"payee": {
"name": "John Smith",
"iban": "US64SVBKUS6S3300958879"
},
"amount": "50.00",
"reference": "Invoice 002",
"reason": "Payee IBAN is not from an EU member country",
"fee": 0,
"accountId": "acc_123",
"availableBalance": 10000,
"currency": "GBP"
}
]
}
}
}{
"success": false,
"code": "VERIFICATION_PROCESSING",
"error_code": "VERIFICATION_PROCESSING",
"message": "Verification is still being processed. Please try again later.",
"data": {
"status": "PROCESSING"
}
}{
"success": false,
"code": "VALIDATION_ERROR",
"message": "Missing requestId parameter"
}{
"message": "Unauthorized"
}Authorizations
The caller's access_token from authentication. Management API callers send the id_token. The program and environment come from the token.
Path Parameters
The requestId returned by verify.
Query Parameters
Required on the Management API, where the token carries no program: omitting it returns 400. Customer API callers resolve the program from their token and should omit it; a value sent there is ignored.