[{"data":1,"prerenderedAt":918},["ShallowReactive",2],{"content-\u002Fresources\u002Fmore\u002Fwhy-crypto-on-ramp-deposits-fail":3,"resources-category-why-crypto-on-ramp-deposits-fail":635},{"id":4,"title":5,"authors":6,"body":7,"categories":6,"category":602,"categoryType":6,"compare":6,"contributors":6,"date":603,"description":604,"extension":605,"faq":606,"howto":6,"isBlog":625,"isChangelog":625,"meta":626,"navigation":628,"path":629,"pillar":625,"products":6,"rawbody":630,"role":6,"seo":631,"seoTitle":632,"stem":633,"thumbnail":6,"updated":603,"__hash__":634},"content\u002Fresources\u002Fmore\u002Fwhy-crypto-on-ramp-deposits-fail.md","Why crypto on-ramp deposits fail: missing references, late transfers, holds, and refunds",null,{"type":8,"value":9,"toc":586},"minimark",[10,14,23,28,47,51,54,121,145,149,156,159,170,178,182,185,188,203,207,210,241,244,248,251,304,322,325,329,337,351,359,363,366,386,394,398,401,429,432,436,439,506,532,536,556,560,563,575],[11,12,13],"p",{},"Most crypto on-ramp deposits that fail don't fail on-chain. They fail on the fiat side: a bank transfer sent without its reference, a payment from the wrong person, an amount that doesn't match the quote, a transfer that arrives after the window closed, or a compliance hold nobody answered. Where the money ends up depends on how far it got.",[11,15,16,17,22],{},"This is the support playbook for those cases. The payout side has its own version in ",[18,19,21],"a",{"href":20},"\u002Fresources\u002Fmore\u002Fstablecoin-payout-mistakes","stablecoin payout mistakes",".",[24,25,27],"h2",{"id":26},"key-takeaways","Key takeaways",[29,30,31,35,38,41,44],"ul",{},[32,33,34],"li",{},"An on-ramp has to match each incoming bank transfer to one quote. Anything that breaks the match (no reference, wrong payer, wrong amount) breaks the deposit.",[32,36,37],{},"Deposits have a waiting window per rail. Minutes for Pix and SPEI, days for ACH. Late money can fail even though it arrived.",[32,39,40],{},"Holds are reviews, not failures. Answer the request for information fast.",[32,42,43],{},"\"Refunded\" and \"failed\" are different outcomes for your ledger and for the customer.",[32,45,46],{},"A stablecoin delivered to the wrong address is the one failure nobody can fix after the fact.",[24,48,50],{"id":49},"where-does-the-money-go-when-an-on-ramp-fails","Where does the money go when an on-ramp fails?",[11,52,53],{},"Locate the money first. Every failure sits at one of three points.",[55,56,57,76],"table",{},[58,59,60],"thead",{},[61,62,63,67,70,73],"tr",{},[64,65,66],"th",{},"Where it stopped",[64,68,69],{},"What happened to the fiat",[64,71,72],{},"What happened to the stablecoins",[64,74,75],{},"What to tell the customer",[77,78,79,94,107],"tbody",{},[61,80,81,85,88,91],{},[82,83,84],"td",{},"Before the deposit arrived",[82,86,87],{},"Never left the payer's bank, or never reached the provider",[82,89,90],{},"None were sent",[82,92,93],{},"Nothing was charged; start over with a new quote",[61,95,96,99,102,104],{},[82,97,98],{},"After the deposit, before conversion",[82,100,101],{},"Held by the provider, then returned to the sender if it can't settle",[82,103,90],{},[82,105,106],{},"The money is coming back; bank timing applies",[61,108,109,112,115,118],{},[82,110,111],{},"After delivery",[82,113,114],{},"Converted",[82,116,117],{},"In the destination wallet",[82,119,120],{},"Check the wallet and the network before anything else",[11,122,123,124,128,129,132,133,136,137,139,140,144],{},"On BlindPay, a payin ends as ",[125,126,127],"code",{},"completed",", ",[125,130,131],{},"failed",", or ",[125,134,135],{},"refunded",". ",[125,138,135],{}," means the deposit went back to the sender. Fiat refunds are credited once the bank network returns the funds, which depends on each bank's processing time, and fees may apply. ",[18,141,143],{"href":142},"\u002Fresources\u002Fmore\u002Fcustodial-vs-non-custodial-off-ramps","How a non-custodial model handles this"," matters here: the provider never holds a balance it could lose.",[24,146,148],{"id":147},"failure-1-the-transfer-has-no-reference","Failure 1: the transfer has no reference",[11,150,151,152,155],{},"When many customers pay into one shared bank account, the on-ramp tells them apart by a reference code. On BlindPay that's the ",[125,153,154],{},"memo_code"," shown with the bank details for ACH and wire payins. A transfer without it lands in the right account with nothing to tie it to a quote.",[11,157,158],{},"What goes wrong in practice:",[29,160,161,164,167],{},[32,162,163],{},"The payer's bank app has a short memo field and truncates the code.",[32,165,166],{},"A finance team pastes the bank details into a payment template and reuses an old code.",[32,168,169],{},"The payer types the code into the \"beneficiary name\" field instead of the reference field.",[11,171,172,173,177],{},"The fix is structural: give recurring payers a dedicated account number. With a ",[18,174,176],{"href":175},"\u002Fresources\u002Fmore\u002Fvirtual-account-reconciliation","virtual account",", every deposit to that account number belongs to that customer, so there's no code to forget. BlindPay ignores the memo code for ACH and wire when the customer has an approved virtual account. RTP is the exception and always uses the memo-code path.",[24,179,181],{"id":180},"failure-2-the-wrong-person-paid","Failure 2: the wrong person paid",[11,183,184],{},"Instant rails let an on-ramp check who is paying, and good ones do. On BlindPay a Pix payin quote can list the CPF or CNPJ tax IDs allowed to pay. Transfers 3.0 in Argentina requires the payer's CUIT or CUIL, and PSE in Colombia requires the payer's name, document, email, phone, and bank. The tax IDs are validated when the quote is created, so a malformed CPF fails before anyone sends money.",[11,186,187],{},"The failure comes later, when someone else pays. A company quoted under its own CNPJ, and an employee paid from a personal account. A parent paid for a child. The deposit arrives from a payer the quote didn't allow, so it doesn't match the payin it was meant for.",[11,189,190,191,197,198,202],{},"This rule exists for a reason. Regulators expect an on-ramp to know who is really funding each payment, a principle that runs through ",[18,192,196],{"href":193,"rel":194},"https:\u002F\u002Fwww.fatf-gafi.org\u002Fen\u002Fpublications\u002FFatfrecommendations\u002FGuidance-rba-virtual-assets-2021.html",[195],"nofollow","FATF's virtual asset guidance",". Tell payers up front, in your UI, that the transfer must come from their own account. ",[18,199,201],{"href":200},"\u002Fresources\u002Fmore\u002Fpix-key-cpf-clabe-payout-details","Pix keys, CPF, and CLABE"," covers the identifiers on the payout side.",[24,204,206],{"id":205},"failure-3-the-amount-doesnt-match","Failure 3: the amount doesn't match",[11,208,209],{},"The quote fixes a fiat amount. The bank transfer has to match it.",[29,211,212,219,225,235],{},[32,213,214,218],{},[215,216,217],"strong",{},"Rounded or partial amounts."," The payer sends R$1,000 against a quote for R$1,000.50, or splits it into two transfers.",[32,220,221,224],{},[215,222,223],{},"Bank fees taken in transit."," A wire arrives short because an intermediary bank deducted its charge.",[32,226,227,230,231,234],{},[215,228,229],{},"Fractions on whole-unit rails."," On BlindPay, MXN, COP, and ARS payins settle in whole currency units. A sender-side quote with centavos is rejected with ",[125,232,233],{},"request_amount_must_be_a_whole_currency_unit",", because a fractional amount would be truncated on arrival and could come back as an invalid payment.",[32,236,237,240],{},[215,238,239],{},"Out of range."," Payin quotes enforce a minimum and maximum per currency, and the customer's own per-transaction limit applies on top. Deposits into a virtual account skip the per-currency minimums.",[11,242,243],{},"Show the exact amount, with every decimal, next to the instructions. If your users pay from banking apps that round, quote whole amounts.",[24,245,247],{"id":246},"failure-4-the-money-arrived-late","Failure 4: the money arrived late",[11,249,250],{},"An on-ramp can't wait forever for a deposit, because the quote's rate was locked against a market that kept moving. Each rail gets a waiting window.",[55,252,253,263],{},[58,254,255],{},[61,256,257,260],{},[64,258,259],{},"Rail",[64,261,262],{},"How long BlindPay waits for the deposit",[77,264,265,273,281,288,296],{},[61,266,267,270],{},[82,268,269],{},"Pix (Brazil)",[82,271,272],{},"Up to 30 minutes, with a reconciliation check before failing",[61,274,275,278],{},[82,276,277],{},"SPEI (Mexico)",[82,279,280],{},"Up to 30 minutes",[61,282,283,286],{},[82,284,285],{},"Transfers 3.0 (Argentina)",[82,287,280],{},[61,289,290,293],{},[82,291,292],{},"PSE (Colombia)",[82,294,295],{},"Up to 30 minutes, since the bank redirect and two-factor step can lag",[61,297,298,301],{},[82,299,300],{},"ACH, wire (US)",[82,302,303],{},"Up to 5 business days",[11,305,306,307,312,313,318,319,321],{},"Pix and SPEI run around the clock under ",[18,308,311],{"href":309,"rel":310},"https:\u002F\u002Fwww.bcb.gov.br\u002Fen\u002Ffinancialstability\u002Fpix_en",[195],"Banco Central do Brasil"," and ",[18,314,317],{"href":315,"rel":316},"https:\u002F\u002Fwww.banxico.org.mx\u002Fservices\u002Finterbanking-electronic-payme.html",[195],"Banxico",", so a 30-minute window is generous when the payer acts right away. The usual problem is a payer who copies the Pix code and pays the next morning. One exception helps: if a Transfers 3.0 deposit arrives after the payin was marked ",[125,320,131],{}," and no stablecoins were sent yet, BlindPay revives it and completes it once the sender's tax ID and amount match.",[11,323,324],{},"OTC Pix quotes work differently. They wait until a fixed daily cutoff, and a deposit that never arrives adds a $100.00 penalty to the billing fee. Only quote OTC when the payer is ready to pay.",[24,326,328],{"id":327},"failure-5-the-payment-went-on-hold","Failure 5: the payment went on hold",[11,330,331,332,336],{},"A hold isn't a failure. It's a review. BlindPay's transaction monitoring flags payins that look unusual, and the compliance team reviews each one. Common triggers, per the ",[18,333,335],{"href":334},"\u002Fdocs\u002Fkb\u002Fcut-off-times","cut-off times reference",":",[29,338,339,342,345,348],{},[32,340,341],{},"A first deposit, or a pattern that doesn't fit the customer's history",[32,343,344],{},"A large amount relative to past activity",[32,346,347],{},"A sanctions or watchlist screening match",[32,349,350],{},"An open request for information on the customer",[11,352,353,354,358],{},"If the flag can't be cleared internally, BlindPay sends a request for information asking for the relationship between the payer and the customer, the purpose of the payment, and the expected outcome. If it isn't answered within 24 hours, the payment may be refunded to the sender. Route these requests to someone who can answer the same day. ",[18,355,357],{"href":356},"\u002Fresources\u002Fmore\u002Freal-time-transaction-monitoring-stablecoin-payments","Real-time transaction monitoring"," explains what the system is looking for.",[24,360,362],{"id":361},"failure-6-the-wallet-was-wrong","Failure 6: the wallet was wrong",[11,364,365],{},"This is the expensive one. The on-ramp did everything right and delivered stablecoins to the address on file. The address was wrong.",[29,367,368,374,380],{},[32,369,370,373],{},[215,371,372],{},"A typo in a pasted address."," On Solana, Stellar, and Tron the address is submitted directly, with no signature to prove ownership.",[32,375,376,379],{},[215,377,378],{},"The right address on the wrong network."," EVM addresses look the same on Ethereum, Polygon, Base, and Arbitrum.",[32,381,382,385],{},[215,383,384],{},"The wrong token for the network."," USDC isn't deployed on Tron, and USDT isn't on Base, Arbitrum, or Stellar. Quote creation rejects these pairs, so this one is caught early.",[11,387,388,389,393],{},"A non-custodial on-ramp has no key to the destination wallet. BlindPay can't access, freeze, or recover funds in an external wallet, and an on-chain transfer can't be reversed. On EVM networks, have the customer register the wallet by signing a message so the address is recovered from the signature instead of typed. ",[18,390,392],{"href":391},"\u002Fresources\u002Fmore\u002Fwhat-happens-on-chain-in-a-stablecoin-payment","What happens on-chain"," shows why there's no undo.",[24,395,397],{"id":396},"failure-7-the-customer-wasnt-ready","Failure 7: the customer wasn't ready",[11,399,400],{},"Some payins never get a quote at all:",[29,402,403,413,423],{},[32,404,405,408,409,412],{},[215,406,407],{},"KYC isn't approved."," The customer is still ",[125,410,411],{},"verifying",", or has an open request for information.",[32,414,415,418,419,422],{},[215,416,417],{},"Terms of service changed."," When BlindPay updates its terms, quotes for customers who accepted an older version return ",[125,420,421],{},"please_accept_terms_of_service"," until they accept again.",[32,424,425,428],{},[215,426,427],{},"Limits."," KYC Standard customers have a $10,000 per-transaction payin limit by default, KYB Standard $30,000, and KYC Enhanced $50,000. Larger deposits need a limit increase first.",[11,430,431],{},"These show up as quote errors, not failed payins, which makes them the easiest to handle: catch the error and tell the customer what to do.",[24,433,435],{"id":434},"how-do-you-tell-a-failure-from-a-refund-in-code","How do you tell a failure from a refund in code?",[11,437,438],{},"Handle every final status explicitly.",[55,440,441,454],{},[58,442,443],{},[61,444,445,448,451],{},[64,446,447],{},"Status",[64,449,450],{},"Meaning",[64,452,453],{},"Your action",[77,455,456,468,480,492],{},[61,457,458,462,465],{},[82,459,460],{},[125,461,127],{},[82,463,464],{},"Stablecoins delivered",[82,466,467],{},"Credit the customer, show the transaction hash",[61,469,470,474,477],{},[82,471,472],{},[125,473,135],{},[82,475,476],{},"Deposit returned to the sender",[82,478,479],{},"Mark as returned; tell the customer the bank will credit it back",[61,481,482,486,489],{},[82,483,484],{},[125,485,131],{},[82,487,488],{},"Didn't go through",[82,490,491],{},"Check whether money arrived before you say anything; open a support case if it did",[61,493,494,500,503],{},[82,495,496,499],{},[125,497,498],{},"on_hold"," (not final)",[82,501,502],{},"Under review",[82,504,505],{},"Show \"in review\"; watch for a request for information",[11,507,508,509,128,512,515,516,515,519,521,522,526,527,531],{},"Payin events arrive as ",[125,510,511],{},"payin.new",[125,513,514],{},"payin.update",", and ",[125,517,518],{},"payin.complete",[125,520,518],{}," covers all three final outcomes, so read the status field instead of assuming success. ",[18,523,525],{"href":524},"\u002Fresources\u002Fmore\u002Fstablecoin-api-webhooks-reconciliation","Stablecoin API webhooks"," covers signature checks and ordering, and ",[18,528,530],{"href":529},"\u002Fresources\u002Fmore\u002Fhow-to-integrate-a-crypto-on-ramp-api","integrating a crypto on-ramp API"," shows the full flow these statuses come from.",[24,533,535],{"id":534},"how-do-you-test-failure-paths-before-launch","How do you test failure paths before launch?",[11,537,538,539,542,543,546,547,312,549,552,553,555],{},"On a BlindPay development instance, set a payin's ",[125,540,541],{},"request_amount"," to ",[125,544,545],{},"66600"," ($666.00) to force ",[125,548,131],{},[125,550,551],{},"77700"," ($777.00) to force ",[125,554,135],{},". Every other amount completes about 30 seconds after creation. Run both outcomes through your webhook handler, your ledger, and your customer emails. Then check that a refunded payin doesn't show as a balance anywhere.",[24,557,559],{"id":558},"what-to-do-next","What to do next",[11,561,562],{},"Pull last month's failed and refunded on-ramp payments and tag each one with a failure number from this list. Most teams find two causes account for most of them, usually missing references and late payers. Fix those with virtual accounts and a countdown next to the Pix code, and the support queue shrinks.",[11,564,565,566,570,571,22],{},"Some failures are really pricing surprises, like a wire that arrived short. ",[18,567,569],{"href":568},"\u002Fresources\u002Fmore\u002Fcrypto-on-ramp-fees-explained","Crypto on-ramp fees explained"," covers what the quote includes. For the wider picture of how business on-ramps differ from consumer ones, start with ",[18,572,574],{"href":573},"\u002Fresources\u002Fmore\u002Fbusiness-vs-consumer-crypto-on-ramps","business vs consumer crypto on-ramps",[11,576,577],{},[578,579,580,581,585],"em",{},"This article is general information, not legal, tax, or financial advice. Waiting windows, limits, and statuses can change; check the ",[18,582,584],{"href":583},"\u002Fdocs\u002Fpayins","payins docs"," for current behavior.",{"title":587,"searchDepth":588,"depth":588,"links":589},"",2,[590,591,592,593,594,595,596,597,598,599,600,601],{"id":26,"depth":588,"text":27},{"id":49,"depth":588,"text":50},{"id":147,"depth":588,"text":148},{"id":180,"depth":588,"text":181},{"id":205,"depth":588,"text":206},{"id":246,"depth":588,"text":247},{"id":327,"depth":588,"text":328},{"id":361,"depth":588,"text":362},{"id":396,"depth":588,"text":397},{"id":434,"depth":588,"text":435},{"id":534,"depth":588,"text":535},{"id":558,"depth":588,"text":559},"payments","2026-09-27","Most failed on-ramps fail on the fiat side: a missing reference, the wrong payer, a late transfer, a hold. What happens to the money in each case.","md",[607,610,613,616,619,622],{"q":608,"a":609},"Why did my crypto on-ramp deposit fail?","Usually because the fiat side didn't match what the on-ramp expected. Common causes are a bank transfer sent without the reference code, a payment from someone other than the approved payer, an amount that differs from the quote, or a transfer that arrived after the waiting window closed. Less often, a compliance hold that wasn't answered in time ends in a refund.",{"q":611,"a":612},"What happens to my money if an on-ramp fails?","It depends on how far the payment got. If the fiat never arrived, nothing moved and there's nothing to return. If the fiat arrived but couldn't be converted, a well-run on-ramp returns it to the sender's bank account, which takes as long as the bank network does and can carry fees. Stablecoins that were already delivered stay in the destination wallet.",{"q":614,"a":615},"What is the difference between a failed and a refunded on-ramp payment?","A refunded payment means the deposit was returned to the sender. A failed payment means it didn't go through, which can mean the money never arrived or that something needs investigating. On BlindPay both are final statuses, so treat refunded as money on its way back and failed as a case to check before telling the customer anything.",{"q":617,"a":618},"Can I get stablecoins back if the on-ramp sent them to the wrong wallet?","Usually not. A confirmed stablecoin transfer can't be reversed, and a non-custodial on-ramp has no key to the destination wallet. If the address belongs to someone who cooperates, they can send the funds back. Otherwise they're gone, which is why the address has to be checked when the wallet is registered.",{"q":620,"a":621},"How long does an on-ramp wait for my bank transfer?","It depends on the rail. On BlindPay, Pix, SPEI, Transfers 3.0, and PSE payins wait up to 30 minutes before failing, and ACH and wire payins wait up to 5 business days. If you pay after the window closes, request a new quote instead of reusing the old instructions.",{"q":623,"a":624},"Why was my on-ramp payment put on hold?","Transaction monitoring flagged it for a manual review. Common triggers are a first large deposit, an amount out of line with the customer's history, or a sanctions screening match. The provider may ask for the purpose of the payment and the relationship between the payer and the customer. Answer quickly, because an unanswered request can end in a refund.",false,{"author":627},"BlindPay Team",true,"\u002Fresources\u002Fmore\u002Fwhy-crypto-on-ramp-deposits-fail","---\ntitle: \"Why crypto on-ramp deposits fail: missing references, late transfers, holds, and refunds\"\nseoTitle: \"Why crypto on-ramp deposits fail, and where the money goes\"\ndescription: \"Most failed on-ramps fail on the fiat side: a missing reference, the wrong payer, a late transfer, a hold. What happens to the money in each case.\"\ndate: \"2026-09-27\"\nupdated: \"2026-09-27\"\nauthor: \"BlindPay Team\"\ncategory: \"payments\"\nfaq:\n  - q: \"Why did my crypto on-ramp deposit fail?\"\n    a: \"Usually because the fiat side didn't match what the on-ramp expected. Common causes are a bank transfer sent without the reference code, a payment from someone other than the approved payer, an amount that differs from the quote, or a transfer that arrived after the waiting window closed. Less often, a compliance hold that wasn't answered in time ends in a refund.\"\n  - q: \"What happens to my money if an on-ramp fails?\"\n    a: \"It depends on how far the payment got. If the fiat never arrived, nothing moved and there's nothing to return. If the fiat arrived but couldn't be converted, a well-run on-ramp returns it to the sender's bank account, which takes as long as the bank network does and can carry fees. Stablecoins that were already delivered stay in the destination wallet.\"\n  - q: \"What is the difference between a failed and a refunded on-ramp payment?\"\n    a: \"A refunded payment means the deposit was returned to the sender. A failed payment means it didn't go through, which can mean the money never arrived or that something needs investigating. On BlindPay both are final statuses, so treat refunded as money on its way back and failed as a case to check before telling the customer anything.\"\n  - q: \"Can I get stablecoins back if the on-ramp sent them to the wrong wallet?\"\n    a: \"Usually not. A confirmed stablecoin transfer can't be reversed, and a non-custodial on-ramp has no key to the destination wallet. If the address belongs to someone who cooperates, they can send the funds back. Otherwise they're gone, which is why the address has to be checked when the wallet is registered.\"\n  - q: \"How long does an on-ramp wait for my bank transfer?\"\n    a: \"It depends on the rail. On BlindPay, Pix, SPEI, Transfers 3.0, and PSE payins wait up to 30 minutes before failing, and ACH and wire payins wait up to 5 business days. If you pay after the window closes, request a new quote instead of reusing the old instructions.\"\n  - q: \"Why was my on-ramp payment put on hold?\"\n    a: \"Transaction monitoring flagged it for a manual review. Common triggers are a first large deposit, an amount out of line with the customer's history, or a sanctions screening match. The provider may ask for the purpose of the payment and the relationship between the payer and the customer. Answer quickly, because an unanswered request can end in a refund.\"\n---\n\nMost crypto on-ramp deposits that fail don't fail on-chain. They fail on the fiat side: a bank transfer sent without its reference, a payment from the wrong person, an amount that doesn't match the quote, a transfer that arrives after the window closed, or a compliance hold nobody answered. Where the money ends up depends on how far it got.\n\nThis is the support playbook for those cases. The payout side has its own version in [stablecoin payout mistakes](\u002Fresources\u002Fmore\u002Fstablecoin-payout-mistakes).\n\n## Key takeaways\n\n- An on-ramp has to match each incoming bank transfer to one quote. Anything that breaks the match (no reference, wrong payer, wrong amount) breaks the deposit.\n- Deposits have a waiting window per rail. Minutes for Pix and SPEI, days for ACH. Late money can fail even though it arrived.\n- Holds are reviews, not failures. Answer the request for information fast.\n- \"Refunded\" and \"failed\" are different outcomes for your ledger and for the customer.\n- A stablecoin delivered to the wrong address is the one failure nobody can fix after the fact.\n\n## Where does the money go when an on-ramp fails?\n\nLocate the money first. Every failure sits at one of three points.\n\n| Where it stopped | What happened to the fiat | What happened to the stablecoins | What to tell the customer |\n| --- | --- | --- | --- |\n| Before the deposit arrived | Never left the payer's bank, or never reached the provider | None were sent | Nothing was charged; start over with a new quote |\n| After the deposit, before conversion | Held by the provider, then returned to the sender if it can't settle | None were sent | The money is coming back; bank timing applies |\n| After delivery | Converted | In the destination wallet | Check the wallet and the network before anything else |\n\nOn BlindPay, a payin ends as `completed`, `failed`, or `refunded`. `refunded` means the deposit went back to the sender. Fiat refunds are credited once the bank network returns the funds, which depends on each bank's processing time, and fees may apply. [How a non-custodial model handles this](\u002Fresources\u002Fmore\u002Fcustodial-vs-non-custodial-off-ramps) matters here: the provider never holds a balance it could lose.\n\n## Failure 1: the transfer has no reference\n\nWhen many customers pay into one shared bank account, the on-ramp tells them apart by a reference code. On BlindPay that's the `memo_code` shown with the bank details for ACH and wire payins. A transfer without it lands in the right account with nothing to tie it to a quote.\n\nWhat goes wrong in practice:\n\n- The payer's bank app has a short memo field and truncates the code.\n- A finance team pastes the bank details into a payment template and reuses an old code.\n- The payer types the code into the \"beneficiary name\" field instead of the reference field.\n\nThe fix is structural: give recurring payers a dedicated account number. With a [virtual account](\u002Fresources\u002Fmore\u002Fvirtual-account-reconciliation), every deposit to that account number belongs to that customer, so there's no code to forget. BlindPay ignores the memo code for ACH and wire when the customer has an approved virtual account. RTP is the exception and always uses the memo-code path.\n\n## Failure 2: the wrong person paid\n\nInstant rails let an on-ramp check who is paying, and good ones do. On BlindPay a Pix payin quote can list the CPF or CNPJ tax IDs allowed to pay. Transfers 3.0 in Argentina requires the payer's CUIT or CUIL, and PSE in Colombia requires the payer's name, document, email, phone, and bank. The tax IDs are validated when the quote is created, so a malformed CPF fails before anyone sends money.\n\nThe failure comes later, when someone else pays. A company quoted under its own CNPJ, and an employee paid from a personal account. A parent paid for a child. The deposit arrives from a payer the quote didn't allow, so it doesn't match the payin it was meant for.\n\nThis rule exists for a reason. Regulators expect an on-ramp to know who is really funding each payment, a principle that runs through [FATF's virtual asset guidance](https:\u002F\u002Fwww.fatf-gafi.org\u002Fen\u002Fpublications\u002FFatfrecommendations\u002FGuidance-rba-virtual-assets-2021.html). Tell payers up front, in your UI, that the transfer must come from their own account. [Pix keys, CPF, and CLABE](\u002Fresources\u002Fmore\u002Fpix-key-cpf-clabe-payout-details) covers the identifiers on the payout side.\n\n## Failure 3: the amount doesn't match\n\nThe quote fixes a fiat amount. The bank transfer has to match it.\n\n- **Rounded or partial amounts.** The payer sends R$1,000 against a quote for R$1,000.50, or splits it into two transfers.\n- **Bank fees taken in transit.** A wire arrives short because an intermediary bank deducted its charge.\n- **Fractions on whole-unit rails.** On BlindPay, MXN, COP, and ARS payins settle in whole currency units. A sender-side quote with centavos is rejected with `request_amount_must_be_a_whole_currency_unit`, because a fractional amount would be truncated on arrival and could come back as an invalid payment.\n- **Out of range.** Payin quotes enforce a minimum and maximum per currency, and the customer's own per-transaction limit applies on top. Deposits into a virtual account skip the per-currency minimums.\n\nShow the exact amount, with every decimal, next to the instructions. If your users pay from banking apps that round, quote whole amounts.\n\n## Failure 4: the money arrived late\n\nAn on-ramp can't wait forever for a deposit, because the quote's rate was locked against a market that kept moving. Each rail gets a waiting window.\n\n| Rail | How long BlindPay waits for the deposit |\n| --- | --- |\n| Pix (Brazil) | Up to 30 minutes, with a reconciliation check before failing |\n| SPEI (Mexico) | Up to 30 minutes |\n| Transfers 3.0 (Argentina) | Up to 30 minutes |\n| PSE (Colombia) | Up to 30 minutes, since the bank redirect and two-factor step can lag |\n| ACH, wire (US) | Up to 5 business days |\n\nPix and SPEI run around the clock under [Banco Central do Brasil](https:\u002F\u002Fwww.bcb.gov.br\u002Fen\u002Ffinancialstability\u002Fpix_en) and [Banxico](https:\u002F\u002Fwww.banxico.org.mx\u002Fservices\u002Finterbanking-electronic-payme.html), so a 30-minute window is generous when the payer acts right away. The usual problem is a payer who copies the Pix code and pays the next morning. One exception helps: if a Transfers 3.0 deposit arrives after the payin was marked `failed` and no stablecoins were sent yet, BlindPay revives it and completes it once the sender's tax ID and amount match.\n\nOTC Pix quotes work differently. They wait until a fixed daily cutoff, and a deposit that never arrives adds a $100.00 penalty to the billing fee. Only quote OTC when the payer is ready to pay.\n\n## Failure 5: the payment went on hold\n\nA hold isn't a failure. It's a review. BlindPay's transaction monitoring flags payins that look unusual, and the compliance team reviews each one. Common triggers, per the [cut-off times reference](\u002Fdocs\u002Fkb\u002Fcut-off-times):\n\n- A first deposit, or a pattern that doesn't fit the customer's history\n- A large amount relative to past activity\n- A sanctions or watchlist screening match\n- An open request for information on the customer\n\nIf the flag can't be cleared internally, BlindPay sends a request for information asking for the relationship between the payer and the customer, the purpose of the payment, and the expected outcome. If it isn't answered within 24 hours, the payment may be refunded to the sender. Route these requests to someone who can answer the same day. [Real-time transaction monitoring](\u002Fresources\u002Fmore\u002Freal-time-transaction-monitoring-stablecoin-payments) explains what the system is looking for.\n\n## Failure 6: the wallet was wrong\n\nThis is the expensive one. The on-ramp did everything right and delivered stablecoins to the address on file. The address was wrong.\n\n- **A typo in a pasted address.** On Solana, Stellar, and Tron the address is submitted directly, with no signature to prove ownership.\n- **The right address on the wrong network.** EVM addresses look the same on Ethereum, Polygon, Base, and Arbitrum.\n- **The wrong token for the network.** USDC isn't deployed on Tron, and USDT isn't on Base, Arbitrum, or Stellar. Quote creation rejects these pairs, so this one is caught early.\n\nA non-custodial on-ramp has no key to the destination wallet. BlindPay can't access, freeze, or recover funds in an external wallet, and an on-chain transfer can't be reversed. On EVM networks, have the customer register the wallet by signing a message so the address is recovered from the signature instead of typed. [What happens on-chain](\u002Fresources\u002Fmore\u002Fwhat-happens-on-chain-in-a-stablecoin-payment) shows why there's no undo.\n\n## Failure 7: the customer wasn't ready\n\nSome payins never get a quote at all:\n\n- **KYC isn't approved.** The customer is still `verifying`, or has an open request for information.\n- **Terms of service changed.** When BlindPay updates its terms, quotes for customers who accepted an older version return `please_accept_terms_of_service` until they accept again.\n- **Limits.** KYC Standard customers have a $10,000 per-transaction payin limit by default, KYB Standard $30,000, and KYC Enhanced $50,000. Larger deposits need a limit increase first.\n\nThese show up as quote errors, not failed payins, which makes them the easiest to handle: catch the error and tell the customer what to do.\n\n## How do you tell a failure from a refund in code?\n\nHandle every final status explicitly.\n\n| Status | Meaning | Your action |\n| --- | --- | --- |\n| `completed` | Stablecoins delivered | Credit the customer, show the transaction hash |\n| `refunded` | Deposit returned to the sender | Mark as returned; tell the customer the bank will credit it back |\n| `failed` | Didn't go through | Check whether money arrived before you say anything; open a support case if it did |\n| `on_hold` (not final) | Under review | Show \"in review\"; watch for a request for information |\n\nPayin events arrive as `payin.new`, `payin.update`, and `payin.complete`, and `payin.complete` covers all three final outcomes, so read the status field instead of assuming success. [Stablecoin API webhooks](\u002Fresources\u002Fmore\u002Fstablecoin-api-webhooks-reconciliation) covers signature checks and ordering, and [integrating a crypto on-ramp API](\u002Fresources\u002Fmore\u002Fhow-to-integrate-a-crypto-on-ramp-api) shows the full flow these statuses come from.\n\n## How do you test failure paths before launch?\n\nOn a BlindPay development instance, set a payin's `request_amount` to `66600` ($666.00) to force `failed` and `77700` ($777.00) to force `refunded`. Every other amount completes about 30 seconds after creation. Run both outcomes through your webhook handler, your ledger, and your customer emails. Then check that a refunded payin doesn't show as a balance anywhere.\n\n## What to do next\n\nPull last month's failed and refunded on-ramp payments and tag each one with a failure number from this list. Most teams find two causes account for most of them, usually missing references and late payers. Fix those with virtual accounts and a countdown next to the Pix code, and the support queue shrinks.\n\nSome failures are really pricing surprises, like a wire that arrived short. [Crypto on-ramp fees explained](\u002Fresources\u002Fmore\u002Fcrypto-on-ramp-fees-explained) covers what the quote includes. For the wider picture of how business on-ramps differ from consumer ones, start with [business vs consumer crypto on-ramps](\u002Fresources\u002Fmore\u002Fbusiness-vs-consumer-crypto-on-ramps).\n\n*This article is general information, not legal, tax, or financial advice. Waiting windows, limits, and statuses can change; check the [payins docs](\u002Fdocs\u002Fpayins) for current behavior.*\n",{"title":5,"description":604},"Why crypto on-ramp deposits fail, and where the money goes","resources\u002Fmore\u002Fwhy-crypto-on-ramp-deposits-fail","sMBUKBr-1c-y04QMM5GwgVzTcFvvIH5Kcx9AQXBuhIY",[636,640,644,648,652,656,660,664,667,671,675,678,682,686,690,694,698,701,705,709,713,717,721,724,728,732,736,740,744,748,752,755,759,763,767,771,775,779,783,787,791,795,799,802,806,810,814,818,822,826,830,834,838,842,846,850,854,858,862,866,870,874,878,881,885,889,893,897,901,905,909,913,917],{"path":637,"title":638,"description":639},"\u002Fresources\u002Fmore\u002Fagent-payment-protocols-compared","AP2 vs ACP vs x402: agent payment protocols compared","AP2, ACP, and x402 each verify that an AI agent had permission to spend. Here is what every protocol covers, who backs it, and the reconciliation gap none of them close.",{"path":641,"title":642,"description":643},"\u002Fresources\u002Fmore\u002Fbest-stablecoin-payment-platform-fintech-2026","Best stablecoin payment platforms for fintech in 2026: a US comparison","Seven stablecoin payment platforms compared for US fintechs in 2026: what makes an API production-ready, how each provider handles compliance, settlement speed against ACH, and how to run the evaluation.",{"path":645,"title":646,"description":647},"\u002Fresources\u002Fmore\u002Fbest-stablecoin-payment-providers-2026","Best stablecoin payment providers in 2026: how to choose","How to choose a stablecoin payment provider in 2026: the four provider types, a comparison of 10 options, and the questions that decide the fit.",{"path":649,"title":650,"description":651},"\u002Fresources\u002Fmore\u002Fwhat-are-blockchain-payments","Blockchain payments explained: how stablecoins move money without correspondent banks","Blockchain payments move a stablecoin on a public ledger instead of messages between banks. How they work, what they cost, and how they compare with SWIFT.",{"path":653,"title":654,"description":655},"\u002Fresources\u002Fmore\u002Fbuild-vs-buy-stablecoin-payments","Build vs buy: should you build stablecoin payouts in-house or use an API?","Building stablecoin payouts in-house means wallets, liquidity, banking partners, licenses, and a compliance program. When building makes sense.",{"path":657,"title":658,"description":659},"\u002Fresources\u002Fmore\u002Fcan-a-virtual-account-replace-a-bank-account","Can a virtual account replace a business bank account? What each one does for cross-border companies","Usually not. A virtual account collects and settles payments; a bank account runs payroll, taxes, and credit. A job-by-job guide for cross-border teams.",{"path":661,"title":662,"description":663},"\u002Fresources\u002Fmore\u002Flatam-payout-liquidity-partner-pix-spei","Choosing a liquidity partner for LatAm payouts: Pix, SPEI, and beyond","How to choose a liquidity partner for payouts into Latin America: how Pix and SPEI work, how a stablecoin liquidity layer replaces local bank accounts, and a checklist for coverage, pricing, and compliance.",{"path":20,"title":665,"description":666},"Common stablecoin payout mistakes: wrong network, expired quotes, and bad bank details","The mistakes that make stablecoin payouts fail or stall: wrong network or token, expired quotes, deposits below minimums, bad bank details, and cut-offs.",{"path":668,"title":669,"description":670},"\u002Fresources\u002Fmore\u002Fcorrespondent-banking-vs-stablecoin-liquidity","Correspondent banking vs stablecoin liquidity: why pre-funding traps your capital","Correspondent banking keeps cross-border payouts liquid by parking cash in nostro accounts in every country. What that trapped capital costs a treasury team, and what stablecoin liquidity changes.",{"path":672,"title":673,"description":674},"\u002Fresources\u002Fmore\u002Fcrypto-payment-processor-for-businesses","Crypto payment processor for businesses: what to compare before you choose","Compare crypto payment processors on six criteria: settlement speed, stablecoins, compliance, dev effort, payout coverage, and pricing. Scorecard inside.",{"path":142,"title":676,"description":677},"Custodial vs non-custodial off-ramps: who holds the money, and what happens if the provider fails","A custodial off-ramp holds your stablecoins; a non-custodial one pulls them only at payout. What changes in insolvency, de-banking, and failed payouts.",{"path":679,"title":680,"description":681},"\u002Fresources\u002Fmore\u002Fcustodial-vs-non-custodial-vs-mpc-wallets","Custodial vs non-custodial vs MPC wallets: how to choose","Custodial, non-custodial, and MPC wallets differ in who holds the keys. Compare control, recovery, risk, and regulation, with product examples for each.",{"path":683,"title":684,"description":685},"\u002Fresources\u002Fmore\u002Fstablecoin-cross-border-payments-savings","How businesses use stablecoins for cross-border payments (and where the savings come from)","Correspondent hops, FX markup, and pre-funding: what stablecoin settlement does to each cost of a cross-border payment, with a $50,000 example to Brazil.",{"path":687,"title":688,"description":689},"\u002Fresources\u002Fmore\u002Fhow-a-stablecoin-payment-works","How does a stablecoin payment move? From bank deposit to local payout, step by step","A stablecoin payment moves in legs: fiat collected, stablecoin settled, fiat paid out. What happens at each step, where delays hide, what recipients see.",{"path":691,"title":692,"description":693},"\u002Fresources\u002Fmore\u002Fcross-border-merchant-payments-without-pre-funding","How global merchants get paid across borders with stablecoins, no pre-funding required","Pre-funding means parking local currency in every market before money moves. Stablecoin virtual accounts remove it. A worked example across 4 countries.",{"path":695,"title":696,"description":697},"\u002Fresources\u002Fmore\u002Fstablecoin-payout-settlement-times","How long does a stablecoin payout take? Settlement times by country and rail","Stablecoin payouts settle in minutes on Pix, SPEI, RTP, and Transfers 3.0, and in 1 to 5 business days on ACH, SEPA, and SWIFT. Full table by rail.",{"path":568,"title":699,"description":700},"How much does a crypto on-ramp cost? Fees, spreads, and how to read a quote","A crypto on-ramp charges through the rate spread, a service fee, the payment rail, and sometimes the network. How each works, and how to read the quote.",{"path":702,"title":703,"description":704},"\u002Fresources\u002Fmore\u002Fstablecoin-off-ramp-fees-explained","How much does a stablecoin off-ramp cost? Fees per transaction vs a bank wire","What a stablecoin off-ramp costs per transaction: network fee, FX spread, percentage and flat fees, worked at $200, $2,000, and $20,000 vs a bank wire.",{"path":706,"title":707,"description":708},"\u002Fresources\u002Fmore\u002Fhow-to-add-stablecoin-payments-to-your-wallet-integration","How to add stablecoin payments to your wallet integration","Connect the wallets you already run to bank deposits and local payouts: register addresses, open virtual accounts, quote, authorize, and track webhooks.",{"path":710,"title":711,"description":712},"\u002Fresources\u002Fmore\u002Fhow-to-choose-a-virtual-account-provider","How to choose a virtual account provider: a 12-point checklist for developers and finance teams","Twelve criteria for evaluating a virtual account API, from rails and naming to custody, webhooks, and pricing, plus red flags and a scorecard to copy.",{"path":714,"title":715,"description":716},"\u002Fresources\u002Fmore\u002Fhow-to-choose-on-off-ramp-provider","How to choose the best on\u002Foff ramp provider for your fintech app","Six criteria for evaluating a crypto on\u002Foff ramp provider: corridor coverage, live quotes, fiat settlement speed, licensing, API quality, and liquidity depth. Each with concrete tests to run, a comparison table, and a scoring framework.",{"path":718,"title":719,"description":720},"\u002Fresources\u002Fmore\u002Fhow-to-evaluate-payment-orchestration-platform","How to evaluate a payment orchestration platform for cross-border payments","Six criteria that decide whether an orchestration platform works for cross-border money: rail coverage, compliance per corridor, developer experience, settlement speed, FX transparency, and pricing.",{"path":529,"title":722,"description":723},"How to integrate a crypto on-ramp API: payin quotes, deposit instructions, and webhooks","The on-ramp API flow step by step: verify the customer, pick the wallet, quote, create the payin, show deposit instructions, and handle webhooks.",{"path":725,"title":726,"description":727},"\u002Fresources\u002Fmore\u002Fhow-to-issue-stablecoin-cards-api","How to issue stablecoin-funded cards through an API: a developer's guide","Build vs. buy for stablecoin card issuing, the objects a card issuing API must expose, a step-by-step integration flow, and where KYC and KYB sit in it.",{"path":729,"title":730,"description":731},"\u002Fresources\u002Fmore\u002Fhow-to-off-ramp-usdc-to-us-bank-account","How to off-ramp USDC to a US bank account: ACH, RTP, or wire","Cashing out USDC or USDT to a US bank account: when ACH, Same Day ACH, RTP, and wire pay out, the cut-offs in ET, the fields you need, and what delays it.",{"path":733,"title":734,"description":735},"\u002Fresources\u002Fmore\u002Fhow-to-off-ramp-usdc-to-euros-sepa","How to off-ramp USDC to euros over SEPA: networks, IBAN details, and timing","Converting USDC to EUR in a SEPA bank account: which networks work, the IBAN details you need, SEPA vs SEPA Instant timing, limits, and what MiCA changes.",{"path":737,"title":738,"description":739},"\u002Fresources\u002Fmore\u002Fhow-to-off-ramp-usdt-latin-america","How to off-ramp USDT to local currency in Latin America","Converting USDT to BRL, MXN, ARS, or COP: which networks work, the payout rail in each country, weekend timing, fees, and the documents a business needs.",{"path":741,"title":742,"description":743},"\u002Fresources\u002Fmore\u002Fhow-to-on-ramp-local-currency-latin-america","How to on-ramp BRL, MXN, ARS, and COP into stablecoins: Pix, SPEI, Transfers 3.0, and PSE","How Latin American bank payments become USDC or USDT: what each rail shows the payer, the payer data it needs, how fast it lands, and the traps by country.",{"path":745,"title":746,"description":747},"\u002Fresources\u002Fmore\u002Fhow-to-send-usdc-to-bank-account-brazil","How to send USDC to a bank account in Brazil","Step-by-step: convert USDC to Brazilian reais and deliver them to a bank account over Pix using a stablecoin payout API. Quote, verify, send, settle in minutes.",{"path":749,"title":750,"description":751},"\u002Fresources\u002Fmore\u002Fhow-to-test-virtual-accounts-sandbox","How to test a virtual accounts API integration before going live","The integration sequence for a virtual accounts API, what a sandbox simulates and what it can't, and a test plan with the statuses and webhooks to expect.",{"path":175,"title":753,"description":754},"How virtual accounts automate payment reconciliation (with a worked example)","Virtual accounts match each deposit to a customer by account number, not a free-text reference. A worked example with partial payments and micro-deposits.",{"path":756,"title":757,"description":758},"\u002Fresources\u002Fmore\u002Fstablecoin-api-idempotency-keys","Idempotency keys in a stablecoin API: how to never send the same payout twice","A timeout on a payout call is the most common way to pay someone twice. How idempotency keys prevent it, what replays, what conflicts, and how to retry.",{"path":760,"title":761,"description":762},"\u002Fresources\u002Fmore\u002Fhow-to-integrate-a-stablecoin-api","Integrating a stablecoin API: a developer's guide to cross-border payments with BlindPay","Step-by-step integration of a stablecoin API: authenticate, onboard a customer, create a virtual USD account, quote and send a cross-border payout, and handle signed webhooks. Endpoints, statuses, and SDKs for BlindPay.",{"path":764,"title":765,"description":766},"\u002Fresources\u002Fmore\u002Fliquidity-risk-global-payouts","Managing liquidity risk in global payouts: a practical guide for fintechs and PSPs","Liquidity risk in payouts is the chance funds aren't available at the right rate, in the right currency, when a payout settles. Its four sources and a six-step framework to manage them.",{"path":768,"title":769,"description":770},"\u002Fresources\u002Fmore\u002Fmarketplace-stablecoin-payouts-latam","Marketplace payouts in Latin America: stablecoin rails for sellers in Brazil, Mexico, Colombia, and Argentina","How marketplaces pay sellers, creators, and vendors across Latin America with stablecoin settlement: supported rails (Pix, SPEI, PSE, Argentine transfers), the end-to-end payout workflow, API integration, and what changes for speed, minimums, and FX cost.",{"path":772,"title":773,"description":774},"\u002Fresources\u002Fmore\u002Fnon-custodial-payments-explained","Non-custodial payments: what they are and why they reduce risk for businesses","A non-custodial payment provider moves your money without holding it between payments. Who controls the funds, who carries the risk, and what to ask.",{"path":776,"title":777,"description":778},"\u002Fresources\u002Fmore\u002Fon-off-ramp-liquidity-live-quotes","On\u002Foff ramp liquidity with live quotes: how it works and why it matters","What on\u002Foff ramp liquidity with live quotes means for developers: live quote vs batch rate, the quote ID flow in an API, what happens on expiry, how liquidity depth changes spread by transaction size, rate windows and UX, and a checklist for evaluating a live quote API.",{"path":780,"title":781,"description":782},"\u002Fresources\u002Fmore\u002Fpayment-orchestration-vs-payment-gateway","Payment orchestration vs payment gateway: what's the difference?","A gateway connects you to one processor. An orchestration platform connects to many rails and picks the best path per transaction. The table, the triggers, and a worked USD to BRL example.",{"path":784,"title":785,"description":786},"\u002Fresources\u002Fmore\u002Fstablecoin-api-openapi-sdks","Stablecoin API SDKs: how one OpenAPI spec keeps five languages in sync","BlindPay's stablecoin API is described by one OpenAPI 3.1 spec that drives validation, docs, SDKs for Node, Python, Go, PHP, and Swift, and the MCP server.",{"path":788,"title":789,"description":790},"\u002Fresources\u002Fmore\u002Fstablecoin-api-sla-settlement-finality","Stablecoin API SLAs and settlement finality explained","Stablecoin API uptime numbers cluster near 99.9% for a reason: most providers measure API acceptance instead of the point where money becomes final and spendable.",{"path":792,"title":793,"description":794},"\u002Fresources\u002Fmore\u002Fstablecoin-api-quotes-explained","Stablecoin API quotes explained: expiry, fee direction, and minor units","A stablecoin API quote locks the rate, fees, and amounts for a few minutes. How expiry works, which side pays the fee, and the field that flips meaning.",{"path":796,"title":797,"description":798},"\u002Fresources\u002Fmore\u002Fstablecoin-api-sandbox-vs-production","Stablecoin API sandbox vs production: what testing misses","Most stablecoin API sandboxes pass every integration test and still leave a team unprepared for production, because webhook delivery and idempotent retries are exactly what sandboxes fake or skip.",{"path":524,"title":800,"description":801},"Stablecoin API webhooks: signature checks, duplicate events, and reconciliation","How to handle stablecoin API webhooks in production: verify signatures on raw bytes, dedupe retries, never regress a final status, reconcile daily.",{"path":803,"title":804,"description":805},"\u002Fresources\u002Fmore\u002Fstablecoin-fx-slippage-live-quotes","Stablecoin FX slippage: how live quotes turn the quoted rate into the rate you get","FX slippage is the gap between the rate a stablecoin on-ramp or off-ramp shows and the rate that settles. Why quote freshness is a liquidity signal, and how to check a quote-then-execute flow.",{"path":807,"title":808,"description":809},"\u002Fresources\u002Fmore\u002Fstablecoin-cards-latin-america","Stablecoin cards in Latin America: how they work in Brazil, Mexico, Argentina, and Colombia","How USD stablecoin cards work in Brazil, Mexico, Argentina, and Colombia: local card and crypto rules, costs at the point of sale, and when a Pix or SPEI payout fits better.",{"path":811,"title":812,"description":813},"\u002Fresources\u002Fmore\u002Fstablecoin-liquidity-provider-vs-fx-desk","Stablecoin liquidity providers vs traditional FX desks: what finance teams should know","A bank FX desk prices cross-border payouts by relationship. A stablecoin liquidity provider prices them by API. How the two compare on cost, speed, minimums, coverage, and compliance.",{"path":815,"title":816,"description":817},"\u002Fresources\u002Fmore\u002Fstablecoin-payment-fees-vs-card-processing-fees","Stablecoin payment fees vs credit card processing fees: what merchants actually pay","Cards cost merchants 1.5% to 3.5% plus cross-border, FX, and chargeback fees. Stablecoin payments cost cents on-chain plus a sub-percent conversion spread.",{"path":819,"title":820,"description":821},"\u002Fresources\u002Fmore\u002Fstablecoin-payments-guide","Stablecoin payments explained: a guide for businesses","Stablecoin payments move dollar-pegged tokens between parties and settle in minutes, 24\u002F7. How they work, what they cost, and how businesses accept and send them.",{"path":823,"title":824,"description":825},"\u002Fresources\u002Fmore\u002Fstablecoin-payout-statuses-explained","Stablecoin payout statuses explained: processing, on hold, completed, failed, and refunded","What each stablecoin payout status means, which are final, why an on-chain confirmation isn't a completed payout, and how to test every failure.",{"path":827,"title":828,"description":829},"\u002Fresources\u002Fmore\u002Fstablecoin-payroll-latam-contractors","Stablecoin payroll for LATAM contractors: how it actually works in 2026","How US companies pay contractors in Argentina, Brazil, Mexico, and Colombia with stablecoins in 2026: USDC vs USDT, the step-by-step payout flow, US tax reporting, a platform comparison, and how to start.",{"path":831,"title":832,"description":833},"\u002Fresources\u002Fmore\u002Fstablecoin-settlement-for-merchants","Stablecoin settlement explained: how merchants get paid faster than card networks","Stablecoin payments settle in seconds to minutes, final and 24\u002F7. Cards take 1 to 3 business days and wires up to 5. How it works and how to cash out.",{"path":835,"title":836,"description":837},"\u002Fresources\u002Fmore\u002Fstablecoin-virtual-accounts-explained","Stablecoin virtual accounts explained: from bank transfer to wallet balance","A stablecoin virtual account is a bank account in your customer's name whose deposits convert to USDC or USDT. How approval, deposits, and fees work.",{"path":839,"title":840,"description":841},"\u002Fresources\u002Fmore\u002Fstablecoin-virtual-cards-cross-border-payouts","Stablecoin-funded virtual cards vs. traditional virtual cards for cross-border payouts","Stablecoin-funded vs. bank-funded virtual cards for paying contractors and vendors abroad: funding speed, pre-funding, FX cost, settlement finality, and a Brazil walkthrough.",{"path":843,"title":844,"description":845},"\u002Fresources\u002Fmore\u002Fstablecoins-local-rails-latin-america","Stablecoins plus local rails: how cross-border payments actually land in Latin America","A stablecoin crosses the border in seconds, but the payment lands over Pix, SPEI, or another local rail. How that last mile works in Brazil and Mexico.",{"path":847,"title":848,"description":849},"\u002Fresources\u002Fmore\u002Fstablecoin-vs-swift-b2b-payments","Stablecoins vs SWIFT for B2B cross-border payments: a real comparison","Where SWIFT wires still win, where stablecoin settlement wins, and how to compare the two on cost, speed, traceability, and failure modes for business payments in 2026.",{"path":851,"title":852,"description":853},"\u002Fresources\u002Fmore\u002Fusdc-to-ars-routes-2026","USDC to ARS in 2026: routes, fees, and rules compared","Four ways to convert USDC to Argentine pesos in 2026: stablecoin payout APIs, local exchanges, P2P, and global exchanges with Transfers 3.0. Fees, speed, KYC, and Argentina's PSAV rules compared.",{"path":855,"title":856,"description":857},"\u002Fresources\u002Fmore\u002Fusdc-to-brl-routes-2026","USDC to BRL in 2026: routes, fees, and rules compared","Four ways to convert USDC to Brazilian reais in 2026: stablecoin payout APIs, local exchanges, P2P, and global exchanges with Pix. Fees, speed, KYC, and Brazil's VASP rules compared.",{"path":859,"title":860,"description":861},"\u002Fresources\u002Fmore\u002Fusdc-to-cop-routes-2026","USDC to COP in 2026: routes, fees, and rules compared","Four ways to convert USDC to Colombian pesos in 2026: stablecoin payout APIs, local exchanges, P2P, and global exchanges with PSE. Fees, speed, KYC, and Colombia's VASP rules compared.",{"path":863,"title":864,"description":865},"\u002Fresources\u002Fmore\u002Fusdc-to-mxn-routes-2026","USDC to MXN in 2026: routes, fees, and rules compared","Four ways to convert USDC to Mexican pesos in 2026: stablecoin payout APIs, local exchanges, P2P, and global exchanges with SPEI. Fees, speed, KYC, and Mexico's rules compared.",{"path":867,"title":868,"description":869},"\u002Fresources\u002Fmore\u002Fvirtual-account-deposit-not-received","Virtual account deposit not received? Why deposits get delayed, held, or returned","Why a virtual account deposit is late, on hold, or returned: arrival windows, payin statuses, RFIs, wrong rails, and how to trace a wire or SWIFT payment.",{"path":871,"title":872,"description":873},"\u002Fresources\u002Fmore\u002Fvirtual-account-vs-virtual-iban","Virtual account vs virtual IBAN vs real bank account: what's the difference?","A real account holds funds for one holder. A virtual account routes deposits into a master account. A virtual IBAN is the IBAN version. When to use each.",{"path":875,"title":876,"description":877},"\u002Fresources\u002Fmore\u002Fvirtual-accounts-cross-border-payments","Virtual accounts for cross-border payments: use cases, payment rails, and costs","How virtual accounts let payers abroad pay a local-style account, which rails collect and pay out, what drives the cost, and five questions to ask.",{"path":200,"title":879,"description":880},"What details do you need to pay someone in Brazil or Mexico? Pix keys, CPF, and CLABE","What a payout to Brazil or Mexico needs from the recipient: Pix key types, CPF and CNPJ formats, the 18-digit CLABE, and the checks that stop a bad payout.",{"path":882,"title":883,"description":884},"\u002Fresources\u002Fmore\u002Fno-pre-funding-stablecoin-payouts","What does \"no pre-funding\" mean in a stablecoin API?","No pre-funding means each payout is funded when you send it, not from a balance parked in advance. The three funding models, the math, and what to ask.",{"path":886,"title":887,"description":888},"\u002Fresources\u002Fmore\u002Fwhat-is-a-crypto-on-ramp-and-off-ramp","What is a crypto on-ramp and off-ramp? A guide for fintech builders","A crypto on-ramp converts fiat into stablecoins or crypto; an off-ramp converts them back into fiat in a bank account. How each works step by step, how they differ, which payment methods on-ramps support, and who they are built for.",{"path":890,"title":891,"description":892},"\u002Fresources\u002Fmore\u002Fwhat-is-a-liquidity-market-cross-border-payments","What is a liquidity market in cross-border payments? And why stablecoin liquidity is changing it","A liquidity market in cross-border payments is where the currency to settle a transfer gets sourced. How correspondent banks pre-fund it, and how stablecoin liquidity changes the model.",{"path":894,"title":895,"description":896},"\u002Fresources\u002Fmore\u002Fwhat-is-a-stablecoin-offramp","What is a stablecoin off-ramp? How crypto becomes cash","A stablecoin off-ramp converts stablecoins like USDC or USDT back into fiat currency in a bank account. How the conversion works and who regulates it.",{"path":898,"title":899,"description":900},"\u002Fresources\u002Fmore\u002Fwhat-is-a-virtual-account","What is a virtual account? A plain-English guide for fintech teams","A virtual account is a unique set of bank details that routes incoming payments to one customer or purpose. How it works, who uses it, and where it fits.",{"path":902,"title":903,"description":904},"\u002Fresources\u002Fmore\u002Fwhat-is-payment-orchestration","What is payment orchestration? The routing layer, explained","Payment orchestration is the routing layer between your app and every processor, bank, and rail you use. The five layers, how stablecoin settlement fits, and how it differs from a gateway.",{"path":906,"title":907,"description":908},"\u002Fresources\u002Fmore\u002Fstablecoin-payments-provider-due-diligence","What to ask a stablecoin payments provider: 30 due diligence questions","The questions to ask a stablecoin payments vendor before you sign: licensing, custody, pricing, rails, compliance, failure handling, security, and exit.",{"path":910,"title":911,"description":912},"\u002Fresources\u002Fmore\u002Fhow-to-track-a-crypto-off-ramp-payout","Where is my off-ramp payout? How to track it rail by rail, and what to tell the recipient","Track an off-ramp payout from transaction hash to bank: the reference each rail gives you (Pix E2E ID, SPEI key, ACH trace, UETR) and status copy.",{"path":914,"title":915,"description":916},"\u002Fresources\u002Fmore\u002Fwhy-are-cross-border-payments-slow","Why are cross-border payments slow? Where the days go in an international wire","Most SWIFT payments reach the destination bank within an hour. The days go to cut-offs, correspondent hops, compliance checks, and local crediting.",{"path":629,"title":5,"description":604},1790867714377]