← Payment Reference GuidesStablecoin Infrastructure

BVNK Stablecoin Payments — a Mastercard Company

BVNK is enterprise stablecoin payment infrastructure: one API to accept stablecoins from customers, hold balances across fiat and digital currencies, and pay out to any wallet — with BVNK handling quotes, conversion, blockchain monitoring and gas. On August 3, 2026 Mastercard completed its acquisition of BVNK (up to $1.8B), becoming the first major card network to own stablecoin settlement rails. This guide covers the architecture, pay-in and payout transaction flows, the status model, and what the acquisition means.

Payouts: sending stablecoins

A payout sends stablecoins from your BVNK balance to an end-user's wallet. The powerful part is the funding model: the wallet can be fiat — BVNK converts at a locked rate and broadcasts the stablecoin transfer, so a platform can run stablecoin withdrawals while only ever holding USD or EUR. Crypto-to-crypto (including cross-stablecoin conversion) is equally supported.

A platform pays out stablecoins from a fiat balance with a locked quote: validate the destination address, create the payout with twoStep=true to freeze the rate, then confirm within the quote window to execute — BVNK handles conversion, gas, and broadcast.

1 / 6
🏪PlatformFiat wallet holder
⚙️BVNKPayments API + treasury
⛓️BlockchainBeneficiary wallet
1
PUT /api/v1/pay/validate
2
POST /api/v1/pay/summary (type: OUT, twoStep: true)
3
Quote summary: rate + fees
4
PUT /api/v1/pay/{uuid}/confirm/summary
5
Stablecoins broadcast on-chain
6
Webhook: COMPLETE + tx hash
Issuer Risk Check

PUT /api/v1/pay/validate

Destination address, network, and required tags are validated first.

Validation catches malformed addresses and missing metadata before money moves — e.g. XRP payouts to exchanges require a tag for correct crediting. An invalid instruction fails fast with an invalidPayout error instead of burning a quote.

Initiation
Authorization
Issuer Risk Check
Response
Settlement
Completion

Four integration shapes

MethodCallsUse when
Fast API payoutPOST /pay/summary (type OUT)You know the destination address and want a one-shot payout at the current rate.
Estimate → acceptPOST /pay/estimatePUT …/updatePOST …/accept → confirmYou want to display rates, fees and network costs (30-second refresh) before creating anything.
Two-step payoutPOST /pay/summary (twoStep: true) → PUT /pay/{uuid}/confirm/summaryA human must approve against a locked quote — e.g. "accept your 1,000 USDT salary" — within the one-hour quote window.
Hosted / custom pagePOST /pay/summary → redirect, or update/validate/accept API sequenceYou don't know the destination address — the customer enters it on the BVNK-hosted page (validated inline) or in your own UI.

Payout status model

StatusFinal?Meaning
PENDINGNoCreated; waiting for destination address and/or confirmation.
PROCESSINGNoConfirmed; conversion executed, transfer heading on-chain.
COMPLETEYesTransaction registered on-chain with a hash. Irreversible.
CANCELLEDYesCancelled or failed — funds remain in the merchant wallet.
EXPIREDYesQuote or payment window lapsed before completion.

Guard rails worth copying

The API bakes in several protections payment engineers will recognise from card rails — and a few that are chain-specific: address validation before quoting (PUT /pay/validate, incl. required XRP tags), unique references (duplicate reference → error, an idempotency key by another name), insufficient-funds pre-checks (MER-PAY-2012 before anything moves), and the confirm gate — because once broadcast, an on-chain payout has no reversal, no chargeback, no recall.

Compliance rides with every payout: complianceDetails carries requester IP and BENEFICIARY party details (individual or company) for Travel Rule obligations — the stablecoin equivalent of the data that moves in ISO 8583 DE 43/48 and ISO 20022 party blocks.