Skip to main content
Minisend POSTs to your server when a session reaches a terminal state: completed, failed, or expired.
Off-ramp orders emit offramp.* events to the same URL with the same signature and retry behavior — payloads are documented in off-ramp webhooks.

Setup

1

Add your URL

SettingsWebhook URL → paste your HTTPS endpoint (e.g., https://yourbusiness.com/webhooks/minisend).
2

Save

Minisend starts delivering events.
3

Copy your secret

Your webhook_secret is shown in Settings. Use it to verify incoming signatures.
Always verify X-Minisend-Signature before processing. See Verification.

Request format

Your endpoint must return a 2xx within 10 seconds.

Sample payload

Fields

event
string
required
checkout.completed, checkout.failed, or checkout.expired.
session_id
string
required
Use as an idempotency key.
external_id
string
Your reference, if set.
amount_usdc
number
required
USDC-equivalent amount.
amount_local
number
Net local currency after the 1% fee. completed only.
currency
string
Your payout currency: KES, NGN, GHS, or UGX. Always present.
exchange_rate
number
Local currency per 1 USDC at settlement. completed only.
receipt
string
Settlement receipt (e.g., M-Pesa code). completed only.
status
string
required
completed, failed, or expired.
completed_at
string
ISO 8601. completed only.
created_at
string
required
ISO 8601, when the session was created.

Retry policy

Non-2xx or no response in 10s = retry. Up to 5 attempts with exponential backoff: Total window ≈ 42 minutes.
Every delivery attempt is logged. Contact support with a session_id to inspect the log.