Bitcoin payment API
A payment API your backend can reason about.
Create an on-chain Bitcoin payment, expose only the returned payment instructions to checkout, and drive order state from verifiable events.
POST /v1/btc/paymentsapplication/json
Requestcurl
curl -X POST /v1/btc/payments \
-H "Authorization: Bearer $MANATEE_API_KEY" \
-H "Idempotency-Key: order-10042" \
-d '{
"fiat_amount": "51.00",
"fiat_currency": "EUR",
"reference": "order-10042",
"required_confirmations": 1
}'Response201 Created
{
"id": "pay_abc123",
"status": "pending",
"amount_sats": 85000,
"address": "tb1q...",
"expires_at": "2026-07-20T18:30:00Z"
}State model
Four states. One fulfilment decision.
Use payment state as an explicit contract instead of inferring success from a browser redirect.- pending
Instructions issued
Show the exact address, satoshi amount, and expiry returned by the API.
- detected
Transaction seen
A matching transaction is visible, but has not reached your confirmation policy.
- confirmed
Ready to fulfil
The required confirmation threshold is met and a signed event is delivered.
- expired / cancelled
Monitor released
Closed payment attempts stop consuming active monitor capacity.
Integration contract
The production details are part of the interface.
Authentication, retries, event verification, and reconciliation are documented behavior, not assumptions hidden behind an SDK.Start without moving real Bitcoin
Run the full integration on Testnet4 first.
Network-scoped test keySigned webhook verificationDashboard usage visibility