# End-to-End Flow: Payment-Ready Transactions (KYC-Free & Returning Users) This flow describes the **most common happy path** for transactions where no additional identity information is required at the time of payment. This includes: - First-time users eligible for **KYC-free or low-risk transactions** - Returning users who have **already completed the required verification** for the current transaction context In these cases, eligibility evaluates successfully and the transaction can proceed without collecting additional identity data. ## Flow Overview The partner orchestrates pricing, identity, and eligibility checks before creating a ramp and initiating payment. Eligibility determines whether the transaction is **KYC-ready**. If `paymentReady = true`, no additional compliance steps are required for the transaction context. > **Note:** An `identityReference` is still required before creating a ramp. For first-time users, this may need to be established even when the transaction is KYC-free. ## End-to-End Flow Diagram Banxa Native_no_kyc_flow.png ## Step-by-Step Description ### 1. User Requests Pricing The user requests pricing or a quote for a buy or sell transaction. This establishes the initial transaction context, including: - Transaction type (buy or sell) - Asset and fiat currency - Amount - Intended payment method (where applicable) ### 2. Ensure Identity Reference Is Available The partner ensures there is a persistent `identityReference` available for the user. - Returning users reuse an existing `identityReference` - First-time users may require an identity to be established before ramp creation, even for KYC-free transactions This identity: - Represents a single end user - Persists across transactions - Accumulates compliance state over time ### 3. Check Eligibility The partner evaluates eligibility for the transaction using the identity and transaction context. Eligibility determines: - Whether the transaction can proceed immediately (`paymentReady`) - Whether any additional requirements must be satisfied For this flow: - `paymentReady = true` - `requirements = []` This indicates that **no additional identity information is required** for the transaction context. ### 4. Create Ramp Once the transaction is KYC-ready and an identity is available, the partner creates the ramp. The ramp creation path depends on the **payment method**: - **Bank transfer** - Ramp is created directly via the Native API - **Cards, Apple Pay, Google Pay** - Ramp is created using the Native Payment SDK **for native mobile applications** - If the SDK is not available (for example, web-based integrations), the transaction falls back to **Banxa Checkout (webview)** ### 5. Process Payment The user completes payment using the selected method: - Native payment sheet for supported mobile wallets and cards - Banxa Checkout webview for hosted payment flows - Bank transfer instructions for bank-based payments ### 6. Status Updates Transaction progress and outcomes are communicated via: - Webhooks - Order and ramp status endpoints These updates allow the partner to reflect real-time transaction state in their application. ## Notes - An empty `requirements` list is a **valid and expected outcome** - `paymentReady = true` indicates **no additional KYC is required**, not that an identity already exists - Returning users benefit from previously completed verification - If the transaction context changes (amount, payment method, jurisdiction), eligibility may return new requirements and `paymentReady` may become `false`