Skip to main content

checkout.completed

Deposit received, normalised to USDC on Base, converted, and paid out.
event
string
required
Always checkout.completed.
session_id
string
required
Use as an idempotency key.
external_id
string
Your reference, if set.
amount_usdc
number
required
amount_local
number
required
Net local currency after the 1% fee.
currency
string
required
KES, NGN, GHS, or UGX.
exchange_rate
number
required
Local currency per 1 USDC at settlement.
receipt
string
required
Payout provider receipt.
status
string
required
Always completed.
completed_at
string
required
ISO 8601.
created_at
string
required
ISO 8601.

checkout.failed

Deposit received but settlement could not complete. Rare.
event
string
required
Always checkout.failed.
session_id
string
required
external_id
string
amount_usdc
number
required
The amount that was deposited but couldn’t be settled.
currency
string
required
status
string
required
Always failed.
created_at
string
required
Contact support with the session_id. Customer funds are not lost.

checkout.expired

Session opened but no deposit arrived in the 30-minute window. Use this to mark abandoned orders.
event
string
required
Always checkout.expired.
session_id
string
required
external_id
string
Use this to mark the corresponding order as abandoned.
amount_usdc
number
required
The amount the customer never sent.
currency
string
required
status
string
required
Always expired.
created_at
string
required
Expired sessions cost nothing. The 1% fee is only charged on completed payments.

Best practices

Respond fast, process async

Idempotency

Use session_id as the key — Minisend may redeliver if your server timed out.

Correlate via external_id