How to collect payments in Argentina with Transfers 3.0
How a business outside Argentina collects pesos at checkout over Transfers 3.0: CUIT or CUIL, the CBU or CVU to show, timing, and settling in USD.
To collect pesos at checkout from a business outside Argentina, show the shopper a local account and an exact amount, and let them pay it over Transfers 3.0 from their bank or wallet app. Argentina's central bank says these transfers credit in up to 15 seconds. With BlindPay, the pesos convert on arrival and the merchant receives the dollar price in stablecoins.
This guide is part of the series on what a global payments checkout is. For the full screen design across rails, read bank transfer checkout UX.
Key takeaways
- Transfers 3.0 is a BCRA framework: immediate transfers between CBU and CVU accounts, credited in a maximum of 15 seconds, 24 hours a day.
- A BlindPay transfers payin requires the shopper's CUIT or CUIL in
payer_rules.transfers_allowed_tax_id. - The shopper pays a CBU, CVU, or alias returned in
tracking_transaction.transfers_instruction, in whole pesos. - A payin quote locks the ARS rate and fees for 5 minutes, so peso swings stay outside the checkout.
- Late money is not lost: a failed transfers payin revives and completes when the tax ID and amount match.
What is Transfers 3.0?
Transfers 3.0 is the Central Bank of the Argentine Republic's program for immediate, interoperable transfers. The BCRA describes online crediting in a maximum of 15 seconds between two accounts, every day, 24 hours.
Three parts matter for a checkout:
- CBU and CVU. A CBU identifies a bank account. A CVU identifies an account at a payment service provider, the wallet apps many Argentines use daily. Transfers 3.0 works across both.
- Interoperable QR. No matter the brand of the QR code, a shopper can pay with any wallet. The rail stopped belonging to one app.
- Irrevocable credit. The BCRA says merchants receive the credit automatically and the payments are irrevocable. There is no card-style chargeback to plan around.
For a foreign merchant, that adds up to a bank transfer that behaves like an instant payment. The shopper never types a card number.
How does a Transfers 3.0 checkout work from start to finish?
The shopper picks Argentina, enters a tax ID, sees a peso amount, and pays a local account from their own app. Your backend does four API calls around that.
- The shopper chooses Argentina. Your country picker shows "Bank transfer" with a short hint, such as "Pay from any Argentine bank or wallet app."
- The checkout collects payer details. Name, email, and CUIT or CUIL. Validate the format (for example
20-12345678-6) in the browser. - Your backend creates a payin quote.
payment_method: "transfers",currency_type: "receiver",cover_fees: true, the USD price asrequest_amount, andpayer_rules.transfers_allowed_tax_id. - The page shows the price. The quote's
sender_amountis what the shopper pays in pesos, fees and exchange included, with a countdown toexpires_at. - The shopper confirms. Your backend creates the payin with
POST /v1/instances/{instance_id}/payins/evmand anIdempotency-Key. The same endpoint serves every rail; the path name is historical. - The page shows instructions. The account from
tracking_transaction.transfers_instruction.account, itstype(CBU, CVU, or alias), and the exact ARS amount. - The shopper pays. They send the transfer from their app.
- BlindPay detects the deposit. It converts the pesos and delivers stablecoins to the merchant's wallet, then fires
payin.complete.
Confirm the order from the payin's status, not from the webhook name. payin.complete fires when the payin finishes, and completed is the only status that means the merchant got paid.
What does the shopper need, and why does BlindPay ask for a tax ID?
The shopper needs an Argentine bank or wallet account and their CUIT or CUIL. BlindPay requires the tax ID on the quote so it can match the incoming transfer to the right payin and screen the payer.
| Field | Where it goes | Why it matters |
|---|---|---|
| CUIT or CUIL | payer_rules.transfers_allowed_tax_id on the payin quote | BlindPay matches the deposit to this tax ID, and a late payment revives only on a match |
| Shopper name and email | Your checkout session | Receipts, support, and your own records |
| Peso amount | sender_amount on the quote | Must be sent exactly; ARS settles in whole units |
| Account | tracking_transaction.transfers_instruction.account and .type | The CBU, CVU, or alias the shopper pays |
A CUIT identifies a taxpayer, usually a business or a self-employed person. A CUIL identifies a worker. Either works in the payer rule.
Ask for the tax ID before the price, not after. If the shopper pays from an account under a different tax ID, the transfer will not match the payin.
How do you handle peso volatility at checkout?
Price in dollars, quote in pesos, and let the quote absorb the timing. The live quote guide for volatile currencies covers the mechanics in depth.
The ARS rate can move between the moment a shopper opens your page and the moment they pay. A BlindPay payin quote locks the rate and fees for 5 minutes. That gives you two clean rules:
- The shopper pays the quoted pesos. Show
sender_amountlarge, with "Includes fees and exchange" under it. - The merchant receives the dollar price. With
currency_type: "receiver"andcover_fees: true,receiver_amountequals the USD price.
If the countdown runs out before the shopper confirms, request a new quote on the next click and show the new amount without an error message. Once the payin exists, the rate is set.
Two more details. ARS settles in whole units, so a sender-denominated request_amount must be a multiple of 100 minor units, and computed sender amounts round down to a whole peso. And the quote enforces a minimum and maximum per currency, so read the error if an order is too small or too large and offer another rail. Pricing in local currency explains when to show, charge, and settle in which currency.
How fast is settlement, and what if the transfer arrives late?
The rail is fast. Most delays come from the shopper switching apps or getting distracted.
On production, a transfers payin typically arrives within minutes, and BlindPay's cut-off reference lists Transfers payin arrival at up to 10 minutes. BlindPay waits up to 30 minutes before it marks the payin failed.
Late money has a safety net. If the funding for a transfers payin arrives after it was marked failed, and no stablecoins were sent yet, BlindPay revives the payin back to processing and completes it once it matches the sender's tax ID and amount. Your checkout should listen for that: a session you marked failed can still turn into a paid one.
Two status values need their own screen. on_hold means manual risk or compliance review, so show "Your payment is being reviewed" and keep the order open. refunded means the deposit went back to the sender. Why on-ramp deposits fail lists the usual causes, such as a wrong amount or a missing reference.
How does BlindPay fit into an Argentina checkout?
BlindPay is the money layer: it holds the local account, matches the transfer, converts pesos, and settles the merchant in dollars. You build the checkout page and sessions on the API.
Each merchant is a BlindPay business customer that accepts terms of service and passes KYB. Its money lands in a BlindPay-managed wallet or an external wallet it controls, as USDC or USDT. BlindPay-managed wallets are custodial; payouts from a wallet you control are non-custodial.
From there the merchant can withdraw. A payout quote locks the rate and fees for 5 minutes, then BlindPay delivers over ACH, wire, RTP, or SWIFT (POBO/COBO) with UETR tracking and MT103 confirmations, or back to Argentina over Transfers 3.0 if the merchant has peso costs.
Pricing follows the BlindPay model: a monthly plan plus per-transaction fees that vary by rail and network, disclosed only in the live quote before execute. A platform can add its own margin with a partner fee on each payin quote.
On a development instance, every payin completes about 30 seconds after creation, so you can build the whole Argentina flow before you see a real peso.
Who this is for: online sellers, marketplaces, and SaaS companies outside Argentina that want Argentine shoppers to pay from the apps they already use.
Methodology and sources
Rail facts come from the BCRA's Transfers 3.0 page. Checkout behavior benchmarks come from Baymard's cart abandonment research, where 9% of US shoppers left a checkout because there were not enough payment methods, and Stripe's localization guide, which recommends local language and suppressing irrelevant methods. BlindPay facts come from the payins, payin quotes, and cut-off times docs, as of October 2026. For the payout side of the corridor, see USDC to ARS routes in 2026.
What to do next
Add Argentina to your country picker with one field for CUIT or CUIL. Then open a BlindPay development instance, create a transfers payin quote with a test tax ID, and run the payin quickstart until your instructions screen shows the account and the exact peso amount.
FAQ
More payments articles
See all payments articlesHow to accept SPEI payments in Mexico at checkout (2026)
How a business accepts SPEI transfers from Mexican shoppers in 2026: CLABE instructions, exact MXN amounts, CLABE virtual accounts, and USD settlement.
How to accept PSE payments in Colombia from abroad (2026)
How a business outside Colombia accepts PSE bank payments at checkout in 2026: payer details, the bank redirect, COP amounts, USD settlement, and payouts.
Best on/off-ramp APIs with live quotes in 2026: 11 providers compared
11 on/off-ramp APIs compared, from BlindPay and BVNK to MoonPay, Transak, Coinbase, Stripe, and Onramper, on quote locks, rails, custody, and limits.