You are migrating my application from the Conduit cross-border payments API to the BlindPay API.
Before writing code, read these sources and follow them over any prior knowledge:
- https://blindpay.com/docs/llms.txt (read the quickstarts, customers, bank accounts, quotes, and webhooks pages)
- The OpenAPI spec: curl https://api.blindpay.com/doc
Do the migration in this order:
1. Inventory my Conduit usage from the codebase: every endpoint, webhook, stored ID, and the corridors we move money on. Derive the concept mapping from actual usage, roughly: Conduit counterparties or recipients map to BlindPay customers (re_) with KYC/KYB plus bank accounts (ba_) typed per rail (pix, spei, ach, wire, rtp, sepa, transfers); cross-border payment or conversion calls map to BlindPay's explicit quote then execute steps (payin quotes plus payins for fiat-to-stablecoin, payout quotes plus payouts for stablecoin-to-fiat). Flag anything with no direct BlindPay equivalent instead of guessing.
2. Verify corridor coverage: list every source and destination currency we use and check it against BlindPay's supported rails and limits; call out gaps before any code changes.
3. Re-onboard counterparties on BlindPay: compliance does not transfer between providers, so sequence KYC/KYB re-verification before cutover, driven by customer.* webhooks.
4. Rebuild money movement: quote, execute before expires_at, persist qu_/po_/pi_ IDs alongside legacy Conduit IDs during the transition, and drive all status from Svix-verified payout.* and payin.* webhooks.
5. Cut over corridor by corridor behind a feature flag with a dual-run window; retire the Conduit path only after in-flight settlements clear.
Constraints:
- Develop against a BlindPay development instance (USDB on testnets) first.
- Amounts are integer minor units; API keys stay server-side.
- Produce a written migration report (mapping table, corridor coverage, gaps, re-KYC plan) before changing code.
Deliverables: the migration report, re-onboarding script, BlindPay code paths behind a flag, webhook handlers, and a cutover checklist.