Charges confirmed on your customer's phone.
Send the request, the customer confirms in their Multicaixa Express app and you get the confirmation in real time — with timeout-proof payment states.
curl -X POST https://api-sandbox.bitpay.ao/v1/payment_intents \-H "Authorization: Bearer $BITPAY_SK" \-H "Content-Type: application/json" \-H 'Idempotency-Key: order-1042' \-d '{"amount": 25000,"currency": "AOA","payment_method": "multicaixa_express","customer": { "mobile": "923000000" }}'
How it works
Create the charge
One POST to the API with the amount and the customer's number. Response in milliseconds.
The customer confirms
The request pops up in their Multicaixa Express app. One tap to pay.
You get the confirmation
Signed webhook plus real-time updates over SSE — no polling.
Automatic reconciliation
A timeout is not a failure: the UNKNOWN state reconciles on its own, with no double charge.
Why with BitPay
The same payment object, the same webhooks and the same reconciliation as every other method — a single integration.
Real time
Event-driven states — your system knows the instant the customer confirms.
Timeout-proof
UNKNOWN state and automatic reconciliation — we never assume failure or success without confirmation.
Idempotency built in
Safe retries by design. The same charge is never issued twice.
Refunds
Full or partial, via API or dashboard, with the state visible at every step.
