Developers

Decaf Disbursements API

Send money to anyone with a phone number. Recipients claim funds directly on WhatsApp.

Error Reference

{
  "error": "machine_readable_code",
  "message": "Human-readable description",
  "details": {}
}

HTTP Status Codes

statusmeaning
400Bad request
401Auth failed
402Insufficient balance
404Not found
409Idempotency conflict
422Unprocessable request
429Rate limit exceeded
500Internal error
502/504Upstream timeout

Common Error Codes

codemeaning
insufficient_balanceNot enough balance
invalid_phoneInvalid E.164 phone format
recipient_country_unsupportedNo payout method for recipient country
amount_below_minimumAmount below $1.00
idempotency_conflictSame key with different params
disbursement_already_claimedCannot cancel claimed disbursement
virtual_account_not_foundVirtual account ID not found

Rate Limits

endpointlimit
POST /v1/disbursements100 req/min
POST /v1/disbursements/batch10 req/min
GET endpoints300 req/min
All endpoints1,000 req/min (org total)
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1741219260

Idempotency

For POST requests, pass idempotencyKey to safely retry without duplicate sends.

  • Same key + same params: returns original response
  • Same key + different params: returns 409 idempotency_conflict
  • Key expiration: 24 hours

Compliance & Limits

scenariolimit
Minimum disbursement$1.00 USD
Maximum single disbursementNo limit
MoneyGram cash pickup$2,500 USD/day per recipient
Daily disbursements (org)No cap (subject to balance)

Decaf applies AML/KYC checks at claim time. You do not need to build KYC flow in your integration.

Decaf API | Errors and Limits | Decaf