Back to neotek ↗Get Sandbox Access

BulkPaymentStatus

GEThttps://test.api.neotek.sa/b2b-unified/v1/payments/bulk/status/{batchReference}

Sandbox URL · in Production call https://api.neotek.sa

Where every payment in a batch has got to, one entry each. Each entry carries customerReference, which is the transactionReference you sent — that is how you match a result back to the payment you submitted.

Path parameters:

ParameterRequiredDescription
batchReferenceRequiredthe batchReference from the BulkPayment response

Query parameters:

ParameterRequiredDescription
bankCodeRequiredwhich bank executed the batch: RJHISARI or ARNBSARI

Headers:

ParameterRequiredDescription
authorizationRequiredBearer <ACCESS_TOKEN>
cURL
curl -G 'https://test.api.neotek.sa/b2b-unified/v1/payments/bulk/status/{batchReference}' \  --header 'authorization: Bearer <ACCESS_TOKEN>' \  -d 'bankCode=ARNBSARI'

ResponsepaymentStatus is PAYMENT_STATUS_ACCEPTED, PAYMENT_STATUS_COMPLETED or PAYMENT_STATUS_FAILED

JSON
{  "success": true,  "code": "SUCCESS",  "message": "Bulk payment status retrieved successfully",  "batchReference": "BATCH-20260211-001",  "payments": [    {      "transactionId": "OB20260211000001",      "paymentStatus": "PAYMENT_STATUS_COMPLETED",      "statusDescription": "Payment processed successfully",      "customerReference": "BULK6701A"    },    {      "transactionId": "OB20260211000002",      "paymentStatus": "PAYMENT_STATUS_FAILED",      "statusDescription": "Payment was rejected by beneficiary bank",      "customerReference": "BUL34001B"    }  ]}

Errors — each failure carries an error category and a specific code

StatusCodesTypical cause
400 ERROR_CATEGORY_VALIDATION_FAILEDINVALID_IBAN, INVALID_AMOUNT, INVALID_ACCOUNT, INVALID_CURRENCY, INVALID_BANK_CODE, INVALID_REFERENCE, ACCOUNT_NOT_FOUND, BENEFICIARY_NOT_FOUNDBad or missing field — wrong IBAN format, unknown bankCode, reference over 16 characters
401 ERROR_CATEGORY_AUTH_FAILEDAUTH_FAILED, CREDENTIALS_NOT_FOUND, UNAUTHORIZEDToken missing or expired, or no vault credentials for your app with that bank
404 ERROR_CATEGORY_NOT_FOUNDNOT_FOUNDResource not found
409 ERROR_CATEGORY_DUPLICATEDUPLICATE_TRANSACTION, DUPLICATE_REFERENCE, DUPLICATE_PAYMENTYou reused a transactionReference
422 ERROR_CATEGORY_BANK_REJECTEDINSUFFICIENT_FUNDS, AMOUNT_LIMIT_EXCEEDED, DAILY_LIMIT_EXCEEDED, INVALID_PAYMENT_DATE, ACCOUNT_BLOCKED, ACCOUNT_CLOSED, PAYMENT_NOT_ALLOWEDThe request was valid; the bank declined it
500 ERROR_CATEGORY_SYSTEM_FAILURESYSTEM_ERROR, INTERNAL_ERRORGateway-side failure
503 ERROR_CATEGORY_TEMPORARY_FAILURESERVICE_UNAVAILABLE, BANK_UNAVAILABLE, NETWORK_ERROR, NETWORK_TIMEOUT, CONNECTION_REFUSED, REQUEST_TIMEOUTTransient — retry with backoff