Accept Bitcoin Payments
Manatee API helps your backend accept on-chain Bitcoin payments without running your own Bitcoin node, mempool monitor, confirmation worker, or webhook retry pipeline.
The payment flow stays non-custodial: your customer sends Bitcoin directly to a wallet address you control. Manatee watches the payment address, tracks the transaction lifecycle, and notifies your application when the payment is detected and confirmed.
How the checkout flow works
- Your checkout creates an order in your own system.
- Your backend calls
POST /v1/btc/paymentswith the amount in satoshis, confirmation policy, expiry, and webhook URL. - Manatee returns a Bitcoin receiving address and a payment ID.
- Your frontend shows the address, exact amount, and expiry time to the customer.
- Manatee watches the Bitcoin network and sends signed webhook events as the payment status changes.
- Your backend verifies the webhook signature and marks the order as paid after
payment.confirmed.
What Manatee handles
- Payment address monitoring
- Mempool detection
- Confirmation tracking
- Payment expiry while the payment is still pending
- Signed webhook delivery
- Webhook retry attempts
- Payment lookup by API
What stays in your system
- Product pricing and fiat-to-BTC conversion
- Customer checkout UI
- Wallet ownership and refund handling
- Order fulfillment policy
- Accounting and reconciliation records
Recommended production setup
Use a dedicated business wallet or wallet account for Manatee payments. Configure a receive descriptor or extended public key so each payment gets a fresh receiving address. Store the returned Manatee payment ID next to your own order ID and process webhook events idempotently.
Make your webhook route reachable by server-to-server HTTP requests. If your site uses Cloudflare, a WAF, bot protection, captchas, browser challenges, or login redirects, bypass those protections only for the webhook path and verify requests with the X-Signature HMAC header.
For the complete first integration, start with the Quickstart.