Open Finance

Payment Validator API

Validate payment initiation requests against CBUAE Open Finance and ISO 20022 standards. Checks IBAN validity, amount limits, currency support, and routing classification.

Endpoint:/api/v1/openfinance/payment/validate
Method:POST
Tier:All Plans

Try it out

POST/api/v1/openfinance/payment/validate

Parameters

Code

curl
curl -X POST "https://khaleejiapi.dev/api/v1/openfinance/payment/validate?payment=%7B%22payerIBAN%22%3A%22AE070331234567890123456%22%2C%22payeeIBAN%22%3A%22AE460261234567890123456%22%2C%22amount%22%3A1500%2C%22currency%22%3A%22AED%22%2C%22purpose%22%3A%22salary%22%7D" \
-H "Authorization: Bearer your_api_key"

Request Body

FieldTypeRequiredDescription
payment.payerIBANstringOptionalDebtor IBAN (validated with MOD 97 check)
payment.payeeIBANstringOptionalCreditor IBAN (validated with MOD 97 check)
payment.amountnumberOptionalPayment amount (must be positive)
payment.currencystringOptionalISO 4217 currency code (AED, USD, EUR, GBP, SAR)
payment.purposestringOptionalPayment purpose (salary, rent, utilities, purchase, transfer, charity)
payment.paymentTypestringOptionaldomestic, international, standing_order, or direct_debit
payment.internationalbooleanOptionalFlag for cross-border payment (triggers additional creditorAgent checks)

Response Fields

compliant

Boolean indicating whether the payment request passes all validation checks

classification

Payment routing data: payer/payee country, domestic flag, payment scheme, and messaging standard (ISO 20022)

issues[]

Array of validation issues with rule, severity, article reference, and requirement text

validPaymentTypes, validPurposes, validCurrencies

Reference arrays of accepted values for building compliant payment flows

Rate Limits

PlanRequests/MonthRate Limit
Free1,00010 req/min
Starter10,00060 req/min
Professional100,000300 req/min
Business500,0001,000 req/min

Debugging & Support

Include X-Request-ID when contacting support

Every response from KhaleejiAPI includes an X-Request-ID header — a unique identifier that lets our support team pull the exact log entry for your request within seconds. Always share it when reporting an unexpected error or unexpected result.

How to capture it

JavaScript / fetch

const res = await fetch("https://khaleejiapi.dev/api/v1/...", {
  headers: { Authorization: "******" },
});
const requestId = res.headers.get("x-request-id");
console.log("Request ID:", requestId);
// → e.g. "req_01j9xkz4vp8..."

cURL

curl -si "https://khaleejiapi.dev/api/v1/..." \
  -H "Authorization: ******" | grep -i x-request-id
# → x-request-id: req_01j9xkz4vp8...

Browser DevTools

Open DevTools (F12) → Network tab → click the failing request → scroll to the Response Headers section → copy the value next to x-request-id.

For a full list of error codes and guidance on common issues, see the Troubleshooting guide.