Card payments for Belize, with an API.
Take Visa and Mastercard online through the Belize Bank card gateway, without building the integration yourself. Hosted checkout, signed webhooks and a settlement ledger you can reconcile against.
Built on the Belize Bank card gateway · Settled in Belize dollars · PCI SAQ A for you
curl https://api.secureprocessing.app/v1/payment_intents \
-u sk_test_...: \
-d amount=6000 \
-d currency=usd \
-d "description=SCU-B0161 — Blue Hole Two-Tank"Everything a payment needs, and nothing it does not
Hosted checkout
Send your customer to a page hosted by the bank. Card details never reach your servers or ours.
A real REST API
Payment intents, refunds, customers, saved cards and events. Idempotent, cursor-paginated, versioned.
Signed webhooks
Every event, signed and retried for about 35 hours, with a delivery log you can read and replay.
Saved cards
Store a card with the customer's consent and charge it later, without holding the number yourself.
Price in USD, settle in BZD
Charge what you quote. The payment records the rate it was taken at, and refunds use that same rate.
Test mode
A separate set of books and separate keys. Test payments can never appear in your live totals.
Three calls to your first payment
01
Create a payment intent
Say what you are charging and in which currency. Amounts are in minor units, so 6000 is $60.00.
const intent = await sp.paymentIntents.create({ amount: 6000, currency: "usd", });02
Create a checkout session
You get back a URL. Send your customer there; the card is entered on the bank's page.
const session = await sp.checkoutSessions.create({ payment_intent: intent.id, success_url: "https://example.com/thanks", });03
Listen for the webhook
payment_intent.succeeded arrives signed. Verify it, then fulfil the order.
const event = await sp.webhooks.constructEvent( rawBody, signature, secret, );
The card number never reaches you. Or us.
Every flow we offer sends the customer to the bank's own page to type their card. That is what keeps you in scope for the shortest PCI questionnaire, and it is why there is nothing on our side worth stealing.
How we handle securitySigned webhooks
Every delivery carries an HMAC signature and a timestamp. Rotate the secret with a 24-hour overlap.
Append-only ledger
Double-entry, balanced by the database, and nothing can update or delete a posted entry.
Verified, not trusted
The bank's callback is a hint. Money is only released after we ask the bank directly.
No passwords held by us
Sign-in is by passkey or an emailed link, with an authenticator app as the second step.
Start in test mode
Create an account, take a test payment in a few minutes, and talk to us before you go live. Pricing is per successful payment with no monthly fee; the rate is being finalised with the bank.