Payments
IDaaS transactions are cross-application tag-to-tag payments.Transaction states
A transaction moves through one of these paths:COMPLETED.
Initiate a payment
POST /v1/transactions
Best practices
- Prefer qualified tag addresses such as
alice@walletapp. - Always send an
Idempotency-Keyfor retriable requests. - Expect an asynchronous webhook to the receiver application.
- Do not treat initiation as settlement; settlement occurs after acceptance.
Accept a transaction
The receiving application accepts the transaction with:POST /v1/transactions/{reference}/accept
On success, IDaaS:
- marks the transaction as
COMPLETED - debits the sender wallet
- credits the receiver wallet
- writes immutable ledger entries
- sends the sender callback asynchronously
Reject a transaction
The receiving application rejects the transaction with:POST /v1/transactions/{reference}/reject
Rejections do not create ledger movements.
Expiry behavior
Transactions that stay inAWAITING_ACCEPTANCE beyond the configured window are expired by a scheduled job.