ReceiptorX API

Submit a receipt image and expected payment details — get a definitive valid or invalid result in milliseconds.

Base URL https://receiptor-x.onrender.com

Authentication

All requests require a Bearer token in the Authorization header. Generate keys from the API Keys page.

HTTP Header
Authorization: Bearer rcx_live_your_key_here
Never include your API key in client-side code. Use environment variables on your server.

Verify Receipt

POST /api/verify

Submit a receipt image (base64 or URL) with expected payment details. The AI checks every field and returns a decision.

Request Body

FieldTypeRequiredDescription
imagestringrequiredBase64 data URL or public image URL of the receipt
config.expectedRecipientNamestringrequiredExact recipient name as it should appear
config.expectedBankNamestringrequiredBank name (e.g. GTBank)
config.expectedAmountnumberrequiredExact expected amount
config.currencystringoptionalCurrency code. Default: NGN
config.allowedNameVariationsstring[]optionalAcceptable alternative spellings
config.maxDateAgeDaysnumberoptionalMax receipt age in days. Default: 1
config.timezonestringoptionalIANA timezone. Default: Africa/Lagos

Code Examples

cURL
curl -X POST https://receiptor-x.onrender.com/api/verify \
  -H "Authorization: Bearer rcx_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "image": "data:image/jpeg;base64,/9j/4AAQ...",
    "config": {
      "expectedRecipientName": "Ayo David",
      "expectedBankName": "GTBank",
      "expectedAmount": 5000,
      "currency": "NGN",
      "maxDateAgeDays": 1,
      "timezone": "Africa/Lagos"
    }
  }'

Response — Valid

JSON — 200 OK
{
  "valid": true,
  "reason": "All checks passed.",
  "detected": {
    "bank": "GTBank",
    "amount": 5000,
    "recipient": "Ayo David",
    "date": "2026-06-21"
  }
}

Error Codes

StatusMeaningDescription
200OKRequest processed — check valid field.
400Bad RequestMissing or invalid fields.
401UnauthorizedInvalid or missing API key.
403ForbiddenAPI key has been revoked.
429Rate Limited30 verifications / minute exceeded.
502Bad GatewayAI engine failed — retry with backoff.
500Server ErrorInternal error.

Rate Limits

30
requests / minute
200
global / 15 min
10 MB
max body size
Check the Retry-After header when rate-limited for the exact wait time in seconds.

Health Check

cURL
curl https://receiptor-x.onrender.com/health
JSON — 200 OK
{ "status": "ok", "service": "ReceiptorX" }