[{"data":1,"prerenderedAt":1083},["ShallowReactive",2],{"content-\u002Fresources\u002Fmore\u002Fhow-to-calculate-fx-spread":3,"resources-category-how-to-calculate-fx-spread":687},{"id":4,"title":5,"authors":6,"body":7,"categories":6,"category":643,"categoryType":6,"compare":6,"contributors":6,"date":644,"description":645,"extension":646,"faq":647,"howto":665,"isBlog":677,"isChangelog":677,"meta":678,"navigation":680,"path":681,"pillar":677,"products":6,"rawbody":682,"role":6,"seo":683,"seoTitle":684,"stem":685,"thumbnail":6,"updated":644,"__hash__":686},"content\u002Fresources\u002Fmore\u002Fhow-to-calculate-fx-spread.md","How to calculate FX spread on an international payment (with worked examples)",null,{"type":8,"value":9,"toc":631},"minimark",[10,14,17,23,42,47,50,57,71,85,89,92,95,115,118,122,125,128,149,152,156,159,268,271,274,278,281,284,377,380,383,395,399,402,439,443,450,558,573,590,601,609,613],[11,12,13],"p",{},"The FX spread is the gap between the mid-market exchange rate and the rate a provider gives you. Spread % = (mid rate - offered rate) \u002F mid rate x 100. On a $5,000 payment, a 1.0% spread costs $50 before any listed fee. BlindPay quotes show the market rate and the rate after fees side by side, so the spread is visible before you confirm.",[11,15,16],{},"The math is easy. Getting it right is not, because most mistakes happen before the formula: a stale mid rate, a quote written upside down, or a fee taken out before conversion.",[11,18,19],{},[20,21,22],"strong",{},"Key takeaways",[24,25,26,30,33,36,39],"ul",{},[27,28,29],"li",{},"Spread % = (mid - offered) \u002F mid x 100, with both rates written as units received per unit sent.",[27,31,32],{},"Money cost = spread % x amount sent. A 1.0% spread on $5,000 is $50.",[27,34,35],{},"The cleanest all-in check: 1 - (amount received \u002F (amount sent x mid rate)). It catches spread and fees in one number.",[27,37,38],{},"Central bank reference rates (PTAX, Banxico FIX, ECB) are useful sanity checks but are not live mid rates.",[27,40,41],{},"A \"no fee\" quote usually prices its margin into the rate. Compare amounts received, not fee lines.",[43,44,46],"h2",{"id":45},"what-is-an-fx-spread","What is an FX spread?",[11,48,49],{},"An FX spread is the difference between the mid-market rate and the rate you actually get, usually expressed as a percentage of the mid rate. It is how most providers earn money on a currency conversion.",[11,51,52,53,56],{},"The ",[20,54,55],{},"mid-market rate"," is the midpoint between the price at which banks are buying a currency and the price at which they are selling it in the wholesale market. Nobody trades at exactly that rate, which is why it works as a neutral yardstick.",[11,58,52,59,62,63,66,67,70],{},[20,60,61],{},"offered rate"," (also called the final rate or customer rate) is what the provider applies to your payment. The gap between the two is the ",[20,64,65],{},"spread",", sometimes called the markup or margin. A separate ",[20,68,69],{},"fee"," is anything charged on top, such as a flat $25 or a percentage of the amount.",[11,72,73,74,79,80,84],{},"For the wider cost picture, including correspondent fees and receiving bank charges, see ",[75,76,78],"a",{"href":77},"\u002Fresources\u002Fmore\u002Fhidden-fees-international-wires-our-sha-ben","hidden fees in international wires"," and ",[75,81,83],{"href":82},"\u002Fresources\u002Fmore\u002Fcross-border-payment-costs-2026","how much cross-border payments cost in 2026",".",[43,86,88],{"id":87},"what-is-the-formula-for-fx-spread","What is the formula for FX spread?",[11,90,91],{},"When you sell one currency to receive another, spread % = (mid rate - offered rate) \u002F mid rate x 100. Both rates must be in the same direction: units of the currency you receive per one unit of the currency you send.",[11,93,94],{},"Direction is where most calculations go wrong. Three cases:",[24,96,97,103,109],{},[27,98,99,102],{},[20,100,101],{},"Selling USD to pay in BRL."," Rates are quoted as BRL per USD. You get fewer reais than mid, so the offered rate is lower: spread = (mid - offered) \u002F mid.",[27,104,105,108],{},[20,106,107],{},"Buying USD with BRL."," Rates are still quoted as BRL per USD, but now you pay more reais than mid for each dollar: spread = (offered - mid) \u002F mid.",[27,110,111,114],{},[20,112,113],{},"Inverted quotes."," Some providers quote USD per BRL (0.1852) instead of BRL per USD (5.40). Invert one of them before comparing, or you will subtract numbers that mean different things.",[11,116,117],{},"One rule handles all three: convert everything to \"how much do I receive for one unit I send\", then cost % = 1 - (offered \u002F mid). Inverting changes the percentage a little because the base changes. A 1.00% spread measured in BRL per USD shows up as about 1.01% in USD per BRL. The money lost is identical, so pick one convention and stick to it.",[43,119,121],{"id":120},"how-do-you-calculate-fx-spread-in-3-steps","How do you calculate FX spread in 3 steps?",[11,123,124],{},"Take a live mid rate, align the direction, then compute the percentage and convert it to money. Here it is on a $5,000 payment from USD to BRL.",[11,126,127],{},"Assumptions (illustrative, not a live quote or a BlindPay price): mid-market rate 5.4000 BRL per USD, offered rate 5.3460 BRL per USD, no separate fee.",[129,130,131,137,143],"ol",{},[27,132,133,136],{},[20,134,135],{},"Capture the mid rate at the same moment."," Take the mid from a live source at the minute you request the quote: 5.4000. A rate from yesterday's fixing would distort everything that follows.",[27,138,139,142],{},[20,140,141],{},"Align the direction."," Both rates are already BRL per USD, the currency you receive per unit you send. Nothing to invert.",[27,144,145,148],{},[20,146,147],{},"Compute the spread and the money."," (5.4000 - 5.3460) \u002F 5.4000 = 0.0100, so 1.00%. Multiply by the amount sent: 1.00% x $5,000 = $50.",[11,150,151],{},"Check it from the recipient's side. At mid, $5,000 buys R$27,000. At 5.3460, it buys R$26,730. The R$270 gap, divided by the 5.40 mid rate, is $50. Same answer, which is the point: if the two methods disagree, one of your inputs is wrong.",[43,153,155],{"id":154},"where-do-you-get-the-mid-market-rate","Where do you get the mid-market rate?",[11,157,158],{},"A live market data feed gives you a real-time mid rate. Official reference rates are free and public but are set once a day, so treat them as a check on the live number rather than a replacement for it.",[160,161,162,181],"table",{},[163,164,165],"thead",{},[166,167,168,172,175,178],"tr",{},[169,170,171],"th",{},"Source",[169,173,174],{},"Who publishes it",[169,176,177],{},"When it is set",[169,179,180],{},"Best use",[182,183,184,199,213,232,250],"tbody",{},[166,185,186,190,193,196],{},[187,188,189],"td",{},"Live mid from a market data feed or trading screen",[187,191,192],{},"Data vendors, banks, FX platforms",[187,194,195],{},"Continuously during market hours",[187,197,198],{},"Benchmarking a quote you are about to accept",[166,200,201,204,207,210],{},[187,202,203],{},"WM\u002FReuters benchmark rates",[187,205,206],{},"LSEG",[187,208,209],{},"Daily fixings, the best known around 4pm London",[187,211,212],{},"Month-end valuation, accounting, contracts that reference it",[166,214,215,223,226,229],{},[187,216,217],{},[75,218,222],{"href":219,"rel":220},"https:\u002F\u002Fwww.ecb.europa.eu\u002Fstats\u002Fpolicy_and_exchange_rates\u002Feuro_reference_exchange_rates\u002Fhtml\u002Findex.en.html",[221],"nofollow","ECB euro reference rates",[187,224,225],{},"European Central Bank",[187,227,228],{},"Around 16:00 CET on working days, except TARGET closing days",[187,230,231],{},"EUR sanity checks; the ECB says the rates are for information only and discourages using them for transactions",[166,233,234,241,244,247],{},[187,235,236],{},[75,237,240],{"href":238,"rel":239},"https:\u002F\u002Fwww.banxico.org.mx\u002Ftipcamb\u002FtipCamMIAction.do?idioma=sp",[221],"Banxico FIX",[187,242,243],{},"Banco de México",[187,245,246],{},"Released from 12:00 on banking days, from an average of wholesale market quotes for settlement two banking days later; published in the Diario Oficial the next banking day",[187,248,249],{},"USD\u002FMXN reference for contracts and peso-denominated obligations",[166,251,252,259,262,265],{},[187,253,254],{},[75,255,258],{"href":256,"rel":257},"https:\u002F\u002Fwww.bcb.gov.br\u002Fconteudo\u002Frelatorioinflacao\u002FEstudosEspeciais\u002FEE042_A_taxa_de_cambio_de_referencia_Ptax.pdf",[221],"PTAX",[187,260,261],{},"Banco Central do Brasil",[187,263,264],{},"Four dealer surveys at random times inside 10:00-10:10, 11:00-11:10, 12:00-12:10 and 13:00-13:10 Brasília time",[187,266,267],{},"USD\u002FBRL reference for contracts, tax, and accounting",[11,269,270],{},"Two things to know about reference rates. First, they lag. PTAX is built from surveys that end around 13:10 in Brasília, so by late afternoon the live market can sit well away from it. Second, they are not quotes. Nobody will deal with you at PTAX or the FIX, so a provider quoting a little away from them is not necessarily overcharging.",[11,272,273],{},"For stablecoin routes there is one more wrinkle. USDC and USDT trade close to one dollar, but not at exactly one dollar every second. When the quote is in USDC per BRL, compare against the USD mid and accept that a few hundredths of a percent may come from the token, not the provider.",[43,275,277],{"id":276},"how-do-you-compare-a-no-fee-quote-with-a-quote-that-charges-a-fee","How do you compare a \"no fee\" quote with a quote that charges a fee?",[11,279,280],{},"Use the all-in formula: cost % = 1 - (amount received \u002F (amount sent x mid rate)). It folds spread and fees into one number, whatever the provider calls them.",[11,282,283],{},"Assumptions (illustrative): $10,000 USD to MXN, mid-market rate 18.50 MXN per USD, so $10,000 is worth MXN 185,000 at mid.",[160,285,286,298],{},[163,287,288],{},[166,289,290,292,295],{},[169,291],{},[169,293,294],{},"Quote A: \"no fee\"",[169,296,297],{},"Quote B: fee plus tighter rate",[182,299,300,311,322,333,344,355,366],{},[166,301,302,305,308],{},[187,303,304],{},"Fee",[187,306,307],{},"$0",[187,309,310],{},"$30, deducted before conversion",[166,312,313,316,319],{},[187,314,315],{},"Offered rate",[187,317,318],{},"18.13 MXN per USD",[187,320,321],{},"18.40 MXN per USD",[166,323,324,327,330],{},[187,325,326],{},"Spread on the rate",[187,328,329],{},"2.00%",[187,331,332],{},"0.54%",[166,334,335,338,341],{},[187,336,337],{},"Amount converted",[187,339,340],{},"$10,000",[187,342,343],{},"$9,970",[166,345,346,349,352],{},[187,347,348],{},"Recipient gets",[187,350,351],{},"MXN 181,300",[187,353,354],{},"MXN 183,448",[166,356,357,360,363],{},[187,358,359],{},"Shortfall vs mid (MXN 185,000)",[187,361,362],{},"MXN 3,700",[187,364,365],{},"MXN 1,552",[166,367,368,371,374],{},[187,369,370],{},"All-in cost",[187,372,373],{},"2.00%, about $200",[187,375,376],{},"0.84%, about $84",[11,378,379],{},"Quote A looks free and costs more than twice as much. That is why fee lines alone tell you very little.",[11,381,382],{},"Note the order of operations in Quote B. The $30 is taken before conversion, so the recipient loses the fee at the offered rate, not at mid. Some providers deduct fees from the local currency after conversion instead. The all-in formula doesn't care which. It only looks at what arrives.",[11,384,52,385,389,390,394],{},[75,386,388],{"href":387},"\u002Fresources\u002Fmore\u002Fcrypto-on-ramp-fees-explained","crypto on-ramp fees guide"," runs the same kind of comparison for the payin side, and ",[75,391,393],{"href":392},"\u002Fresources\u002Fmore\u002Fstablecoin-fx-slippage-live-quotes","stablecoin FX slippage"," covers the cost that appears after you accept, when the rate you get drifts from the rate you were shown.",[43,396,398],{"id":397},"what-mistakes-make-a-spread-calculation-wrong","What mistakes make a spread calculation wrong?",[11,400,401],{},"Most wrong answers come from bad inputs, not bad arithmetic. Five to check before you trust the number:",[129,403,404,410,416,422,428],{},[27,405,406,409],{},[20,407,408],{},"Stale mid rate."," Comparing a 3pm quote with the morning's PTAX or a Friday close makes any provider look good or bad depending on how the market moved.",[27,411,412,415],{},[20,413,414],{},"Weekend rates."," FX markets largely pause from Friday evening to Sunday evening. Quotes given over the weekend can carry a wider spread to cover the risk of Monday's open, and a Friday mid is a weak benchmark for them.",[27,417,418,421],{},[20,419,420],{},"Mixed directions."," Subtracting a USD per BRL rate from a BRL per USD rate produces nonsense. Align first.",[27,423,424,427],{},[20,425,426],{},"Ignoring fees taken from the principal."," Intermediary banks on a SWIFT payment can deduct charges in transit, so the recipient gets less than the quote suggested. That is a cost even though it never appears as a rate.",[27,429,430,433,434,438],{},[20,431,432],{},"Comparing indicative rates."," A rate on a website is not a quote. Only a firm quote with an expiry time tells you what you will pay. ",[75,435,437],{"href":436},"\u002Fresources\u002Fmore\u002Fstablecoin-api-quotes-explained","Stablecoin API quotes explained"," covers what a firm quote locks.",[43,440,442],{"id":441},"how-do-you-read-the-spread-in-a-blindpay-quote","How do you read the spread in a BlindPay quote?",[11,444,445,446,84],{},"Every BlindPay quote shows both rates and every fee line, so you can compute the spread without a separate data feed. The fields come straight from the ",[75,447,449],{"href":448},"\u002Fdocs\u002Fpayout-quotes","payout quote response",[160,451,452,465],{},[163,453,454],{},[166,455,456,459,462],{},[169,457,458],{},"Field",[169,460,461],{},"What it is",[169,463,464],{},"How to use it",[182,466,467,481,494,507,528,545],{},[166,468,469,475,478],{},[187,470,471],{},[472,473,474],"code",{},"commercial_quotation",[187,476,477],{},"The raw market exchange rate",[187,479,480],{},"Your market benchmark for this quote",[166,482,483,488,491],{},[187,484,485],{},[472,486,487],{},"blindpay_quotation",[187,489,490],{},"The rate net of BlindPay's fee",[187,492,493],{},"The offered rate in the spread formula",[166,495,496,501,504],{},[187,497,498],{},[472,499,500],{},"flat_fee",[187,502,503],{},"The flat-fee component",[187,505,506],{},"Add it to the all-in cost",[166,508,509,514,520],{},[187,510,511],{},[472,512,513],{},"partner_fee_amount",[187,515,516,517],{},"Your own markup, if you passed a ",[472,518,519],{},"partner_fee_id",[187,521,522,523,527],{},"The margin your platform adds for its users (",[75,524,526],{"href":525},"\u002Fdocs\u002Flearn\u002Fpartner-fees","partner fees",")",[166,529,530,539,542],{},[187,531,532,535,536],{},[472,533,534],{},"sender_amount"," \u002F ",[472,537,538],{},"receiver_amount",[187,540,541],{},"Amount sent and amount received, in minor units",[187,543,544],{},"The inputs to the all-in formula",[166,546,547,552,555],{},[187,548,549],{},[472,550,551],{},"expires_at",[187,553,554],{},"Quote expiry in epoch milliseconds, 5 minutes by default",[187,556,557],{},"The window in which the numbers hold",[11,559,560,561,563,564,566,567,569,570,572],{},"So BlindPay's FX margin on a quote = (",[472,562,474],{}," - ",[472,565,487],{},") \u002F ",[472,568,474],{},". To check the market rate itself, compare ",[472,571,474],{}," with a live mid rate from your own source at the same minute.",[11,574,575,576,578,579,581,582,584,585,587,588,84],{},"For example, a quote with ",[472,577,474],{}," 5.40 and ",[472,580,487],{}," 5.373 carries a 0.5% FX margin (illustrative numbers). Add ",[472,583,500],{}," and any ",[472,586,513],{},", and the all-in cost falls out of ",[472,589,538],{},[11,591,592,593,595,596,600],{},"BlindPay quotes use real-time rates and lock rate and fees for the quote's lifetime, so the spread you calculate is the spread you get if you execute before ",[472,594,551],{},". Payouts settle over Pix and SPEI in minutes, and over ACH, SEPA, and SWIFT (POBO\u002FCOBO) on the rail's schedule (",[75,597,599],{"href":598},"\u002Fdocs\u002Fkb\u002Fcut-off-times","cut-off times","). There is no pre-funding: the quote is funded when you execute it.",[11,602,603,604,608],{},"Plans are published on the ",[75,605,607],{"href":606},"\u002Fpricing","pricing page",". Per-transaction costs show up in each quote rather than in a rate card, which is why the fields above matter.",[43,610,612],{"id":611},"what-to-do-next","What to do next",[11,614,615,616,620,621,79,623,625,626,630],{},"Pull one real quote for your main corridor, take a live mid rate at the same minute, and run both formulas: spread % on the rate, then the all-in cost % on the amount received. If you are building on BlindPay, create a test quote from the ",[75,617,619],{"href":618},"\u002Fdocs\u002Fquickstart-payout","payout quickstart"," and compute the margin from ",[472,622,474],{},[472,624,487],{},". Then read ",[75,627,629],{"href":628},"\u002Fresources\u002Fmore\u002Fwhat-is-real-time-cross-border-settlement","what real-time cross-border settlement is"," to see where the rate fits in the rest of the payment.",{"title":632,"searchDepth":633,"depth":633,"links":634},"",2,[635,636,637,638,639,640,641,642],{"id":45,"depth":633,"text":46},{"id":87,"depth":633,"text":88},{"id":120,"depth":633,"text":121},{"id":154,"depth":633,"text":155},{"id":276,"depth":633,"text":277},{"id":397,"depth":633,"text":398},{"id":441,"depth":633,"text":442},{"id":611,"depth":633,"text":612},"payments","2026-10-03","FX spread % = (mid rate - offered rate) \u002F mid rate x 100. Here is how to get the mid rate, fix the quote direction, and price the spread in dollars.","md",[648,650,653,656,659,662],{"q":88,"a":649},"When you sell one currency to receive another, spread % = (mid-market rate - offered rate) \u002F mid-market rate x 100, with both rates written as units received per unit sent. A mid rate of 5.40 BRL per USD and an offered rate of 5.346 gives a 1.0% spread. On $5,000, that is $50 before any separate fee.",{"q":651,"a":652},"Where can I find the mid-market exchange rate?","Live data feeds and market screens show a real-time mid rate. Official reference rates are slower but public: the ECB publishes euro reference rates around 16:00 CET on working days, Banxico releases the FIX from 12:00 on banking days, and Brazil's central bank sets PTAX from four dealer surveys between 10:00 and 13:10 Brasília time.",{"q":654,"a":655},"Is a zero-fee transfer free?","Rarely. A provider that charges no fee usually earns its margin in the exchange rate instead. Compare the amount the recipient gets with the amount sent multiplied by the mid rate. A zero-fee quote with a 2% spread costs more than a quote with a $30 fee and a 0.5% spread on a $10,000 payment.",{"q":657,"a":658},"Why does the spread change when I invert the quote?","Because a percentage measured against a different base gives a slightly different number. A 1.00% spread on BRL per USD becomes about 1.01% when you express both rates as USD per BRL. The money lost is the same. Pick one direction, units received per unit sent, and use it for every provider you compare.",{"q":660,"a":661},"How do I see the spread in a BlindPay quote?","Every BlindPay quote returns commercial_quotation, the raw market rate, next to blindpay_quotation, the rate net of BlindPay's fee. The gap between them is BlindPay's FX margin. The flat_fee and partner_fee_amount fields list the separate fees, and receiver_amount shows what lands in the bank account.",{"q":663,"a":664},"Should I use the central bank reference rate as the mid-market rate?","Use it as a sanity check, not as the exact benchmark. Reference rates such as PTAX and the Banxico FIX are calculated once a day from earlier market data, so the live market can move away from them within hours. For a quote you are about to accept, compare against a live mid rate taken at the same minute.",{"name":666,"steps":667},"How to calculate the FX spread on an international payment",[668,671,674],{"name":669,"text":670},"Capture the mid-market rate at the moment of the quote","Take the mid-market rate from a live source at the same time the provider quotes you. A rate from yesterday's fixing or a weekend screen will make the spread look bigger or smaller than it is.",{"name":672,"text":673},"Put both rates in the same direction","Express the mid rate and the offered rate as units you receive per unit you send, for example BRL per USD. If one is quoted the other way round, invert it before comparing.",{"name":675,"text":676},"Compute the spread and convert it to money","Spread % = (mid rate - offered rate) \u002F mid rate x 100. Multiply the spread % by the amount you send to get the cost in your own currency, then add any separate fees for the all-in cost.",false,{"author":679},"BlindPay Team",true,"\u002Fresources\u002Fmore\u002Fhow-to-calculate-fx-spread","---\ntitle: \"How to calculate FX spread on an international payment (with worked examples)\"\nseoTitle: \"How to calculate FX spread: formula and worked examples\"\ndescription: \"FX spread % = (mid rate - offered rate) \u002F mid rate x 100. Here is how to get the mid rate, fix the quote direction, and price the spread in dollars.\"\ndate: \"2026-10-03\"\nupdated: \"2026-10-03\"\ncategory: \"payments\"\nauthor: \"BlindPay Team\"\nhowto:\n  name: \"How to calculate the FX spread on an international payment\"\n  steps:\n    - name: \"Capture the mid-market rate at the moment of the quote\"\n      text: \"Take the mid-market rate from a live source at the same time the provider quotes you. A rate from yesterday's fixing or a weekend screen will make the spread look bigger or smaller than it is.\"\n    - name: \"Put both rates in the same direction\"\n      text: \"Express the mid rate and the offered rate as units you receive per unit you send, for example BRL per USD. If one is quoted the other way round, invert it before comparing.\"\n    - name: \"Compute the spread and convert it to money\"\n      text: \"Spread % = (mid rate - offered rate) \u002F mid rate x 100. Multiply the spread % by the amount you send to get the cost in your own currency, then add any separate fees for the all-in cost.\"\nfaq:\n  - q: \"What is the formula for FX spread?\"\n    a: \"When you sell one currency to receive another, spread % = (mid-market rate - offered rate) \u002F mid-market rate x 100, with both rates written as units received per unit sent. A mid rate of 5.40 BRL per USD and an offered rate of 5.346 gives a 1.0% spread. On $5,000, that is $50 before any separate fee.\"\n  - q: \"Where can I find the mid-market exchange rate?\"\n    a: \"Live data feeds and market screens show a real-time mid rate. Official reference rates are slower but public: the ECB publishes euro reference rates around 16:00 CET on working days, Banxico releases the FIX from 12:00 on banking days, and Brazil's central bank sets PTAX from four dealer surveys between 10:00 and 13:10 Brasília time.\"\n  - q: \"Is a zero-fee transfer free?\"\n    a: \"Rarely. A provider that charges no fee usually earns its margin in the exchange rate instead. Compare the amount the recipient gets with the amount sent multiplied by the mid rate. A zero-fee quote with a 2% spread costs more than a quote with a $30 fee and a 0.5% spread on a $10,000 payment.\"\n  - q: \"Why does the spread change when I invert the quote?\"\n    a: \"Because a percentage measured against a different base gives a slightly different number. A 1.00% spread on BRL per USD becomes about 1.01% when you express both rates as USD per BRL. The money lost is the same. Pick one direction, units received per unit sent, and use it for every provider you compare.\"\n  - q: \"How do I see the spread in a BlindPay quote?\"\n    a: \"Every BlindPay quote returns commercial_quotation, the raw market rate, next to blindpay_quotation, the rate net of BlindPay's fee. The gap between them is BlindPay's FX margin. The flat_fee and partner_fee_amount fields list the separate fees, and receiver_amount shows what lands in the bank account.\"\n  - q: \"Should I use the central bank reference rate as the mid-market rate?\"\n    a: \"Use it as a sanity check, not as the exact benchmark. Reference rates such as PTAX and the Banxico FIX are calculated once a day from earlier market data, so the live market can move away from them within hours. For a quote you are about to accept, compare against a live mid rate taken at the same minute.\"\n---\n\nThe FX spread is the gap between the mid-market exchange rate and the rate a provider gives you. Spread % = (mid rate - offered rate) \u002F mid rate x 100. On a $5,000 payment, a 1.0% spread costs $50 before any listed fee. BlindPay quotes show the market rate and the rate after fees side by side, so the spread is visible before you confirm.\n\nThe math is easy. Getting it right is not, because most mistakes happen before the formula: a stale mid rate, a quote written upside down, or a fee taken out before conversion.\n\n**Key takeaways**\n\n- Spread % = (mid - offered) \u002F mid x 100, with both rates written as units received per unit sent.\n- Money cost = spread % x amount sent. A 1.0% spread on $5,000 is $50.\n- The cleanest all-in check: 1 - (amount received \u002F (amount sent x mid rate)). It catches spread and fees in one number.\n- Central bank reference rates (PTAX, Banxico FIX, ECB) are useful sanity checks but are not live mid rates.\n- A \"no fee\" quote usually prices its margin into the rate. Compare amounts received, not fee lines.\n\n## What is an FX spread?\n\nAn FX spread is the difference between the mid-market rate and the rate you actually get, usually expressed as a percentage of the mid rate. It is how most providers earn money on a currency conversion.\n\nThe **mid-market rate** is the midpoint between the price at which banks are buying a currency and the price at which they are selling it in the wholesale market. Nobody trades at exactly that rate, which is why it works as a neutral yardstick.\n\nThe **offered rate** (also called the final rate or customer rate) is what the provider applies to your payment. The gap between the two is the **spread**, sometimes called the markup or margin. A separate **fee** is anything charged on top, such as a flat $25 or a percentage of the amount.\n\nFor the wider cost picture, including correspondent fees and receiving bank charges, see [hidden fees in international wires](\u002Fresources\u002Fmore\u002Fhidden-fees-international-wires-our-sha-ben) and [how much cross-border payments cost in 2026](\u002Fresources\u002Fmore\u002Fcross-border-payment-costs-2026).\n\n## What is the formula for FX spread?\n\nWhen you sell one currency to receive another, spread % = (mid rate - offered rate) \u002F mid rate x 100. Both rates must be in the same direction: units of the currency you receive per one unit of the currency you send.\n\nDirection is where most calculations go wrong. Three cases:\n\n- **Selling USD to pay in BRL.** Rates are quoted as BRL per USD. You get fewer reais than mid, so the offered rate is lower: spread = (mid - offered) \u002F mid.\n- **Buying USD with BRL.** Rates are still quoted as BRL per USD, but now you pay more reais than mid for each dollar: spread = (offered - mid) \u002F mid.\n- **Inverted quotes.** Some providers quote USD per BRL (0.1852) instead of BRL per USD (5.40). Invert one of them before comparing, or you will subtract numbers that mean different things.\n\nOne rule handles all three: convert everything to \"how much do I receive for one unit I send\", then cost % = 1 - (offered \u002F mid). Inverting changes the percentage a little because the base changes. A 1.00% spread measured in BRL per USD shows up as about 1.01% in USD per BRL. The money lost is identical, so pick one convention and stick to it.\n\n## How do you calculate FX spread in 3 steps?\n\nTake a live mid rate, align the direction, then compute the percentage and convert it to money. Here it is on a $5,000 payment from USD to BRL.\n\nAssumptions (illustrative, not a live quote or a BlindPay price): mid-market rate 5.4000 BRL per USD, offered rate 5.3460 BRL per USD, no separate fee.\n\n1. **Capture the mid rate at the same moment.** Take the mid from a live source at the minute you request the quote: 5.4000. A rate from yesterday's fixing would distort everything that follows.\n2. **Align the direction.** Both rates are already BRL per USD, the currency you receive per unit you send. Nothing to invert.\n3. **Compute the spread and the money.** (5.4000 - 5.3460) \u002F 5.4000 = 0.0100, so 1.00%. Multiply by the amount sent: 1.00% x $5,000 = $50.\n\nCheck it from the recipient's side. At mid, $5,000 buys R$27,000. At 5.3460, it buys R$26,730. The R$270 gap, divided by the 5.40 mid rate, is $50. Same answer, which is the point: if the two methods disagree, one of your inputs is wrong.\n\n## Where do you get the mid-market rate?\n\nA live market data feed gives you a real-time mid rate. Official reference rates are free and public but are set once a day, so treat them as a check on the live number rather than a replacement for it.\n\n| Source | Who publishes it | When it is set | Best use |\n| --- | --- | --- | --- |\n| Live mid from a market data feed or trading screen | Data vendors, banks, FX platforms | Continuously during market hours | Benchmarking a quote you are about to accept |\n| WM\u002FReuters benchmark rates | LSEG | Daily fixings, the best known around 4pm London | Month-end valuation, accounting, contracts that reference it |\n| [ECB euro reference rates](https:\u002F\u002Fwww.ecb.europa.eu\u002Fstats\u002Fpolicy_and_exchange_rates\u002Feuro_reference_exchange_rates\u002Fhtml\u002Findex.en.html) | European Central Bank | Around 16:00 CET on working days, except TARGET closing days | EUR sanity checks; the ECB says the rates are for information only and discourages using them for transactions |\n| [Banxico FIX](https:\u002F\u002Fwww.banxico.org.mx\u002Ftipcamb\u002FtipCamMIAction.do?idioma=sp) | Banco de México | Released from 12:00 on banking days, from an average of wholesale market quotes for settlement two banking days later; published in the Diario Oficial the next banking day | USD\u002FMXN reference for contracts and peso-denominated obligations |\n| [PTAX](https:\u002F\u002Fwww.bcb.gov.br\u002Fconteudo\u002Frelatorioinflacao\u002FEstudosEspeciais\u002FEE042_A_taxa_de_cambio_de_referencia_Ptax.pdf) | Banco Central do Brasil | Four dealer surveys at random times inside 10:00-10:10, 11:00-11:10, 12:00-12:10 and 13:00-13:10 Brasília time | USD\u002FBRL reference for contracts, tax, and accounting |\n\nTwo things to know about reference rates. First, they lag. PTAX is built from surveys that end around 13:10 in Brasília, so by late afternoon the live market can sit well away from it. Second, they are not quotes. Nobody will deal with you at PTAX or the FIX, so a provider quoting a little away from them is not necessarily overcharging.\n\nFor stablecoin routes there is one more wrinkle. USDC and USDT trade close to one dollar, but not at exactly one dollar every second. When the quote is in USDC per BRL, compare against the USD mid and accept that a few hundredths of a percent may come from the token, not the provider.\n\n## How do you compare a \"no fee\" quote with a quote that charges a fee?\n\nUse the all-in formula: cost % = 1 - (amount received \u002F (amount sent x mid rate)). It folds spread and fees into one number, whatever the provider calls them.\n\nAssumptions (illustrative): $10,000 USD to MXN, mid-market rate 18.50 MXN per USD, so $10,000 is worth MXN 185,000 at mid.\n\n| | Quote A: \"no fee\" | Quote B: fee plus tighter rate |\n| --- | --- | --- |\n| Fee | $0 | $30, deducted before conversion |\n| Offered rate | 18.13 MXN per USD | 18.40 MXN per USD |\n| Spread on the rate | 2.00% | 0.54% |\n| Amount converted | $10,000 | $9,970 |\n| Recipient gets | MXN 181,300 | MXN 183,448 |\n| Shortfall vs mid (MXN 185,000) | MXN 3,700 | MXN 1,552 |\n| All-in cost | 2.00%, about $200 | 0.84%, about $84 |\n\nQuote A looks free and costs more than twice as much. That is why fee lines alone tell you very little.\n\nNote the order of operations in Quote B. The $30 is taken before conversion, so the recipient loses the fee at the offered rate, not at mid. Some providers deduct fees from the local currency after conversion instead. The all-in formula doesn't care which. It only looks at what arrives.\n\nThe [crypto on-ramp fees guide](\u002Fresources\u002Fmore\u002Fcrypto-on-ramp-fees-explained) runs the same kind of comparison for the payin side, and [stablecoin FX slippage](\u002Fresources\u002Fmore\u002Fstablecoin-fx-slippage-live-quotes) covers the cost that appears after you accept, when the rate you get drifts from the rate you were shown.\n\n## What mistakes make a spread calculation wrong?\n\nMost wrong answers come from bad inputs, not bad arithmetic. Five to check before you trust the number:\n\n1. **Stale mid rate.** Comparing a 3pm quote with the morning's PTAX or a Friday close makes any provider look good or bad depending on how the market moved.\n2. **Weekend rates.** FX markets largely pause from Friday evening to Sunday evening. Quotes given over the weekend can carry a wider spread to cover the risk of Monday's open, and a Friday mid is a weak benchmark for them.\n3. **Mixed directions.** Subtracting a USD per BRL rate from a BRL per USD rate produces nonsense. Align first.\n4. **Ignoring fees taken from the principal.** Intermediary banks on a SWIFT payment can deduct charges in transit, so the recipient gets less than the quote suggested. That is a cost even though it never appears as a rate.\n5. **Comparing indicative rates.** A rate on a website is not a quote. Only a firm quote with an expiry time tells you what you will pay. [Stablecoin API quotes explained](\u002Fresources\u002Fmore\u002Fstablecoin-api-quotes-explained) covers what a firm quote locks.\n\n## How do you read the spread in a BlindPay quote?\n\nEvery BlindPay quote shows both rates and every fee line, so you can compute the spread without a separate data feed. The fields come straight from the [payout quote response](\u002Fdocs\u002Fpayout-quotes).\n\n| Field | What it is | How to use it |\n| --- | --- | --- |\n| `commercial_quotation` | The raw market exchange rate | Your market benchmark for this quote |\n| `blindpay_quotation` | The rate net of BlindPay's fee | The offered rate in the spread formula |\n| `flat_fee` | The flat-fee component | Add it to the all-in cost |\n| `partner_fee_amount` | Your own markup, if you passed a `partner_fee_id` | The margin your platform adds for its users ([partner fees](\u002Fdocs\u002Flearn\u002Fpartner-fees)) |\n| `sender_amount` \u002F `receiver_amount` | Amount sent and amount received, in minor units | The inputs to the all-in formula |\n| `expires_at` | Quote expiry in epoch milliseconds, 5 minutes by default | The window in which the numbers hold |\n\nSo BlindPay's FX margin on a quote = (`commercial_quotation` - `blindpay_quotation`) \u002F `commercial_quotation`. To check the market rate itself, compare `commercial_quotation` with a live mid rate from your own source at the same minute.\n\nFor example, a quote with `commercial_quotation` 5.40 and `blindpay_quotation` 5.373 carries a 0.5% FX margin (illustrative numbers). Add `flat_fee` and any `partner_fee_amount`, and the all-in cost falls out of `receiver_amount`.\n\nBlindPay quotes use real-time rates and lock rate and fees for the quote's lifetime, so the spread you calculate is the spread you get if you execute before `expires_at`. Payouts settle over Pix and SPEI in minutes, and over ACH, SEPA, and SWIFT (POBO\u002FCOBO) on the rail's schedule ([cut-off times](\u002Fdocs\u002Fkb\u002Fcut-off-times)). There is no pre-funding: the quote is funded when you execute it.\n\nPlans are published on the [pricing page](\u002Fpricing). Per-transaction costs show up in each quote rather than in a rate card, which is why the fields above matter.\n\n## What to do next\n\nPull one real quote for your main corridor, take a live mid rate at the same minute, and run both formulas: spread % on the rate, then the all-in cost % on the amount received. If you are building on BlindPay, create a test quote from the [payout quickstart](\u002Fdocs\u002Fquickstart-payout) and compute the margin from `commercial_quotation` and `blindpay_quotation`. Then read [what real-time cross-border settlement is](\u002Fresources\u002Fmore\u002Fwhat-is-real-time-cross-border-settlement) to see where the rate fits in the rest of the payment.\n",{"title":5,"description":645},"How to calculate FX spread: formula and worked examples","resources\u002Fmore\u002Fhow-to-calculate-fx-spread","TPbS15Rl98Rim5cpXvz05i9Aum-Tee8YcIzbCnXYwRk",[688,692,696,700,704,708,712,716,720,724,728,732,736,740,744,748,752,755,759,763,767,771,775,778,781,785,789,790,794,798,802,806,810,814,818,822,826,830,834,838,842,846,850,854,858,862,866,870,874,878,882,886,890,894,898,902,906,910,914,918,921,925,929,932,936,940,944,948,952,956,960,964,968,972,976,980,984,988,992,996,1000,1004,1008,1012,1016,1020,1024,1028,1032,1036,1040,1044,1048,1052,1055,1059,1063,1067,1071,1075,1079],{"path":689,"title":690,"description":691},"\u002Fresources\u002Fmore\u002Fblockchain-payment-use-cases","7 real-world blockchain payment use cases: payroll, remittances, B2B, and more","Seven places blockchain payments beat bank rails: contractor payroll, remittances, B2B suppliers, marketplaces, 24\u002F7 treasury, bill pay, and PSP payouts.",{"path":693,"title":694,"description":695},"\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":697,"title":698,"description":699},"\u002Fresources\u002Fmore\u002Fbest-real-time-cross-border-settlement-providers-2026","Best real-time cross-border settlement providers for fintechs in 2026: low fees compared","A 10-point checklist and a side-by-side of BlindPay, Wise Platform, Airwallex, Thunes, Bridge, and Circle for real-time, low-fee cross-border settlement.",{"path":701,"title":702,"description":703},"\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":705,"title":706,"description":707},"\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":709,"title":710,"description":711},"\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":713,"title":714,"description":715},"\u002Fresources\u002Fmore\u002Fblockchain-payments-glossary","Blockchain payments glossary: 34 terms explained in plain English","Stablecoin, on-ramp, off-ramp, finality, gas, non-custodial, travel rule. The 34 terms of blockchain payments, each defined in one or two lines.",{"path":717,"title":718,"description":719},"\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":721,"title":722,"description":723},"\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":725,"title":726,"description":727},"\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":729,"title":730,"description":731},"\u002Fresources\u002Fmore\u002Fstablecoin-payout-mistakes","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":733,"title":734,"description":735},"\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":737,"title":738,"description":739},"\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":741,"title":742,"description":743},"\u002Fresources\u002Fmore\u002Fcustodial-vs-non-custodial-off-ramps","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":745,"title":746,"description":747},"\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":749,"title":750,"description":751},"\u002Fresources\u002Fmore\u002Fstablecoin-payout-cut-off-times-weekends-holidays","Do stablecoin payouts work on weekends and holidays? Cut-offs and bank calendars by rail","The stablecoin leg runs 24\u002F7, and so do Pix, SPEI, and RTP. ACH, wire, SEPA, TED, and SWIFT wait for a business day. Cut-offs and calendars by rail.",{"path":77,"title":753,"description":754},"Hidden fees in international wires: OUR, SHA, BEN, and a 7-point quote audit","Why suppliers get short-paid on international wires: SWIFT charge codes, intermediary deductions, and FX markups. Plus a 7-step audit for any quote.",{"path":756,"title":757,"description":758},"\u002Fresources\u002Fmore\u002Fpay-suppliers-brazil-mexico-from-us-bank-account","How a US company pays suppliers in Brazil and Mexico from a US bank account","Three ways to pay suppliers in Brazil and Mexico from dollars in a US bank account: an international wire, a fintech transfer, or USD to Pix or SPEI.",{"path":760,"title":761,"description":762},"\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":764,"title":765,"description":766},"\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":768,"title":769,"description":770},"\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":772,"title":773,"description":774},"\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":82,"title":776,"description":777},"How much do cross-border payments cost in 2026? Fees by corridor and what counts as cheap","Sending $200 abroad costs 6.36% on average, per the World Bank. Here is where that money goes, how corridors differ, and what a cheap payment looks like.",{"path":387,"title":779,"description":780},"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":782,"title":783,"description":784},"\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":786,"title":787,"description":788},"\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":681,"title":5,"description":645},{"path":791,"title":792,"description":793},"\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":795,"title":796,"description":797},"\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":799,"title":800,"description":801},"\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":803,"title":804,"description":805},"\u002Fresources\u002Fmore\u002Fstablecoin-api-30-day-evaluation-plan","How to evaluate a stablecoin API in 30 days: a week-by-week plan","A 30-day plan to evaluate a stablecoin API: shortlist, sandbox tests, compliance review, and a live pilot, plus where costs hide and a worked cost model.",{"path":807,"title":808,"description":809},"\u002Fresources\u002Fmore\u002Fhow-to-integrate-a-crypto-on-ramp-api","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":811,"title":812,"description":813},"\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":815,"title":816,"description":817},"\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":819,"title":820,"description":821},"\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":823,"title":824,"description":825},"\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":827,"title":828,"description":829},"\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":831,"title":832,"description":833},"\u002Fresources\u002Fmore\u002Fhow-to-pay-invoices-with-stablecoins-api","How to pay invoices, boletos, and Pix codes with stablecoins through an API","Register the bill, quote it, pay it from USDC or USDT, and track two webhook streams. A developer guide to stablecoin bill pay, boleto gotchas included.",{"path":835,"title":836,"description":837},"\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":839,"title":840,"description":841},"\u002Fresources\u002Fmore\u002Fhow-to-send-usdc-to-bank-account-mexico","How to send USDC to a bank account in Mexico: a step-by-step guide over SPEI","Send USDC to a Mexican bank account: verify the recipient, quote in pesos, fund from a wallet, and confirm on SPEI. Recipient data, statuses, and failures.",{"path":843,"title":844,"description":845},"\u002Fresources\u002Fmore\u002Fcross-border-quote-screen-fee-disclosure","How to show a cross-border payment quote to users: rate, fees, and expiry","What a cross-border quote screen must show: amount sent, rate, fees, amount received, expiry, and delivery date, plus the CFPB and EU disclosure rules.",{"path":847,"title":848,"description":849},"\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":851,"title":852,"description":853},"\u002Fresources\u002Fmore\u002Fvirtual-account-reconciliation","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":855,"title":856,"description":857},"\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":859,"title":860,"description":861},"\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":863,"title":864,"description":865},"\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":867,"title":868,"description":869},"\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":871,"title":872,"description":873},"\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":875,"title":876,"description":877},"\u002Fresources\u002Fmore\u002Fon-ramp-widget-vs-api","On-ramp widget vs API: which integration fits your product?","Hosted on-ramp widget or API-first ramp? Compare who owns the UX, KYC, quotes, webhooks, branding, and compliance, plus a decision table and checklist.",{"path":879,"title":880,"description":881},"\u002Fresources\u002Fmore\u002Fon-ramp-or-off-ramp-which-does-your-product-need","On-ramp, off-ramp, or both? How to tell which stablecoin API your product needs","Match your use case to the direction money moves: on-ramp, off-ramp, or both. Covers payroll, remittance, marketplaces, treasury, and 10 questions to ask.",{"path":883,"title":884,"description":885},"\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":887,"title":888,"description":889},"\u002Fresources\u002Fmore\u002Fonchain-settlement-vs-bank-settlement","Onchain settlement vs bank settlement: RTGS, ACH, cards, and blockchain finality compared","How onchain settlement compares with Fedwire, Pix, ACH, and card settlement: settlement asset, hours, finality, reversibility, and where payout risk sits.",{"path":891,"title":892,"description":893},"\u002Fresources\u002Fmore\u002Fswift-pobo-vs-cobo-explained","POBO vs COBO: SWIFT payments and collections on behalf of, explained","POBO sends a SWIFT payment for a customer, COBO collects one for them. Whose name shows, how UETR tracking works, and where stablecoin settlement fits.",{"path":895,"title":896,"description":897},"\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":899,"title":900,"description":901},"\u002Fresources\u002Fmore\u002Fpix-vs-spei","Pix vs SPEI: how Brazil's and Mexico's instant payment rails compare","Pix vs SPEI side by side: who runs each rail, how recipients are identified, hours, settlement, returns, and proof of payment for stablecoin payouts.",{"path":903,"title":904,"description":905},"\u002Fresources\u002Fmore\u002Fstablecoin-api-rfp-template","Stablecoin API RFP template: sections, scoring, and a vendor scorecard","How to write an RFP for a stablecoin API: the eight sections to include, pass or fail gates, 1 to 3 weighted scoring, a copyable scorecard, and a timeline.",{"path":907,"title":908,"description":909},"\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":911,"title":912,"description":913},"\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":915,"title":916,"description":917},"\u002Fresources\u002Fmore\u002Fstablecoin-api-objects-explained","Stablecoin API objects explained: customers, bank accounts, wallets, quotes, payouts, and webhooks","The core objects behind a stablecoin API, how they relate, which IDs to store in your ledger, and 8 data-model mistakes that break payout integrations.",{"path":436,"title":919,"description":920},"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":922,"title":923,"description":924},"\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":926,"title":927,"description":928},"\u002Fresources\u002Fmore\u002Fstablecoin-api-webhooks-reconciliation","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":392,"title":930,"description":931},"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":933,"title":934,"description":935},"\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":937,"title":938,"description":939},"\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":941,"title":942,"description":943},"\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":945,"title":946,"description":947},"\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":949,"title":950,"description":951},"\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":953,"title":954,"description":955},"\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":957,"title":958,"description":959},"\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":961,"title":962,"description":963},"\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":965,"title":966,"description":967},"\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":969,"title":970,"description":971},"\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":973,"title":974,"description":975},"\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":977,"title":978,"description":979},"\u002Fresources\u002Fmore\u002Fswift-instant-cross-border-scheme-vs-stablecoins","Swift's new payments scheme and blockchain ledger vs stablecoins: what changes in 2026","Swift launched a retail payments scheme in June 2026 and a blockchain ledger pilot in July. What each one changes, and how they compare with stablecoins.",{"path":981,"title":982,"description":983},"\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":985,"title":986,"description":987},"\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":989,"title":990,"description":991},"\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":993,"title":994,"description":995},"\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":997,"title":998,"description":999},"\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":1001,"title":1002,"description":1003},"\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":1005,"title":1006,"description":1007},"\u002Fresources\u002Fmore\u002Fvirtual-account-vs-wallet-address-vs-payment-link","Virtual account vs wallet address vs payment link: how to collect in stablecoins","Three ways to collect money that ends in stablecoins: a virtual account, a deposit wallet address, or a payment link. Compare rails, refunds, KYC, and fit.",{"path":1009,"title":1010,"description":1011},"\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":1013,"title":1014,"description":1015},"\u002Fresources\u002Fmore\u002Fvirtual-account-vs-one-time-deposit-instructions","Virtual accounts vs one-time deposit instructions: how to collect bank transfers as stablecoins","One-time deposit instructions suit occasional payers and local rails. Virtual accounts suit repeat US payers. How each matches deposits and when to switch.",{"path":1017,"title":1018,"description":1019},"\u002Fresources\u002Fmore\u002Fnostro-vostro-accounts-explained","What are nostro and vostro accounts? And why they force pre-funding","A nostro account is a bank's account at a foreign bank, in that bank's currency. A vostro is the same account seen from the other side. Why both trap cash.",{"path":1021,"title":1022,"description":1023},"\u002Fresources\u002Fmore\u002Fpix-key-cpf-clabe-payout-details","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":1025,"title":1026,"description":1027},"\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":1029,"title":1030,"description":1031},"\u002Fresources\u002Fmore\u002Fherstatt-risk-fx-settlement-risk","What is Herstatt risk? FX settlement risk, PvP, and what real-time settlement changes","Herstatt risk is paying your side of an FX trade and never getting the other. What happened in 1974, how PvP removes it, and where it remains.",{"path":1033,"title":1034,"description":1035},"\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":1037,"title":1038,"description":1039},"\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":1041,"title":1042,"description":1043},"\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":1045,"title":1046,"description":1047},"\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":1049,"title":1050,"description":1051},"\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":628,"title":1053,"description":1054},"What is real-time cross-border settlement? A 2026 guide","Real-time cross-border settlement means the recipient can use the money minutes after you send it. Which rails do it, what it costs, and where it stops.",{"path":1056,"title":1057,"description":1058},"\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":1060,"title":1061,"description":1062},"\u002Fresources\u002Fmore\u002Fwhen-not-to-use-blockchain-payments","When not to use blockchain payments: 7 cases where a bank rail wins","Blockchain payments beat wires on many corridors, not all of them. Seven cases where a domestic rail, a card, or a plain wire is still the better choice.",{"path":1064,"title":1065,"description":1066},"\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":1068,"title":1069,"description":1070},"\u002Fresources\u002Fmore\u002Finstant-payment-systems-by-country","Which countries have instant payment systems? A 2026 reference table","Pix, SPEI, RTP, FedNow, SEPA Instant, Faster Payments, UPI, Bre-B, and more: who runs each instant payment system, when it launched, its hours, and limits.",{"path":1072,"title":1073,"description":1074},"\u002Fresources\u002Fmore\u002Fwho-pays-gas-fees-stablecoin-payments","Who pays gas fees in stablecoin payments?","Who pays network fees in each stablecoin payment flow, how gas works on Ethereum, Solana, Tron, Stellar, and Arc, and how to compare it across providers.",{"path":1076,"title":1077,"description":1078},"\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":1080,"title":1081,"description":1082},"\u002Fresources\u002Fmore\u002Fwhy-crypto-on-ramp-deposits-fail","Why crypto on-ramp deposits fail: missing references, late transfers, holds, and refunds","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.",1791570068928]