openapi: 3.1.0 info: title: Fin.com Authentication Crypto Orchestration API version: 1.0.0 description: A simple API specificationFo servers: - url: https://sandbox.api.fin.com description: Sandbox server - url: https://api.fin.com description: Production server tags: - name: Crypto Orchestration paths: /v1/transit/payment: post: summary: Create a Payment description: Create a new payment order for a supported integration type (ByBit, Kraken, OKX, Pass Through) x-mint: content: 'Creates a payment order for the specified integration type with automatic settlement to a destination wallet address. **Conditional Field Rules:** - Either `order_info.order_amount` or `order_info.quote_id` must be provided, but **not both**. - When `order_info.quote_id` is not provided, `order_info.order_amount` and the `fin` object are required. - When `order_info.quote_id` is provided, `order_info.order_amount` and the `fin` object must **not** be included. - Providing both results in a `422` error. **Provider Error Codes:** The `428` response code is a placeholder. When errors occur from the payment provider, the original status code will be forwarded. ' tags: - Crypto Orchestration security: - bearerAuth: [] requestBody: required: true content: application/json: schema: type: object required: - integration_type - order_info properties: integration_type: type: string enum: - BYBIT - PASS_THROUGH - KRAKEN - OKX description: Integration provider type. example: BYBIT order_info: type: object required: - merchant_trade_no - currency - currency_type - success_url - failed_url - payment_type - goods - env properties: merchant_name: type: string example: PayPal client_id: type: string example: client_001 payment_type: type: string enum: - E_COMMERCE example: E_COMMERCE merchant_trade_no: type: string format: uuid example: 841e4ba2-1234-5678-9abc-a2a45de7bd00 order_amount: type: string description: Conditionally required when quote_id is not provided. example: '100.00' quote_id: type: string description: Conditionally required when order_amount is not provided. example: FIN_PROVIDED_QUOTE_ID currency: type: string enum: - USDC - USDT - BTC - ETH example: USDT rail: type: string description: Blockchain rail for the destination. Required for OKX and Kraken. enum: - SOLANA - BITCOIN - ETHEREUM - TRON - BASE example: SOLANA currency_type: type: string enum: - crypto example: crypto redirection_url: type: string format: uri description: Optional redirect URL after payment completion. Used for OKX. example: https://example.com/redirect remarks: type: string description: Optional order remarks. example: '' success_url: type: string format: uri maxLength: 256 example: https://example.com/success failed_url: type: string format: uri maxLength: 256 example: https://example.com/failed order_expire_time: type: integer minimum: 600 maximum: 3600 default: 3600 example: 3600 customer: type: object required: - uid - external_user_id - user_name - register_time - kyc_country properties: uid: type: string example: user_123 external_user_id: type: string example: ext_user_001 user_name: type: string example: John Li register_time: type: integer example: 1739178959 kyc_country: type: string example: AUS goods: type: array minItems: 1 items: type: object required: - shopping_name - mcc_code - goods_name properties: shopping_name: type: string example: test good1 mcc_code: type: string example: '1520' goods_name: type: string example: test1 goods_detail: type: string example: First product env: type: object required: - terminal_type - device - browser_version - ip properties: terminal_type: type: string enum: - APP - WEB - WAP - MINIAPP - OTHERS example: APP device: type: string example: iPhone 15 browser_version: type: string example: iOS 17.0 Safari ip: type: string format: ipv4 example: 192.168.0.1 risk_info: type: object required: - terminal_type properties: terminal_type: type: string enum: - APP - WEB - WAP - MINIAPP - OTHERS example: APP fin: type: object description: Required when quote_id is not provided. required: - settlement_config properties: settlement_config: type: object required: - settlement_via - destination_details properties: settlement_via: type: string enum: - ONE_TO_ONE - MARKET_ORDER - FEE_RETENTION example: MARKET_ORDER destination_details: type: object required: - wallet_address - currency - rail properties: wallet_address: type: string currency: type: string enum: - USDC - USDT - BTC - ETH - PYUSD example: USDC rail: type: string enum: - SOLANA - BITCOIN - ETHEREUM - BASE - TRON example: SOLANA developer_fee: type: object nullable: true description: Developer fee configuration. Nullable. Both fields default to 0. Used as a sibling of settlement_config for OKX. properties: fixed: type: string description: Fixed fee in USD per transaction. Defaults to 0. example: '0.15' percentage: type: string description: Percentage fee applied to order_amount. Defaults to 0. example: '2.5' examples: createPaymentWithAmount: summary: Create payment with order_amount (no quote_id) value: integration_type: BYBIT order_info: merchant_name: PayPal client_id: client_001 payment_type: E_COMMERCE merchant_trade_no: 841e4ba2-1234-5678-9abc-a2a45de7bd00 order_amount: '100.00' currency: USDT currency_type: crypto success_url: https://example.com/success failed_url: https://example.com/failed order_expire_time: 3600 goods: - shopping_name: test good1 mcc_code: '1520' goods_name: test1 goods_detail: First product env: terminal_type: APP device: iPhone 15 browser_version: iOS 17.0 Safari ip: 192.168.0.1 fin: settlement_config: settlement_via: MARKET_ORDER destination_details: wallet_address: 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU currency: USDC rail: SOLANA createPaymentWithQuoteId: summary: Create payment with quote_id (no order_amount or fin) value: integration_type: BYBIT order_info: payment_type: E_COMMERCE merchant_trade_no: 941e4ba2-5678-1234-9abc-b3b56ef8ce11 quote_id: FIN_PROVIDED_QUOTE_ID currency: USDT currency_type: crypto success_url: https://example.com/success failed_url: https://example.com/failed goods: - shopping_name: test good1 mcc_code: '1520' goods_name: test1 env: terminal_type: WEB device: Chrome Desktop browser_version: Chrome 121.0 ip: 10.0.0.1 createOKXPaymentWithAmount: summary: 'OKX: Create payment with order_amount (no quote_id)' value: integration_type: OKX order_info: merchant_name: MESH Shop merchant_trade_no: 841e4ba2-1234-5678-9abc-a2a45de7bd00 order_amount: '100.00' currency: USDC rail: SOLANA currency_type: crypto redirection_url: '' fin: settlement_config: settlement_via: ONE_TO_ONE destination_details: wallet_address: 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU currency: USDC rail: SOLANA developer_fee: fixed: '0.15' percentage: '2.5' createOKXPaymentWithQuoteId: summary: 'OKX: Create payment with quote_id (no order_amount or fin)' value: integration_type: OKX order_info: merchant_trade_no: 841e4ba2-1234-5678-9abc-a2a45de7bd00 quote_id: FIN_PROVIDED_QUOTE_ID currency: USDC rail: SOLANA currency_type: crypto responses: '200': description: Payment created successfully content: application/json: schema: type: object properties: data: type: object properties: payment_id: type: string format: uuid example: FIN_PROVIDED_UUID integration_type: type: string example: BYBIT provider_response: type: object description: Provider-specific response fields. Shape varies by integration_type. properties: pay_id: type: string description: Provider-generated payment ID. example: 01JN6AZVEMAC8H9SED6JES3QH8 terminal_type: type: string description: Terminal type used for the payment. Present for ByBit orders. nullable: true example: APP expire_time: type: integer description: Unix timestamp when the payment link expires. example: 1740751953 create_time: type: integer description: Unix timestamp when the order was created. example: 1740748353 checkout_link: type: string description: Payment checkout link. For OKX orders this is the QR-code deeplink. example: '' qr_content: type: string description: Base64-encoded QR code image. Present for ByBit orders. nullable: true example: data:image/png;base64,/9j/2...f/Z '401': $ref: '#/components/responses/AuthenticationError' '422': description: Validation error detected by Fin content: application/json: schema: type: object properties: error: type: object properties: code: type: integer example: 422 type: type: string enum: - FIN_ERROR example: FIN_ERROR message: type: string example: One or more fields are invalid details: type: array nullable: true items: type: object properties: field: type: string message: type: string '428': description: Error thrown from provider (forwards partner's HTTP status code) content: application/json: schema: type: object properties: error: type: object properties: code: type: integer example: 500104 type: type: string enum: - PROVIDER_ERROR example: PROVIDER_ERROR message: type: string example: Balance not Available details: type: array nullable: true items: type: object /v1/transit/payment/{payment_id}: get: summary: Fetch a Payment description: Retrieve payment details by payment ID x-mint: content: "## Payment Status Values\n\n- **PAY_INIT**: Payment initialized\n- **PAY_PROCESS**: Payment is being processed\n- **PAY_SUCCESS**: Payment completed successfully\n- **PAY_FAILED**: Payment failed\n- **PAY_TIMEOUT**: Payment timed out\n- **PAY_CANCEL**: Payment was cancelled\n- **SETTLEMENT_INIT**: Settlement process started\n- **SETTLEMENT_SUCCESS**: Settlement completed successfully\n- **SETTLEMENT_HOLD**: Transaction on hold due to insufficient rebalancing funds\n- **SETTLEMENT_FAILED**: Settlement failed after 3 retry attempts\n\n\n The `settlement_info` field will be `null` until `PAY_SUCCESS`. The `payment_time` will be `0` until `PAY_SUCCESS`.\n\n" tags: - Crypto Orchestration security: - bearerAuth: [] parameters: - name: payment_id in: path required: true schema: type: string format: uuid description: The unique payment identifier returned from Create Payment example: FIN_PROVIDED_UUID responses: '200': description: Payment details retrieved successfully content: application/json: schema: type: object properties: data: type: object properties: payment_id: type: string format: uuid example: FIN_PROVIDED_UUID integration_type: type: string example: BYBIT quote_id: type: string format: uuid example: FIN_PROVIDED_UUID status: type: string enum: - PAY_INIT - PAY_PROCESS - PAY_SUCCESS - PAY_FAILED - PAY_TIMEOUT - PAY_CANCEL - SETTLEMENT_INIT - SETTLEMENT_HOLD - SETTLEMENT_SUCCESS - SETTLEMENT_FAILED example: PAY_INIT create_time: type: integer example: 1740748353 payment_info: type: object properties: pay_id: type: string example: 01JN6AZVEMAC8H9SED6JES3QH8 merchant_trade_no: type: string example: 841e4ba2-...-a2a45de7bd00 amount: type: string example: '100' status: type: string enum: - PAY_INIT - PAY_PROCESS - PAY_SUCCESS - PAY_FAILED - PAY_TIMEOUT - PAY_CANCEL example: PAY_INIT currency: type: string example: USDT currency_type: type: string example: crypto expire_time: type: integer example: 1740751953 payment_time: type: integer description: 0 until PAY_SUCCESS example: 0 settlement_info: type: object nullable: true description: null until PAY_SUCCESS properties: settlement_via: type: string enum: - ONE_TO_ONE - MARKET_ORDER - FEE_RETENTION example: MARKET_ORDER wallet_address: type: string currency: type: string enum: - USDC - USDT - BTC - ETH example: USDC rail: type: string enum: - SOLANA - BITCOIN - ETHEREUM - BASE example: SOLANA amount: type: string example: '100' trx_hash: type: string example: 0x580... settle_time: type: integer example: 1740748353 status: type: string enum: - SETTLEMENT_INIT - SETTLEMENT_HOLD - SETTLEMENT_SUCCESS - SETTLEMENT_FAILED example: SETTLEMENT_SUCCESS retry_attempts: type: integer minimum: 0 maximum: 3 example: 0 examples: paymentInitiated: summary: Payment in initial state value: data: payment_id: FIN_PROVIDED_UUID integration_type: BYBIT status: PAY_INIT create_time: 1740748353 payment_info: pay_id: 01JN6AZVEMAC8H9SED6JES3QH8 merchant_trade_no: 841e4ba2-...-a2a45de7bd00 amount: '100' status: PAY_INIT currency: USDT currency_type: crypto expire_time: 1740751953 payment_time: 0 settlement_info: null paymentSettled: summary: Payment successfully settled value: data: payment_id: FIN_PROVIDED_UUID integration_type: BYBIT status: SETTLEMENT_SUCCESS create_time: 1740748353 payment_info: pay_id: 01JN6AZVEMAC8H9SED6JES3QH8 merchant_trade_no: 841e4ba2-...-a2a45de7bd00 amount: '100' status: PAY_SUCCESS currency: USDT currency_type: crypto expire_time: 1740751953 payment_time: 1740748353 settlement_info: settlement_via: MARKET_ORDER wallet_address: 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU currency: USDC rail: SOLANA amount: '100' trx_hash: 0x580... settle_time: 1740748353 status: SETTLEMENT_SUCCESS retry_attempts: 0 '401': $ref: '#/components/responses/AuthenticationError' '403': description: Payment ID doesn't belong to you content: application/json: schema: type: object properties: error: type: object properties: code: type: integer example: 403 type: type: string enum: - FIN_ERROR example: FIN_ERROR message: type: string example: Payment ID doesn't belong to you '404': description: Payment ID not found content: application/json: schema: type: object properties: error: type: object properties: code: type: integer example: 404 type: type: string enum: - FIN_ERROR example: FIN_ERROR message: type: string example: Payment ID not found /v1/transit/quote: post: summary: Create a crypto payment quote description: Generate a fee estimation quote for a transit payment x-mint: content: "\n The quote has a limited validity period indicated by `expire_at`. Request a new quote if it has expired.\n\n\nSee the **Quote Request by Integration** tabs on this page for per-integration request examples (Bybit, Kraken, Pass Through).\n" tags: - Crypto Orchestration security: - bearerAuth: [] requestBody: required: true content: application/json: schema: oneOf: - title: Bybit type: object required: - order_amount - integration_type - settlement_config properties: order_amount: type: string description: Order amount in USD. example: '100.00' integration_type: type: string enum: - BYBIT example: BYBIT settlement_config: type: object required: - settlement_via - rebalance_fee - destination_details properties: settlement_via: type: string enum: - MARKET_ORDER - ONE_TO_ONE example: MARKET_ORDER rebalance_fee: type: boolean description: When true, fees are absorbed and total_order_amount equals order_amount. When false, settlement_amount equals order_amount minus total_fee. example: true destination_details: type: object required: - wallet_address - currency - rail properties: wallet_address: type: string description: Destination wallet address. example: 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU currency: type: string enum: - USDC - PYUSD description: Destination currency. See [supported chains and currencies](https://developer.fin.com/crypto-orchestration/integration-types/bybit#chains-rails-and-constraints) for valid currency and rail combinations. example: USDC rail: type: string enum: - SOLANA - ETHEREUM - BASE example: SOLANA - title: Kraken type: object required: - order_amount - integration_type - settlement_config properties: order_amount: type: string description: Order amount in USD. example: '100.00' integration_type: type: string enum: - KRAKEN example: KRAKEN settlement_config: type: object required: - settlement_via - rebalance_fee - destination_details properties: settlement_via: type: string enum: - ONE_TO_ONE example: ONE_TO_ONE rebalance_fee: type: boolean description: When true, fees are absorbed and total_order_amount equals order_amount. When false, settlement_amount equals order_amount minus total_fee. example: false destination_details: type: object required: - wallet_address - currency - rail properties: wallet_address: type: string description: Destination wallet address. example: 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU currency: type: string enum: - USDC - PYUSD example: PYUSD rail: type: string enum: - SOLANA example: SOLANA developer_fee: type: object nullable: true description: Developer fee configuration. Nullable. Both fields default to 0. properties: fixed: type: string description: Fixed fee in USD per transaction. Defaults to 0. example: '0.15' percentage: type: string description: Percentage fee applied to order_amount. Defaults to 0. example: '2.5' - title: Pass Through type: object required: - order_amount - integration_type - settlement_config properties: order_amount: type: string description: Order amount in USD. example: '100.00' integration_type: type: string enum: - PASS_THROUGH example: PASS_THROUGH settlement_config: type: object required: - settlement_via - rebalance_fee - destination_details properties: settlement_via: type: string enum: - FEE_RETENTION example: FEE_RETENTION rebalance_fee: type: boolean description: Only false is supported for PASS_THROUGH. Passing true returns an error. example: false destination_details: type: object required: - wallet_address - currency - rail properties: wallet_address: type: string description: Destination wallet address. example: bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh currency: type: string enum: - BTC - ETH - USDT - USDC example: BTC rail: type: string enum: - BITCOIN - ETHEREUM - TRON - SOLANA example: BITCOIN developer_fee: type: object nullable: true description: Developer fee configuration. Nullable. Both fields default to 0. properties: fixed: type: string description: Fixed fee in USD per transaction. Defaults to 0. example: '0.15' percentage: type: string description: Percentage fee applied to order_amount. Defaults to 0. example: '2.5' - title: OKX type: object required: - order_amount - integration_type - settlement_config properties: order_amount: type: string description: Order amount in USD. example: '100.00' integration_type: type: string enum: - OKX example: OKX settlement_config: type: object required: - settlement_via - rebalance_fee - destination_details properties: settlement_via: type: string enum: - ONE_TO_ONE example: ONE_TO_ONE rebalance_fee: type: boolean description: When true, fees are absorbed and total_order_amount equals order_amount. When false, settlement_amount equals order_amount minus total_fee. example: false destination_details: type: object required: - wallet_address - currency - rail properties: wallet_address: type: string description: Destination wallet address. example: 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU currency: type: string enum: - USDC description: USDC only for OKX (milestone-1). example: USDC rail: type: string enum: - SOLANA description: SOLANA only for OKX (milestone-1). example: SOLANA developer_fee: type: object nullable: true description: Developer fee configuration. Nullable. Both fields default to 0. properties: fixed: type: string description: Fixed fee in USD per transaction. Defaults to 0. example: '0.15' percentage: type: string description: Percentage fee applied to order_amount. Defaults to 0. example: '2.5' examples: Bybit: summary: Bybit value: order_amount: '100.00' integration_type: BYBIT settlement_config: settlement_via: MARKET_ORDER rebalance_fee: true destination_details: wallet_address: 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU currency: USDC rail: SOLANA Kraken: summary: Kraken value: order_amount: '100.00' integration_type: KRAKEN settlement_config: settlement_via: ONE_TO_ONE rebalance_fee: false destination_details: wallet_address: 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU currency: PYUSD rail: SOLANA developer_fee: fixed: '0.15' percentage: '2.5' Pass Through: summary: Pass Through value: order_amount: '100.00' integration_type: PASS_THROUGH settlement_config: settlement_via: FEE_RETENTION rebalance_fee: false destination_details: wallet_address: bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh currency: BTC rail: BITCOIN developer_fee: fixed: '0.15' percentage: '2.5' OKX: summary: OKX value: order_amount: '100.00' integration_type: OKX settlement_config: settlement_via: ONE_TO_ONE rebalance_fee: false destination_details: wallet_address: 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU currency: USDC rail: SOLANA developer_fee: fixed: '0.15' percentage: '2.5' responses: '200': description: Quote created successfully content: application/json: schema: oneOf: - title: Bybit type: object properties: data: type: object properties: quote_id: type: string format: uuid description: Unique quote identifier. Pass as quote_id when creating a payment to lock in the quoted fees. example: 4081fa09-7761-42b6-8f66-24beae1a2ca5 expire_at: type: integer description: Unix timestamp when this quote expires. Request a new quote after expiry. example: 1770916749 order_amount: type: string description: Order amount provided in the request, in USD. example: '100.00' integration_type: type: string example: BYBIT settlement_config: type: object properties: settlement_via: type: string example: MARKET_ORDER rebalance_fee: type: boolean example: true destination_details: type: object properties: wallet_address: type: string example: 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU currency: type: string example: USDC rail: type: string example: SOLANA quote_estimation: type: object properties: payment_fee: type: string description: Fee charged by the exchange for processing the payment. example: '0.00' conversion_fee: type: string description: Fee charged for currency conversion where applicable. example: '0.00' withdrawal_fee: type: string description: Fee charged for withdrawing funds from the exchange. example: '0.00' gas_fee: type: string description: Blockchain network gas fee for the on-chain settlement transaction. example: '0.50' total_fee: type: string description: 'Total of all fees: gas_fee + payment_fee + conversion_fee + withdrawal_fee.' example: '0.50' total_order_amount: type: string description: Gross amount charged to the payer. When rebalance_fee is true, equals order_amount (fees absorbed into the order). example: '100.00' ata_fee_applied: type: boolean description: Whether a Solana Associated Token Account creation fee was applied to gas_fee. example: false - title: Kraken type: object properties: data: type: object properties: quote_id: type: string format: uuid description: Unique quote identifier. Pass as quote_id when creating a payment to lock in the quoted fees. example: 76e8bcc0-a6b4-41f7-b3d2-76cfbe910fe3 expire_at: type: integer description: Unix timestamp when this quote expires. Request a new quote after expiry. example: 1770916749 order_amount: type: string description: Order amount provided in the request, in USD. example: '100.00' integration_type: type: string example: KRAKEN settlement_config: type: object properties: settlement_via: type: string example: ONE_TO_ONE rebalance_fee: type: boolean example: false destination_details: type: object properties: wallet_address: type: string example: 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU currency: type: string example: PYUSD rail: type: string example: SOLANA quote_estimation: type: object properties: payment_fee: type: string description: Fee charged by the exchange for processing the payment. example: '0.00' conversion_fee: type: string description: Fee charged for currency conversion where applicable. example: '0.00' withdrawal_fee: type: string description: Fee charged for withdrawing funds from the exchange. example: '0.00' gas_fee: type: string description: Blockchain network gas fee for the on-chain settlement transaction. example: '0.50' total_developer_fee: type: string description: 'Sum of developer-configured fees: fixed fee plus percentage of order_amount.' example: '2.65' total_fee: type: string description: 'Total of all fees: gas_fee + payment_fee + conversion_fee + withdrawal_fee + total_developer_fee.' example: '3.15' total_order_amount: type: string description: Gross amount charged to the payer. When rebalance_fee is false, settlement_amount equals order_amount minus total_fee. example: '100.00' ata_fee_applied: type: boolean description: Whether a Solana Associated Token Account creation fee was applied to gas_fee. example: false - title: Pass Through type: object properties: data: type: object properties: quote_id: type: string format: uuid description: Unique quote identifier. Pass as quote_id when creating a payment to lock in the quoted fees. example: 5831ce86-cd88-4aba-b1fd-32dcf6e1a030 expire_at: type: integer description: Unix timestamp when this quote expires. Request a new quote after expiry. example: 1770916749 order_amount: type: string description: Order amount provided in the request, in USD. example: '100.00' integration_type: type: string example: PASS_THROUGH settlement_config: type: object properties: settlement_via: type: string example: FEE_RETENTION rebalance_fee: type: boolean example: false destination_details: type: object properties: wallet_address: type: string example: bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh currency: type: string example: BTC rail: type: string example: BITCOIN quote_estimation: type: object properties: payment_fee: type: string description: Fee charged by the exchange for processing the payment. example: '0.00' conversion_fee: type: string description: Fee charged for currency conversion where applicable. example: '0.00' withdrawal_fee: type: string description: Fee charged for withdrawing funds from the exchange. example: '0.00' gas_fee: type: string description: Blockchain network gas fee for the on-chain settlement transaction. example: '0.50' total_developer_fee: type: string description: 'Sum of developer-configured fees: fixed fee plus percentage of order_amount.' example: '2.65' total_fee: type: string description: 'Total of all fees: gas_fee + payment_fee + conversion_fee + withdrawal_fee + total_developer_fee.' example: '3.15' total_order_amount: type: string description: Gross amount charged to the payer. When rebalance_fee is false, settlement_amount equals order_amount minus total_fee. example: '100.00' ata_fee_applied: type: boolean description: Whether a Solana Associated Token Account creation fee was applied to gas_fee. example: false - title: OKX type: object properties: data: type: object properties: quote_id: type: string format: uuid description: Unique quote identifier. Pass as quote_id when creating a payment to lock in the quoted fees. example: e9d4c7b2-1a3f-4e85-90f2-c6d8a1b3e4f7 expire_at: type: integer description: Unix timestamp when this quote expires. Request a new quote after expiry. example: 1770916749 order_amount: type: string description: Order amount provided in the request, in USD. example: '100.00' integration_type: type: string example: OKX settlement_config: type: object properties: settlement_via: type: string example: ONE_TO_ONE rebalance_fee: type: boolean example: false destination_details: type: object properties: wallet_address: type: string example: 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU currency: type: string example: USDC rail: type: string example: SOLANA quote_estimation: type: object properties: payment_fee: type: string description: Fee charged by the exchange for processing the payment. example: '0.00' conversion_fee: type: string description: Fee charged for currency conversion where applicable. example: '0.00' withdrawal_fee: type: string description: Fee charged for withdrawing funds from the exchange. example: '0.00' gas_fee: type: string description: Blockchain network gas fee for the on-chain settlement transaction. example: '0.50' total_developer_fee: type: string description: 'Sum of developer-configured fees: fixed fee plus percentage of order_amount.' example: '2.65' total_fee: type: string description: 'Total of all fees: gas_fee + payment_fee + conversion_fee + withdrawal_fee + total_developer_fee.' example: '3.15' total_order_amount: type: string description: Gross amount charged to the payer. When rebalance_fee is false, settlement_amount equals order_amount minus total_fee. example: '106.30' ata_fee_applied: type: boolean description: Whether a Solana Associated Token Account creation fee was applied to gas_fee. example: false examples: Bybit: summary: Bybit value: data: quote_id: 4081fa09-7761-42b6-8f66-24beae1a2ca5 expire_at: 1770916749 order_amount: '100.00' integration_type: BYBIT settlement_config: settlement_via: MARKET_ORDER rebalance_fee: true destination_details: wallet_address: 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU currency: USDC rail: SOLANA quote_estimation: payment_fee: '0.00' conversion_fee: '0.00' withdrawal_fee: '0.00' gas_fee: '0.50' total_fee: '0.50' total_order_amount: '100.00' ata_fee_applied: false Pass Through: summary: Pass Through value: data: quote_id: 5831ce86-cd88-4aba-b1fd-32dcf6e1a030 expire_at: 1770916749 order_amount: '100.00' integration_type: PASS_THROUGH settlement_config: settlement_via: FEE_RETENTION rebalance_fee: false destination_details: wallet_address: bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh currency: BTC rail: BITCOIN quote_estimation: payment_fee: '0.00' conversion_fee: '0.00' withdrawal_fee: '0.00' gas_fee: '0.50' total_developer_fee: '2.65' total_fee: '3.15' total_order_amount: '100.00' ata_fee_applied: false Kraken: summary: Kraken value: data: quote_id: 76e8bcc0-a6b4-41f7-b3d2-76cfbe910fe3 expire_at: 1770916749 order_amount: '100.00' integration_type: KRAKEN settlement_config: settlement_via: ONE_TO_ONE rebalance_fee: false destination_details: wallet_address: 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU currency: PYUSD rail: SOLANA quote_estimation: payment_fee: '0.00' conversion_fee: '0.00' withdrawal_fee: '0.00' gas_fee: '0.50' total_developer_fee: '2.65' total_fee: '3.15' total_order_amount: '100.00' ata_fee_applied: false OKX: summary: OKX value: data: quote_id: e9d4c7b2-1a3f-4e85-90f2-c6d8a1b3e4f7 expire_at: 1770916749 order_amount: '100.00' integration_type: OKX settlement_config: settlement_via: ONE_TO_ONE rebalance_fee: false destination_details: wallet_address: 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU currency: USDC rail: SOLANA quote_estimation: payment_fee: '0.00' conversion_fee: '0.00' withdrawal_fee: '0.00' gas_fee: '0.50' total_developer_fee: '2.65' total_fee: '3.15' total_order_amount: '106.30' ata_fee_applied: false '401': $ref: '#/components/responses/AuthenticationError' components: responses: AuthenticationError: description: Authentication failed due to invalid credentials content: application/json: schema: type: object properties: message: type: string example: Authentication failed securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: Bearer token authentication. Obtain token from [Issue a Token](https://developer.fin.com/api-reference/authentication/issue-a-token) endpoint