← 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.

Pay-ins: accepting stablecoins

Two collection methods cover the two commercial shapes. Payment Links are single-use: a fixed amount, a live quote, a unique address, an expiry — right for checkout and deposits of an exact amount. Channels are permanent per-customer addresses converted at spot — right for neobank-style top-ups. Both can settle into fiat, a different stablecoin, or the same coin.

A customer tops up a platform account with stablecoins via a BVNK Payment Link: the platform creates a payment with a live quote, BVNK generates a unique deposit address, the customer sends funds on-chain, and BVNK converts and settles into the platform's wallet — in fiat, a different stablecoin, or the same one.

1 / 6
🧑CustomerEnd-user wallet
🏪PlatformMerchant / PSP
⚙️BVNKPayments API + hosted page
⛓️BlockchainETH / TRON / SOL …
1
"Deposit $10 in crypto"
2
POST /api/v1/pay/summary (type: IN)
3
PENDING + quote + deposit address
4
Send exact amount on-chain
5
Transaction detected → PROCESSING
6
Webhook: COMPLETE + wallet credited
Initiation

"Deposit $10 in crypto"

Customer picks stablecoin at the platform's cashier or checkout.

A trading platform, neobank or e-commerce site offers stablecoins as a deposit / payment option next to cards and bank transfers. The customer chooses the amount in the display currency; everything after this is orchestrated through BVNK.

Initiation
Issuer Risk Check
Response
Settlement
Completion

Payment Link status model

StatusFinal?Meaning
PENDINGNoCreated; waiting for an on-chain transaction or expiry. Default window 48 h (expiryMinutes).
PROCESSINGNoTransaction seen on-chain; awaiting confirmations. Can still expire (e.g. insufficient gas).
COMPLETEYesFull amount received, converted, and credited to the wallet.
UNDERPAIDYesPartial amount received and credited — customer sent less than quoted. Handle in reconciliation.
EXPIREDYesNo (sufficient) payment before expiry.

Channel status model

StatusFinal?Meaning
DETECTEDNoTransfer visible at the channel address; a Channel Payment transaction is created and waits for network confirmations.
COMPLETEYesConfirmations reached; funds converted at spot and credited.
1

Create

POST /api/v1/pay/summary with type: IN — or POST /api/v2/channel once per customer. Restrict coins with currencyOptions; skip the selection screen by pinning payInDetails.currency + protocol.

2

Redirect

Send the customer to the returned redirectUrl (hosted page with QR and live rate) rather than showing a raw address — this kills mistyped-address risk.

3

Reconcile

Verify the webhook signature, return 200 fast, then GET /api/v1/pay/{uuid} and credit off the API state — final amounts can differ (UNDERPAID).

Try it live: the BVNK Flow Simulator animates the Payment Link, Channel, and payout sequences step by step with every API call and webhook annotated.

Put it into practice

Next steps

Keep reading

Related articles