> ## Documentation Index
> Fetch the complete documentation index at: https://docs.useroutr.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Accept a quote, pinning its route



## OpenAPI

````yaml /api-reference/openapi.yaml post /funding_intents/{id}/accept
openapi: 3.1.0
info:
  title: Useroutr API
  version: 1.0.0
  description: |
    Universal application funding. Users fund an application with whatever they
    hold, on whatever rail, and the application receives exactly what it needs,
    credited exactly once.

    This document is the single source of truth for every wire type. Server
    handlers, the SDK, the checkout, and the dashboard all consume types
    generated from it. A handler change without a regenerated type fails CI.
servers:
  - url: https://api.useroutr.com/v1
    description: Production
  - url: https://api.sandbox.useroutr.com/v1
    description: Sandbox
security:
  - secretKey: []
tags:
  - name: Funding intents
  - name: Funding addresses
  - name: Customers
  - name: Registry
  - name: Webhooks
paths:
  /funding_intents/{id}/accept:
    post:
      tags:
        - Funding intents
      summary: Accept a quote, pinning its route
      operationId: acceptQuote
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - quote_id
              properties:
                quote_id:
                  type: string
      responses:
        '200':
          description: The intent, now awaiting payment, with pay instructions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FundingIntent'
        default:
          $ref: '#/components/responses/Error'
components:
  parameters:
    IdempotencyKey:
      name: Idempotency-Key
      in: header
      required: true
      description: Required on every mutating request. Absent is a 400.
      schema:
        type: string
        minLength: 8
        maxLength: 200
  schemas:
    FundingIntent:
      type: object
      required:
        - id
        - status
        - destination
        - created_at
        - expires_at
      properties:
        id:
          type: string
          examples:
            - fi_...
        status:
          $ref: '#/components/schemas/FundingIntentStatus'
        amount:
          $ref: '#/components/schemas/Money'
        destination:
          $ref: '#/components/schemas/Endpoint'
        pay_to:
          type: array
          description: Where the payer should send. One entry per rail that can receive.
          items:
            $ref: '#/components/schemas/PayTo'
        reference:
          type: string
        metadata:
          type: object
          additionalProperties: true
        checkout_url:
          type: string
          format: uri
        failure:
          $ref: '#/components/schemas/FundingFailure'
        created_at:
          type: string
          format: date-time
        expires_at:
          type: string
          format: date-time
    FundingIntentStatus:
      type: string
      description: |
        Route shape never appears here. Values may be added in a minor version,
        so every client switch must carry a default.
      enum:
        - created
        - quoted
        - awaiting_payment
        - payment_received
        - in_review
        - settling
        - settled
        - partially_settled
        - undeliverable
        - failed
        - refund_pending
        - refunded
        - refund_failed
        - expired
        - canceled
    Money:
      type: object
      required:
        - amount
        - asset
      properties:
        amount:
          $ref: '#/components/schemas/Decimal'
        asset:
          type: string
          description: Namespaced. crypto:USDC, fiat:NGN, credit:acme:ai_tokens.
          examples:
            - crypto:USDC
    Endpoint:
      type: object
      description: |
        One shape for a bank account, a blockchain address, a card, and an
        internal balance. Used for both sources and destinations: direction is a
        property of the transfer, never of the type.
      required:
        - rail
        - asset
        - target
      properties:
        rail:
          type: string
          description: Open string, resolved through the registry.
          examples:
            - stellar
        asset:
          type: string
          examples:
            - crypto:USDC
        target:
          $ref: '#/components/schemas/EndpointTarget'
    PayTo:
      type: object
      description: |
        Where to send, for one rail. A memo is present only on rails that carry
        one, and omitting it there loses the payment.
      required:
        - rail
        - asset
        - address
      properties:
        rail:
          type: string
          examples:
            - stellar
        asset:
          type: string
          examples:
            - crypto:USDC
        address:
          type: string
        memo:
          type: string
    FundingFailure:
      type: object
      required:
        - code
        - message
        - retryable
      properties:
        code:
          type: string
          description: |
            Chain-specific failures are lifted into chain-neutral codes:
            destination_not_ready covers a missing Stellar trustline, an
            unactivated account, and a failed bank verification alike.
          enum:
            - amount_below_minimum
            - amount_above_maximum
            - insufficient_liquidity
            - rail_unavailable
            - provider_error
            - invalid_destination
            - destination_not_ready
            - quote_expired
            - slippage_exceeded
            - compliance_hold
            - compliance_rejected
            - payout_undeliverable
            - refund_undeliverable
            - underpaid
            - overpaid
            - network_error
            - service_unavailable
        message:
          type: string
          description: >-
            Safe to display. Never contains a provider name or an internal
            identifier.
        retryable:
          type: boolean
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - type
            - request_id
          properties:
            code:
              type: string
            message:
              type: string
            type:
              type: string
              enum:
                - validation_error
                - authentication_error
                - permission_error
                - not_found
                - conflict
                - rate_limit
                - provider_error
                - compliance_error
                - internal_error
            param:
              type:
                - string
                - 'null'
            retryable:
              type: boolean
            retry_after_seconds:
              type: integer
            docs_url:
              type: string
              format: uri
            request_id:
              type: string
    Decimal:
      type: string
      description: Decimal string. Never a float, never a bare integer.
      pattern: ^-?\d+(\.\d+)?$
      examples:
        - '100.00'
    EndpointTarget:
      oneOf:
        - type: object
          required:
            - kind
            - address
          properties:
            kind:
              const: chain_address
            address:
              type: string
            memo:
              type: string
              description: >-
                Validated against the rail. The only Stellar concession in the
                public model.
        - type: object
          required:
            - kind
            - external_account_id
          properties:
            kind:
              const: bank_account
            external_account_id:
              type: string
        - type: object
          required:
            - kind
            - payment_method_id
          properties:
            kind:
              const: card
            payment_method_id:
              type: string
        - type: object
          required:
            - kind
            - account_id
          properties:
            kind:
              const: ledger_account
            account_id:
              type: string
  responses:
    Error:
      description: Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    secretKey:
      type: http
      scheme: bearer
      description: Server-side only. Never ships to a browser.

````