Quick flow
Authenticate -> Sign -> Send collection -> Receive acceptance -> Receive webhook -> Reconcile (optional status check).Prerequisites
- Product-scoped Bearer token from Authentication API.
- RSA 2048 key pair registered with Waftpay. See Signature generation.
- Correct base URL for your environment. See Environments.
Endpoint
POST/payments-api-service/v1/user/collections
Required headers
transaction.reference for retries of the same logical collection.
Request body (example)
invoice_numberis optional but useful for reconciliation.timestampmust be ISO 8601 UTC (ends withZ).transaction.service_codeis required only if enabled on your account.
Acceptance response (immediate)
The acceptance response uses the same envelope as payouts. See Initiate collection API.Webhook (final outcome)
We POST to yourcallback_url when the collection completes. See Webhook payload.
Status checks (optional)
If a webhook is delayed or missing, query status using Check collection status or Status checks.Common issues
- Signature mismatch: ensure the string-to-sign matches the payload exactly. See Signature generation.
- Wrong token: use a collection-scoped Bearer token.
- Duplicate references: reuse
transaction.referenceonly for safe retries.
