[{"data":1,"prerenderedAt":1215},["ShallowReactive",2],{"navigation_docs":3,"-docs-guide-integration-guides-checklist":390,"-docs-guide-integration-guides-checklist-surround":1210},[4,94,181,384],{"title":5,"path":6,"stem":7,"children":8},"Guides","\u002Fdocs\u002Fguide","docs\u002F1.guide\u002F0.index",[9,11,38,42,46,50,54,68,72,76],{"title":10,"path":6,"stem":7},"Introduction",{"title":12,"path":13,"stem":14,"children":15},"Getting Started","\u002Fdocs\u002Fguide\u002Fgetting-started","docs\u002F1.guide\u002F02.getting-started\u002F0.index",[16,18,22,26,30,34],{"title":17,"path":13,"stem":14},"Overview",{"title":19,"path":20,"stem":21},"Coverage","\u002Fdocs\u002Fguide\u002Fgetting-started\u002Fcoverage","docs\u002F1.guide\u002F02.getting-started\u002F1.coverage",{"title":23,"path":24,"stem":25},"Authentication","\u002Fdocs\u002Fguide\u002Fgetting-started\u002Fauthentication","docs\u002F1.guide\u002F02.getting-started\u002F2.authentication",{"title":27,"path":28,"stem":29},"Idempotency","\u002Fdocs\u002Fguide\u002Fgetting-started\u002Fidempotency","docs\u002F1.guide\u002F02.getting-started\u002F3.idempotency",{"title":31,"path":32,"stem":33},"Postman Collection","\u002Fdocs\u002Fguide\u002Fgetting-started\u002Fpostman-collection","docs\u002F1.guide\u002F02.getting-started\u002F4.postman-collection",{"title":35,"path":36,"stem":37},"For LLM Agents","\u002Fdocs\u002Fguide\u002Fgetting-started\u002Fllm-agents","docs\u002F1.guide\u002F02.getting-started\u002F5.llm-agents",{"title":39,"path":40,"stem":41},"Customers","\u002Fdocs\u002Fguide\u002Fcustomers","docs\u002F1.guide\u002F03.customers",{"title":43,"path":44,"stem":45},"Exchange Routes","\u002Fdocs\u002Fguide\u002Fexchange-routes","docs\u002F1.guide\u002F04.exchange-routes",{"title":47,"path":48,"stem":49},"Bank Providers","\u002Fdocs\u002Fguide\u002Fbank-providers","docs\u002F1.guide\u002F05.bank-providers",{"title":51,"path":52,"stem":53},"External Accounts","\u002Fdocs\u002Fguide\u002Fexternal-accounts","docs\u002F1.guide\u002F06.external-accounts",{"title":55,"path":56,"stem":57,"children":58},"Fees & Limits","\u002Fdocs\u002Fguide\u002Ffees-and-limits","docs\u002F1.guide\u002F07.fees-and-limits\u002F0.index",[59,60,64],{"title":17,"path":56,"stem":57},{"title":61,"path":62,"stem":63},"Fees","\u002Fdocs\u002Fguide\u002Ffees-and-limits\u002Ffees","docs\u002F1.guide\u002F07.fees-and-limits\u002F1.fees",{"title":65,"path":66,"stem":67},"Limits","\u002Fdocs\u002Fguide\u002Ffees-and-limits\u002Flimits","docs\u002F1.guide\u002F07.fees-and-limits\u002F2.limits",{"title":69,"path":70,"stem":71},"Orders","\u002Fdocs\u002Fguide\u002Forders","docs\u002F1.guide\u002F08.orders",{"title":73,"path":74,"stem":75},"Webhooks","\u002Fdocs\u002Fguide\u002Fwebhooks","docs\u002F1.guide\u002F09.webhooks",{"title":77,"path":78,"stem":79,"children":80},"Integration Guides","\u002Fdocs\u002Fguide\u002Fintegration-guides","docs\u002F1.guide\u002F10.integration-guides\u002F0.index",[81,82,86,90],{"title":17,"path":78,"stem":79},{"title":83,"path":84,"stem":85},"Integration Checklist","\u002Fdocs\u002Fguide\u002Fintegration-guides\u002Fchecklist","docs\u002F1.guide\u002F10.integration-guides\u002F1.checklist",{"title":87,"path":88,"stem":89},"On-Ramp Guide","\u002Fdocs\u002Fguide\u002Fintegration-guides\u002Fonramp","docs\u002F1.guide\u002F10.integration-guides\u002F2.onramp",{"title":91,"path":92,"stem":93},"Off-Ramp Guide","\u002Fdocs\u002Fguide\u002Fintegration-guides\u002Fofframp","docs\u002F1.guide\u002F10.integration-guides\u002F3.offramp",{"title":95,"path":96,"stem":97,"children":98,"page":180},"Verification","\u002Fdocs\u002Fverification","docs\u002F2.verification",[99,141],{"title":100,"path":101,"stem":102,"children":103},"Common","\u002Fdocs\u002Fverification\u002Fcommon","docs\u002F2.verification\u002F1.common\u002F0.index",[104,105,109,113,117,121,125,129,133,137],{"title":17,"path":101,"stem":102},{"title":106,"path":107,"stem":108},"Legal Notice","\u002Fdocs\u002Fverification\u002Fcommon\u002Flegal-notice","docs\u002F2.verification\u002F1.common\u002F1.legal-notice",{"title":110,"path":111,"stem":112},"Terms of Business","\u002Fdocs\u002Fverification\u002Fcommon\u002Fterms","docs\u002F2.verification\u002F1.common\u002F2.terms",{"title":114,"path":115,"stem":116},"Privacy Policy","\u002Fdocs\u002Fverification\u002Fcommon\u002Fprivacy","docs\u002F2.verification\u002F1.common\u002F3.privacy",{"title":118,"path":119,"stem":120},"Reverse Solicitation Policy","\u002Fdocs\u002Fverification\u002Fcommon\u002Freverse-solicitation-policy","docs\u002F2.verification\u002F1.common\u002F4.reverse-solicitation-policy",{"title":122,"path":123,"stem":124},"Reverse Solicitation Declaration","\u002Fdocs\u002Fverification\u002Fcommon\u002Freverse-solicitation-declaration","docs\u002F2.verification\u002F1.common\u002F5.reverse-solicitation-declaration",{"title":126,"path":127,"stem":128},"Cookie Notice","\u002Fdocs\u002Fverification\u002Fcommon\u002Fcookie-notice","docs\u002F2.verification\u002F1.common\u002F6.cookie-notice",{"title":130,"path":131,"stem":132},"Non-Serviced Countries","\u002Fdocs\u002Fverification\u002Fcommon\u002Fcountries","docs\u002F2.verification\u002F1.common\u002F7.countries",{"title":134,"path":135,"stem":136},"Non-Serviced Business Sectors","\u002Fdocs\u002Fverification\u002Fcommon\u002Fbusiness","docs\u002F2.verification\u002F1.common\u002F8.business",{"title":138,"path":139,"stem":140},"Document Requirements","\u002Fdocs\u002Fverification\u002Fcommon\u002Fdocuments","docs\u002F2.verification\u002F1.common\u002F9.documents",{"title":142,"path":143,"stem":144,"children":145},"Compliance","\u002Fdocs\u002Fverification\u002Fcompliance","docs\u002F2.verification\u002F2.compliance\u002F0.index",[146,147,165],{"title":17,"path":143,"stem":144},{"title":148,"path":149,"stem":150,"children":151},"Individual Verification (KYC)","\u002Fdocs\u002Fverification\u002Fcompliance\u002Findividual","docs\u002F2.verification\u002F2.compliance\u002F1.individual\u002F0.index",[152,153,157,161],{"title":148,"path":149,"stem":150},{"title":154,"path":155,"stem":156},"Verification Process","\u002Fdocs\u002Fverification\u002Fcompliance\u002Findividual\u002Fverification","docs\u002F2.verification\u002F2.compliance\u002F1.individual\u002F1.verification",{"title":158,"path":159,"stem":160},"Account Activation","\u002Fdocs\u002Fverification\u002Fcompliance\u002Findividual\u002Factivation","docs\u002F2.verification\u002F2.compliance\u002F1.individual\u002F2.activation",{"title":162,"path":163,"stem":164},"Source of Funds","\u002Fdocs\u002Fverification\u002Fcompliance\u002Findividual\u002Fsof","docs\u002F2.verification\u002F2.compliance\u002F1.individual\u002F3.sof",{"title":166,"path":167,"stem":168,"children":169},"Business Verification (KYB)","\u002Fdocs\u002Fverification\u002Fcompliance\u002Fbusiness","docs\u002F2.verification\u002F2.compliance\u002F2.business\u002F0.index",[170,171,174,177],{"title":166,"path":167,"stem":168},{"title":154,"path":172,"stem":173},"\u002Fdocs\u002Fverification\u002Fcompliance\u002Fbusiness\u002Fverification","docs\u002F2.verification\u002F2.compliance\u002F2.business\u002F1.verification",{"title":158,"path":175,"stem":176},"\u002Fdocs\u002Fverification\u002Fcompliance\u002Fbusiness\u002Factivation","docs\u002F2.verification\u002F2.compliance\u002F2.business\u002F2.activation",{"title":162,"path":178,"stem":179},"\u002Fdocs\u002Fverification\u002Fcompliance\u002Fbusiness\u002Fsof","docs\u002F2.verification\u002F2.compliance\u002F2.business\u002F3.sof",false,{"title":182,"path":183,"stem":184,"children":185},"API Reference","\u002Fdocs\u002Fapiref","docs\u002F3.apiref\u002F0.index",[186,187,191,220,240,264,273,287,326,361,375],{"title":17,"path":183,"stem":184},{"title":188,"path":189,"stem":190},"Authorization","\u002Fdocs\u002Fapiref\u002Fauth","docs\u002F3.apiref\u002F01.auth",{"title":39,"path":192,"stem":193,"children":194,"page":180},"\u002Fdocs\u002Fapiref\u002Fcustomers","docs\u002F3.apiref\u002F02.customers",[195,203,210,215],{"title":196,"path":197,"stem":198,"badge":199},"Get Customers List","\u002Fdocs\u002Fapiref\u002Fcustomers\u002Fget-customers-list","docs\u002F3.apiref\u002F02.customers\u002F01.get-customers-list",{"label":200,"color":201,"variant":202},"GET","success","subtle",{"title":204,"path":205,"stem":206,"badge":207},"Create Customer","\u002Fdocs\u002Fapiref\u002Fcustomers\u002Fcreate-customer","docs\u002F3.apiref\u002F02.customers\u002F02.create-customer",{"label":208,"color":209,"variant":202},"POST","info",{"title":211,"path":212,"stem":213,"badge":214},"Get Customer","\u002Fdocs\u002Fapiref\u002Fcustomers\u002Fget-customer","docs\u002F3.apiref\u002F02.customers\u002F03.get-customer",{"label":200,"color":201,"variant":202},{"title":216,"path":217,"stem":218,"badge":219},"Download Account Opening Letter","\u002Fdocs\u002Fapiref\u002Fcustomers\u002Fdownload-account-opening-letter","docs\u002F3.apiref\u002F02.customers\u002F04.download-account-opening-letter",{"label":200,"color":201,"variant":202},{"title":221,"path":222,"stem":223,"children":224,"page":180},"Verifications","\u002Fdocs\u002Fapiref\u002Fverifications","docs\u002F3.apiref\u002F03.verifications",[225,230,235],{"title":226,"path":227,"stem":228,"badge":229},"Create Verification Link","\u002Fdocs\u002Fapiref\u002Fverifications\u002Fcreate-verification-link","docs\u002F3.apiref\u002F03.verifications\u002F01.create-verification-link",{"label":208,"color":209,"variant":202},{"title":231,"path":232,"stem":233,"badge":234},"Import Verification Data","\u002Fdocs\u002Fapiref\u002Fverifications\u002Fimport-verification-data","docs\u002F3.apiref\u002F03.verifications\u002F02.import-verification-data",{"label":208,"color":209,"variant":202},{"title":236,"path":237,"stem":238,"badge":239},"Start Instant Verification","\u002Fdocs\u002Fapiref\u002Fverifications\u002Fstart-instant-verification","docs\u002F3.apiref\u002F03.verifications\u002F03.start-instant-verification",{"label":208,"color":209,"variant":202},{"title":69,"path":241,"stem":242,"children":243,"page":180},"\u002Fdocs\u002Fapiref\u002Forders","docs\u002F3.apiref\u002F04.orders",[244,249,254,259],{"title":245,"path":246,"stem":247,"badge":248},"Get Orders","\u002Fdocs\u002Fapiref\u002Forders\u002Fget-orders","docs\u002F3.apiref\u002F04.orders\u002F01.get-orders",{"label":200,"color":201,"variant":202},{"title":250,"path":251,"stem":252,"badge":253},"Create Order","\u002Fdocs\u002Fapiref\u002Forders\u002Fcreate-order","docs\u002F3.apiref\u002F04.orders\u002F02.create-order",{"label":208,"color":209,"variant":202},{"title":255,"path":256,"stem":257,"badge":258},"Get Order","\u002Fdocs\u002Fapiref\u002Forders\u002Fget-order","docs\u002F3.apiref\u002F04.orders\u002F03.get-order",{"label":200,"color":201,"variant":202},{"title":260,"path":261,"stem":262,"badge":263},"Cancel Order","\u002Fdocs\u002Fapiref\u002Forders\u002Fcancel-order","docs\u002F3.apiref\u002F04.orders\u002F04.cancel-order",{"label":208,"color":209,"variant":202},{"title":61,"path":265,"stem":266,"children":267,"page":180},"\u002Fdocs\u002Fapiref\u002Ffees","docs\u002F3.apiref\u002F05.fees",[268],{"title":269,"path":270,"stem":271,"badge":272},"Check Customer Fees","\u002Fdocs\u002Fapiref\u002Ffees\u002Fcheck-customer-fees","docs\u002F3.apiref\u002F05.fees\u002F01.check-customer-fees",{"label":208,"color":209,"variant":202},{"title":65,"path":274,"stem":275,"children":276,"page":180},"\u002Fdocs\u002Fapiref\u002Flimits","docs\u002F3.apiref\u002F06.limits",[277,282],{"title":278,"path":279,"stem":280,"badge":281},"Customer Limits","\u002Fdocs\u002Fapiref\u002Flimits\u002Fcustomer-limits","docs\u002F3.apiref\u002F06.limits\u002F01.customer-limits",{"label":200,"color":201,"variant":202},{"title":283,"path":284,"stem":285,"badge":286},"Check Customer Limits","\u002Fdocs\u002Fapiref\u002Flimits\u002Fcheck-customer-limits","docs\u002F3.apiref\u002F06.limits\u002F02.check-customer-limits",{"label":208,"color":209,"variant":202},{"title":288,"path":289,"stem":290,"children":291,"page":180},"Bank accounts","\u002Fdocs\u002Fapiref\u002Fbank-accounts","docs\u002F3.apiref\u002F07.bank-accounts",[292,297,302,307,314,321],{"title":293,"path":294,"stem":295,"badge":296},"Get Bank Accounts","\u002Fdocs\u002Fapiref\u002Fbank-accounts\u002Fget-bank-accounts","docs\u002F3.apiref\u002F07.bank-accounts\u002F01.get-bank-accounts",{"label":200,"color":201,"variant":202},{"title":298,"path":299,"stem":300,"badge":301},"Create Bank Account","\u002Fdocs\u002Fapiref\u002Fbank-accounts\u002Fcreate-bank-account","docs\u002F3.apiref\u002F07.bank-accounts\u002F02.create-bank-account",{"label":208,"color":209,"variant":202},{"title":303,"path":304,"stem":305,"badge":306},"Get Bank Account","\u002Fdocs\u002Fapiref\u002Fbank-accounts\u002Fget-bank-account","docs\u002F3.apiref\u002F07.bank-accounts\u002F03.get-bank-account",{"label":200,"color":201,"variant":202},{"title":308,"path":309,"stem":310,"badge":311},"Update Bank Account","\u002Fdocs\u002Fapiref\u002Fbank-accounts\u002Fupdate-bank-account","docs\u002F3.apiref\u002F07.bank-accounts\u002F04.update-bank-account",{"label":312,"color":313,"variant":202},"PUT","warning",{"title":315,"path":316,"stem":317,"badge":318},"Delete Bank Account","\u002Fdocs\u002Fapiref\u002Fbank-accounts\u002Fdelete-bank-account","docs\u002F3.apiref\u002F07.bank-accounts\u002F05.delete-bank-account",{"label":319,"color":320,"variant":202},"DELETE","error",{"title":322,"path":323,"stem":324,"badge":325},"Get Bank Info By Iban","\u002Fdocs\u002Fapiref\u002Fbank-accounts\u002Fget-bank-info-by-iban","docs\u002F3.apiref\u002F07.bank-accounts\u002F06.get-bank-info-by-iban",{"label":200,"color":201,"variant":202},{"title":327,"path":328,"stem":329,"children":330,"page":180},"Customer Wallets","\u002Fdocs\u002Fapiref\u002Fcustomer-wallets","docs\u002F3.apiref\u002F08.customer-wallets",[331,336,341,346,351,356],{"title":332,"path":333,"stem":334,"badge":335},"Get Account For Satoshitest","\u002Fdocs\u002Fapiref\u002Fcustomer-wallets\u002Fget-account-for-satoshitest","docs\u002F3.apiref\u002F08.customer-wallets\u002F01.get-account-for-satoshitest",{"label":200,"color":201,"variant":202},{"title":337,"path":338,"stem":339,"badge":340},"Get Customer Wallets List","\u002Fdocs\u002Fapiref\u002Fcustomer-wallets\u002Fget-customer-wallets-list","docs\u002F3.apiref\u002F08.customer-wallets\u002F02.get-customer-wallets-list",{"label":200,"color":201,"variant":202},{"title":342,"path":343,"stem":344,"badge":345},"Create Customer Wallet","\u002Fdocs\u002Fapiref\u002Fcustomer-wallets\u002Fcreate-customer-wallet","docs\u002F3.apiref\u002F08.customer-wallets\u002F03.create-customer-wallet",{"label":208,"color":209,"variant":202},{"title":347,"path":348,"stem":349,"badge":350},"Get Customer Wallet","\u002Fdocs\u002Fapiref\u002Fcustomer-wallets\u002Fget-customer-wallet","docs\u002F3.apiref\u002F08.customer-wallets\u002F04.get-customer-wallet",{"label":200,"color":201,"variant":202},{"title":352,"path":353,"stem":354,"badge":355},"Update Customer Wallet","\u002Fdocs\u002Fapiref\u002Fcustomer-wallets\u002Fupdate-customer-wallet","docs\u002F3.apiref\u002F08.customer-wallets\u002F05.update-customer-wallet",{"label":312,"color":313,"variant":202},{"title":357,"path":358,"stem":359,"badge":360},"Delete Customer Wallet","\u002Fdocs\u002Fapiref\u002Fcustomer-wallets\u002Fdelete-customer-wallet","docs\u002F3.apiref\u002F08.customer-wallets\u002F06.delete-customer-wallet",{"label":319,"color":320,"variant":202},{"title":43,"path":362,"stem":363,"children":364,"page":180},"\u002Fdocs\u002Fapiref\u002Fexchange-routes","docs\u002F3.apiref\u002F09.exchange-routes",[365,370],{"title":366,"path":367,"stem":368,"badge":369},"Get All Supported Exchange Routes","\u002Fdocs\u002Fapiref\u002Fexchange-routes\u002Fget-all-supported-exchange-routes","docs\u002F3.apiref\u002F09.exchange-routes\u002F01.get-all-supported-exchange-routes",{"label":200,"color":201,"variant":202},{"title":371,"path":372,"stem":373,"badge":374},"Check Exchange Route","\u002Fdocs\u002Fapiref\u002Fexchange-routes\u002Fcheck-exchange-route","docs\u002F3.apiref\u002F09.exchange-routes\u002F02.check-exchange-route",{"label":208,"color":209,"variant":202},{"title":47,"path":376,"stem":377,"children":378,"page":180},"\u002Fdocs\u002Fapiref\u002Fbank-providers","docs\u002F3.apiref\u002F10.bank-providers",[379],{"title":380,"path":381,"stem":382,"badge":383},"Get Bank Providers","\u002Fdocs\u002Fapiref\u002Fbank-providers\u002Fget-bank-providers","docs\u002F3.apiref\u002F10.bank-providers\u002F01.get-bank-providers",{"label":200,"color":201,"variant":202},{"title":385,"path":386,"stem":387,"children":388},"Changelog","\u002Fdocs\u002Fchangelog","docs\u002F4.changelog\u002F0.index",[389],{"title":385,"path":386,"stem":387},{"id":391,"title":83,"body":392,"description":1204,"extension":1205,"links":1206,"meta":1207,"navigation":431,"path":84,"seo":1208,"stem":85,"__hash__":1209},"docs\u002Fdocs\u002F1.guide\u002F10.integration-guides\u002F1.checklist.md",{"type":393,"value":394,"toc":1194},"minimark",[395,403,408,411,414,418,548,552,561,631,638,680,690,799,806,907,911,956,960,999,1003],[396,397,398,399,402],"p",{},"The path from the first request to go-live, in four phases. Each item is a question to answer before moving on, with a pointer to the page that has the details. ",[400,401,19],"a",{"href":20}," says what the API supports; this page says in what order to use it.",[404,405,407],"h2",{"id":406},"what-you-are-building","What You Are Building",[396,409,410],{},"Your product lets your users exchange stablecoins for euros, or euros for stablecoins, without leaving your application. Stablegate provides the regulated entity, customer verification and screening, bank and blockchain settlement, and the order lifecycle. Your side owns the user: sign-up, the verification hand-off, the screen with deposit instructions, and the status the user sees afterwards.",[396,412,413],{},"From the user's point of view: sign up in your app, pass verification once, add the account the money should go to, see a quote, send the deposit, receive the payout.",[404,415,417],{"id":416},"phase-1-prepare","Phase 1: Prepare",[419,420,423,449,465,476,505,532],"ul",{"className":421},[422],"contains-task-list",[424,425,428,433,434,438,441,442,448],"li",{"className":426},[427],"task-list-item",[429,430],"input",{"disabled":431,"type":432},true,"checkbox"," ",[435,436,437],"strong",{},"Which flows do you need?",[439,440],"br",{},"On-ramp, off-ramp or both. Confirm the pairs with ",[400,443,444],{"href":44},[445,446,447],"code",{},"GET \u002Fv1\u002Fexchange-routes\u002F","; the API exchanges only what that endpoint returns.",[424,450,452,433,454,457,459,460,464],{"className":451},[427],[429,453],{"disabled":431,"type":432},[435,455,456],{},"Who are your customers?",[439,458],{},"Individuals can use ",[400,461,463],{"href":462},"\u002Fdocs\u002Fguide\u002Fcustomers#start-instant-verification","Instant Verification"," and trade within minutes; corporate customers go through the hosted Standard flow and activation. Ask your account manager to enable Instant Verification if you plan to use it.",[424,466,468,433,470,473,475],{"className":467},[427],[429,469],{"disabled":431,"type":432},[435,471,472],{},"Where does the payout go?",[439,474],{},"To a bank account or wallet registered for the customer. If your product needs anything else, agree it with Stablegate before you build.",[424,477,479,433,481,484,486,487,490,491,493,494,497,498,501,502,504],{"className":478},[427],[429,480],{"disabled":431,"type":432},[435,482,483],{},"Do you have access?",[439,485],{},"Partner API access shows ",[435,488,489],{},"API keys",", ",[435,492,73],{}," and ",[435,495,496],{},"Your clients"," in the Developers section; without it every call answers ",[445,499,500],{},"403",". See ",[400,503,12],{"href":13},".",[424,506,508,433,510,513,515,517,518,521,522,525,526,529,530,504],{"className":507},[427],[429,509],{"disabled":431,"type":432},[435,511,512],{},"Does the smoke test pass?",[439,514],{},[445,516,447],{}," from your backend answers ",[445,519,520],{},"200"," with ",[445,523,524],{},"X-Api-Key"," and a trailing slash on the path. A missing slash answers ",[445,527,528],{},"307"," with a redirect to the slashed path instead of the data. See ",[400,531,23],{"href":24},[424,533,535,433,537,545,547],{"className":534},[427],[429,536],{"disabled":431,"type":432},[435,538,539,540,544],{},"Is your client generated from the ",[400,541,543],{"href":542},"\u002Fopenapi.json","OpenAPI specification","?",[439,546],{},"Required fields are validated by the API; optional fields are not, so a typo in an optional field name silently falls back to the default.",[404,549,551],{"id":550},"phase-2-build","Phase 2: Build",[396,553,554,557,558,560],{},[435,555,556],{},"Customers and verification"," (",[400,559,39],{"href":40},")",[419,562,564,582,606],{"className":563},[422],[424,565,567,433,569,579,581],{"className":566},[427],[429,568],{"disabled":431,"type":432},[435,570,571,572,575,576,544],{},"Do you store the customer ",[445,573,574],{},"uuid"," and your own ",[445,577,578],{},"external_reference",[439,580],{},"Create the customer when the user enters the exchange feature and keep the mapping; a customer cannot be edited later.",[424,583,585,433,587,590,592,593,490,596,493,599,602,603,504],{"className":584},[427],[429,586],{"disabled":431,"type":432},[435,588,589],{},"Do you start verification explicitly?",[439,591],{},"It never starts on its own. Instant Verification needs ",[445,594,595],{},"first_name",[445,597,598],{},"last_name",[445,600,601],{},"date_of_birth","; the Standard link is valid for ",[435,604,605],{},"30 minutes",[424,607,609,433,611,620,622,623,626,627,630],{"className":608},[427],[429,610],{"disabled":431,"type":432},[435,612,613,614,493,617,544],{},"Do you gate trading on ",[445,615,616],{},"state: active",[445,618,619],{},"permissions.can_trade: true",[439,621],{},"Poll ",[445,624,625],{},"GET \u002Fv1\u002Fcustomers\u002F{customer_uuid}\u002F"," after submission. ",[445,628,629],{},"kyc_level"," alone is not enough for a Standard customer, who also needs activation.",[396,632,633,557,636,560],{},[435,634,635],{},"Accounts",[400,637,51],{"href":52},[419,639,641,658],{"className":640},[422],[424,642,644,433,646,649,651,652,654,655,504],{"className":643},[427],[429,645],{"disabled":431,"type":432},[435,647,648],{},"Is the payout account registered before the first order?",[439,650],{},"A bank account for off-ramp, a wallet for on-ramp. Keep the ",[445,653,574],{}," to pass as ",[445,656,657],{},"destination.client_account_uuid",[424,659,661,433,663,666,668,669,672,673,433,676,679],{"className":660},[427],[429,662],{"disabled":431,"type":432},[435,664,665],{},"Do you collect the wallet ownership proof at registration time?",[439,667],{},"Ethereum wallets need the signed message, with a timestamp less than ",[435,670,671],{},"24 hours"," old. A duplicate address answers ",[445,674,675],{},"400",[445,677,678],{},"oa_client_external_account_address_exists","; ask the user for another wallet.",[396,681,682,557,684,490,686,490,688,560],{},[435,683,69],{},[400,685,61],{"href":62},[400,687,65],{"href":66},[400,689,69],{"href":70},[419,691,693,719,746,784],{"className":692},[422],[424,694,696,433,698,701,703,706,707,710,711,714,715,718],{"className":695},[427],[429,697],{"disabled":431,"type":432},[435,699,700],{},"Do you run the three checks before each order?",[439,702],{},[445,704,705],{},"POST \u002Fv1\u002Fexchange-routes\u002Fcheck\u002F"," answers ",[445,708,709],{},"available: true","; ",[445,712,713],{},"check-fees"," gives the quote you show as an estimate; ",[445,716,717],{},"check-limits"," answers an empty list. Any item in that list means refusal.",[424,720,722,433,724,730,732,733,736,737,740,741,501,744,504],{"className":721},[427],[429,723],{"disabled":431,"type":432},[435,725,726,727,544],{},"Do you send an ",[445,728,729],{},"Idempotency-Key",[439,731],{},"Generate it before the first attempt and reuse the same key only when retrying the same request. Retry network errors and ",[445,734,735],{},"5xx","; do not retry ",[445,738,739],{},"4xx"," except ",[445,742,743],{},"409",[400,745,27],{"href":28},[424,747,749,433,751,754,756,757,521,760,763,764,767,768,771,772,775,776,779,780,783],{"className":748},[427],[429,750],{"disabled":431,"type":432},[435,752,753],{},"Is the deposit screen rendered from the order you just created?",[439,755],{},"On-ramp: ",[445,758,759],{},"deposit_bank_info",[445,761,762],{},"holder_name"," as the payee and the ",[445,765,766],{},"reference"," the user must copy exactly. Off-ramp: ",[445,769,770],{},"deposit_address",", the network and ",[445,773,774],{},"source.amount",". Both show ",[445,777,778],{},"valid_until"," as the deadline and ",[445,781,782],{},"destination.amount"," as an estimate until the deposit lands.",[424,785,787,433,789,792,794,795,504],{"className":786},[427],[429,788],{"disabled":431,"type":432},[435,790,791],{},"Is there one open order per customer and destination?",[439,793],{},"Crypto deposits are matched by address and attach to the newest open order. See ",[400,796,798],{"href":797},"\u002Fdocs\u002Fguide\u002Forders#how-deposits-are-matched","How Deposits Are Matched",[396,800,801,557,804,560],{},[435,802,803],{},"Monitoring",[400,805,73],{"href":74},[419,807,809,832,855,877],{"className":808},[422],[424,810,812,433,814,817,819,820,823,824,827,828,831],{"className":811},[427],[429,813],{"disabled":431,"type":432},[435,815,816],{},"Does your webhook endpoint handle deliveries correctly?",[439,818],{},"Verify ",[445,821,822],{},"X-Api-Sig"," over the raw body before parsing, answer ",[445,825,826],{},"2xx"," within ",[435,829,830],{},"60 seconds",", and ignore event types you do not know.",[424,833,835,433,837,840,842,843,846,847,850,851,854],{"className":834},[427],[429,836],{"disabled":431,"type":432},[435,838,839],{},"Do you deduplicate and order events yourself?",[439,841],{},"Deduplicate on ",[445,844,845],{},"order_uuid"," plus ",[445,848,849],{},"status"," and order by your receipt time; the payload ",[445,852,853],{},"timestamp"," is the order creation time.",[424,856,858,433,860,863,865,866,869,870,873,874,504],{"className":857},[427],[429,859],{"disabled":431,"type":432},[435,861,862],{},"Do you poll open orders as a fallback?",[439,864],{},"A delivery that fails its retries is not replayed. While ",[445,867,868],{},"state"," is ",[445,871,872],{},"new",", the same poll reads ",[445,875,876],{},"source.deposit_status",[424,878,880,433,882,889,891,892,490,895,490,898,490,901,493,904,504],{"className":879},[427],[429,881],{"disabled":431,"type":432},[435,883,884,885,888],{},"Is ",[445,886,887],{},"failed"," non-terminal in your status model?",[439,890],{},"Final states are ",[445,893,894],{},"done",[445,896,897],{},"rejected",[445,899,900],{},"cancelled",[445,902,903],{},"stopped",[445,905,906],{},"rollbacked",[404,908,910],{"id":909},"phase-3-test","Phase 3: Test",[419,912,914,927,941],{"className":913},[422],[424,915,917,433,919,924,926],{"className":916},[427],[429,918],{"disabled":431,"type":432},[435,920,921,922,544],{},"Has one on-ramp and one off-ramp order reached ",[445,923,894],{},[439,925],{},"End to end, with a real deposit.",[424,928,930,433,932,935,937,938,940],{"className":929},[427],[429,931],{"disabled":431,"type":432},[435,933,934],{},"Have the negative paths run?",[439,936],{},"A route that is unavailable, a limit that is exceeded, an order left to expire past ",[445,939,778],{},", a cancelled order, a webhook endpoint that was down during a status change and caught up by polling.",[424,942,944,433,946,953,955],{"className":943},[427],[429,945],{"disabled":431,"type":432},[435,947,948,949,952],{},"Do your logs keep ",[445,950,951],{},"trace_id"," from every error response?",[439,954],{},"Support asks for it first.",[404,957,959],{"id":958},"phase-4-go-live","Phase 4: Go Live",[419,961,963,974,985],{"className":962},[422],[424,964,966,433,968,971,973],{"className":965},[427],[429,967],{"disabled":431,"type":432},[435,969,970],{},"Are support contacts exchanged in both directions?",[439,972],{},"The cases that need them: a deposit without reference, a transfer on the wrong network, a rejected deposit, a customer that needs closing or unblocking.",[424,975,977,433,979,982,984],{"className":976},[427],[429,978],{"disabled":431,"type":432},[435,980,981],{},"Is key rotation rehearsed?",[439,983],{},"Create a new key, switch, delete the old one; deletion takes effect immediately.",[424,986,988,433,990,993,995,996,998],{"className":987},[427],[429,989],{"disabled":431,"type":432},[435,991,992],{},"Do you follow changes?",[439,994],{},"The ",[400,997,385],{"href":386}," lists every change, and Stablegate sends each partner a personal digest of what affects their integration.",[404,1000,1002],{"id":1001},"common-mistakes","Common Mistakes",[1004,1005,1006,1022],"table",{},[1007,1008,1009],"thead",{},[1010,1011,1012,1016,1019],"tr",{},[1013,1014,1015],"th",{},"Mistake",[1013,1017,1018],{},"What happens",[1013,1020,1021],{},"What to do instead",[1023,1024,1025,1042,1063,1081,1099,1110,1121,1141,1161,1180],"tbody",{},[1010,1026,1027,1031,1036],{},[1028,1029,1030],"td",{},"Path without the trailing slash",[1028,1032,1033,1035],{},[445,1034,528],{}," and an extra round trip, or no data for a client that does not follow redirects",[1028,1037,1038,1039],{},"End every path with ",[445,1040,1041],{},"\u002F",[1010,1043,1044,1050,1053],{},[1028,1045,1046,1047,1049],{},"Treating ",[445,1048,713],{}," as a locked quote",[1028,1051,1052],{},"The payout differs from what the user saw",[1028,1054,1055,1056,493,1059,1062],{},"Show the quote as an estimate; read ",[445,1057,1058],{},"exchange_rate",[445,1060,1061],{},"rate_valid_until"," from the order",[1010,1064,1065,1072,1075],{},[1028,1066,1067,1068,1071],{},"Reading ",[445,1069,1070],{},"excess_amount > 0"," as \"limit exceeded\"",[1028,1073,1074],{},"A breached minimum-amount rule is missed",[1028,1076,1077,1078,1080],{},"Any item in the ",[445,1079,717],{}," response means refusal",[1010,1082,1083,1086,1089],{},[1028,1084,1085],{},"Waiting for a webhook for verification or deposit",[1028,1087,1088],{},"Nothing arrives",[1028,1090,1091,1092,1095,1096],{},"Poll the customer detail for ",[445,1093,1094],{},"can_trade",", and the order detail for ",[445,1097,1098],{},"deposit_status",[1010,1100,1101,1104,1107],{},[1028,1102,1103],{},"Creating a second order while one is open on the same address",[1028,1105,1106],{},"The deposit attaches to the newest order",[1028,1108,1109],{},"One open order per customer and destination",[1010,1111,1112,1115,1118],{},[1028,1113,1114],{},"Re-serializing the webhook body before verifying the signature",[1028,1116,1117],{},"Every signature check fails",[1028,1119,1120],{},"Verify over the raw bytes",[1010,1122,1123,1128,1131],{},[1028,1124,1125,1126],{},"Ordering events by the webhook ",[445,1127,853],{},[1028,1129,1130],{},"Transitions appear out of order",[1028,1132,1133,1134,1137,1138,1140],{},"Use your receipt time and the ",[445,1135,1136],{},"previous_status"," to ",[445,1139,849],{}," pair",[1010,1142,1143,1148,1158],{},[1028,1144,1046,1145,1147],{},[445,1146,887],{}," as final",[1028,1149,1150,1151,1154,1155,1157],{},"The order later moves to ",[445,1152,1153],{},"processing"," or ",[445,1156,894],{}," and your user sees a wrong status",[1028,1159,1160],{},"Keep polling until a final state",[1010,1162,1163,1169,1172],{},[1028,1164,1046,1165,1168],{},[445,1166,1167],{},"404"," on a customer UUID as an auth problem",[1028,1170,1171],{},"Time lost on key checks",[1028,1173,1174,1176,1177,1179],{},[445,1175,1167],{}," means not your customer; ",[445,1178,500],{}," means the key lacks access",[1010,1181,1182,1185,1188],{},[1028,1183,1184],{},"Parsing amounts as floats",[1028,1186,1187],{},"Rounding errors and refused orders",[1028,1189,1190,1191],{},"Use a decimal type and ",[445,1192,1193],{},"fraction_digits",{"title":1195,"searchDepth":1196,"depth":1196,"links":1197},"",2,[1198,1199,1200,1201,1202,1203],{"id":406,"depth":1196,"text":407},{"id":416,"depth":1196,"text":417},{"id":550,"depth":1196,"text":551},{"id":909,"depth":1196,"text":910},{"id":958,"depth":1196,"text":959},{"id":1001,"depth":1196,"text":1002},"The path from the first request to go-live, in four phases. Each item is a question to answer before moving on, with a pointer to the page that has the details. Coverage says what the API supports; this page says in what order to use it.","md",null,{},{"title":83,"description":1204},"d0MpPUUepVG7XlFvQUj83AFhm8YTnfCqSFw4fX-za7c",[1211,1213],{"title":17,"path":78,"stem":79,"description":1212,"children":-1},"End-to-end walkthroughs of the on-ramp (fiat to crypto) and off-ramp (crypto to fiat) flows with request and response examples.",{"title":87,"path":88,"stem":89,"description":1214,"children":-1},"This guide walks you through a complete on-ramp flow — converting EUR to USDC via the Stablegate API. By the end, your customer will have USDC delivered to their Ethereum wallet.",1793278742041]