> ## 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.

# Commit to paying with one asset

> Locks a route for the chosen asset and switches the intent's funding instructions to it, fixing the exact amount the payer must send and where. Returns the refreshed payer view, so a checkout reads the instructions from the same shape it already polls. One intent can hold one lock: selecting again while a quote is locked answers 409.



## OpenAPI

````yaml /api-reference/openapi.json post /v1/public/funding-intents/{token}/payment-option
openapi: 3.1.0
info:
  title: Useroutr API
  version: '1'
  description: >-
    Application funding infrastructure. Two authentication layers exist and are
    never interchangeable: developer backends authenticate with an application
    API key (`apiKey`), and the Useroutr dashboard authenticates a human with a
    Useroutr account session (`userSession`, obtained from `/v1/auth/sign-in`).
    Platform operations use the operator platform key. Every response carries an
    `X-Request-ID` header that also appears in error envelopes.
servers:
  - url: https://api.sandbox.useroutr.com
    description: 'Sandbox: ur_test_ keys, Stellar testnet'
  - url: https://api.useroutr.com
    description: 'Production: ur_live_ keys'
security: []
tags:
  - name: Funding Intents
    description: Funding intent lifecycle
  - name: Quotes
    description: 'Route quotes: what a payer must send from a chosen source asset'
  - name: Checkout
    description: Public, token-addressed payer view
  - name: Payments
    description: Observed payments
  - name: Settlements
    description: Settlement state and protocol evidence
  - name: Refunds
    description: Refund requests for payments that did not satisfy an intent
  - name: Ledger
    description: Application balances and ledger entries
  - name: Webhooks
    description: Webhook endpoints, events and deliveries
  - name: Assets
    description: Supported assets
  - name: Applications
    description: Application registration and credentials
  - name: Request logs
    description: Requests made with the application's API keys, kept for 30 days
paths:
  /v1/public/funding-intents/{token}/payment-option:
    post:
      tags:
        - Checkout
      summary: Commit to paying with one asset
      description: >-
        Locks a route for the chosen asset and switches the intent's funding
        instructions to it, fixing the exact amount the payer must send and
        where. Returns the refreshed payer view, so a checkout reads the
        instructions from the same shape it already polls. One intent can hold
        one lock: selecting again while a quote is locked answers 409.
      parameters:
        - schema:
            type: string
            pattern: ^[A-Za-z0-9_-]{16,128}$
          in: path
          name: token
          required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  minLength: 1
                  maxLength: 32
                asset:
                  type: string
                  minLength: 1
                  maxLength: 100
              required:
                - network
                - asset
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  object:
                    type: string
                    enum:
                      - public_funding_intent
                  application_name:
                    type: string
                  branding:
                    type: object
                    properties:
                      brand_color:
                        type:
                          - string
                          - 'null'
                      logo_url:
                        type:
                          - string
                          - 'null'
                    required:
                      - brand_color
                      - logo_url
                    additionalProperties: false
                  status:
                    type: string
                    enum:
                      - CREATED
                      - AWAITING_PAYMENT
                      - PARTIALLY_FUNDED
                      - PAYMENT_DETECTED
                      - PAYMENT_CONFIRMED
                      - ROUTING
                      - SETTLING
                      - SETTLED
                      - CREDITED
                      - FAILED
                      - REFUND_PENDING
                      - REFUNDED
                      - EXPIRED
                      - CANCELLED
                  stellar_network:
                    type: string
                    enum:
                      - testnet
                      - mainnet
                      - local
                  expired:
                    type: boolean
                  requirement:
                    type: object
                    properties:
                      amount:
                        type: string
                      asset:
                        type: string
                    required:
                      - amount
                      - asset
                    additionalProperties: false
                  received_amount:
                    type: string
                  asset:
                    anyOf:
                      - type: object
                        properties:
                          id:
                            type: string
                          symbol:
                            type: string
                          decimals:
                            type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                        required:
                          - id
                          - symbol
                          - decimals
                        additionalProperties: false
                      - type: 'null'
                  destination:
                    type: object
                    properties:
                      network:
                        type: string
                        minLength: 1
                        maxLength: 32
                      asset:
                        type: string
                        minLength: 1
                        maxLength: 100
                      address:
                        type: string
                        minLength: 1
                        maxLength: 128
                    required:
                      - network
                      - asset
                      - address
                    additionalProperties: false
                  funding_instructions:
                    anyOf:
                      - anyOf:
                          - type: object
                            properties:
                              network:
                                type: string
                                enum:
                                  - stellar
                              stellar_network:
                                type: string
                                enum:
                                  - testnet
                                  - mainnet
                                  - local
                              deposit:
                                type: object
                                properties:
                                  address:
                                    type: string
                                  type:
                                    type: string
                                    enum:
                                      - account
                                required:
                                  - address
                                  - type
                                additionalProperties: false
                              asset:
                                type: object
                                properties:
                                  id:
                                    type: string
                                  symbol:
                                    type: string
                                  stellar_asset:
                                    type: string
                                  code:
                                    type: string
                                  issuer:
                                    type:
                                      - string
                                      - 'null'
                                  contract:
                                    type: string
                                  decimals:
                                    type: integer
                                    minimum: -9007199254740991
                                    maximum: 9007199254740991
                                required:
                                  - id
                                  - symbol
                                  - stellar_asset
                                  - code
                                  - issuer
                                  - contract
                                  - decimals
                                additionalProperties: false
                              amount:
                                type: string
                              required_amount:
                                type: string
                              received_amount:
                                type: string
                              expires_at:
                                type: string
                            required:
                              - network
                              - stellar_network
                              - deposit
                              - asset
                              - amount
                              - required_amount
                              - received_amount
                              - expires_at
                            additionalProperties: false
                          - type: object
                            properties:
                              network:
                                type: string
                              chain_id:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                              deposit:
                                type: object
                                properties:
                                  address:
                                    type: string
                                  type:
                                    type: string
                                    enum:
                                      - contract
                                required:
                                  - address
                                  - type
                                additionalProperties: false
                              asset:
                                type: object
                                properties:
                                  id:
                                    type: string
                                  symbol:
                                    type: string
                                  contract:
                                    type: string
                                  decimals:
                                    type: integer
                                    minimum: -9007199254740991
                                    maximum: 9007199254740991
                                required:
                                  - id
                                  - symbol
                                  - contract
                                  - decimals
                                additionalProperties: false
                              amount:
                                type: string
                              required_amount:
                                type: string
                              received_amount:
                                type: string
                              expires_at:
                                type: string
                            required:
                              - network
                              - chain_id
                              - deposit
                              - asset
                              - amount
                              - required_amount
                              - received_amount
                              - expires_at
                            additionalProperties: false
                      - type: 'null'
                  selected_payment_option:
                    anyOf:
                      - type: object
                        properties:
                          network:
                            type: string
                          asset:
                            type: string
                        required:
                          - network
                          - asset
                        additionalProperties: false
                      - type: 'null'
                  payment:
                    anyOf:
                      - type: object
                        properties:
                          status:
                            type: string
                            enum:
                              - DETECTED
                              - CONFIRMING
                              - CONFIRMED
                              - INVALID
                              - FAILED
                          amount:
                            type: string
                          transaction_hash:
                            type:
                              - string
                              - 'null'
                          explorer_url:
                            type:
                              - string
                              - 'null'
                          detected_at:
                            type: string
                          confirmed_at:
                            type:
                              - string
                              - 'null'
                        required:
                          - status
                          - amount
                          - transaction_hash
                          - explorer_url
                          - detected_at
                          - confirmed_at
                        additionalProperties: false
                      - type: 'null'
                  settlement_status:
                    anyOf:
                      - type: string
                        enum:
                          - PENDING
                          - SUBMITTED
                          - CONFIRMING
                          - CONFIRMED
                          - FAILED
                      - type: 'null'
                  failure:
                    anyOf:
                      - type: object
                        properties:
                          code:
                            type: string
                          message:
                            type: string
                        required:
                          - code
                          - message
                        additionalProperties: false
                      - type: 'null'
                  expires_at:
                    type: string
                  created_at:
                    type: string
                  updated_at:
                    type: string
                required:
                  - id
                  - object
                  - application_name
                  - branding
                  - status
                  - stellar_network
                  - expired
                  - requirement
                  - received_amount
                  - asset
                  - destination
                  - funding_instructions
                  - selected_payment_option
                  - payment
                  - settlement_status
                  - failure
                  - expires_at
                  - created_at
                  - updated_at
                additionalProperties: false
        '404':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - BAD_REQUEST
                          - VALIDATION_ERROR
                          - UNAUTHORIZED
                          - FORBIDDEN
                          - NOT_FOUND
                          - CONFLICT
                          - IDEMPOTENCY_KEY_REQUIRED
                          - IDEMPOTENCY_KEY_REUSED
                          - IDEMPOTENCY_REQUEST_IN_PROGRESS
                          - APPLICATION_INACTIVE
                          - INVALID_AMOUNT
                          - UNSUPPORTED_ASSET
                          - INVALID_DESTINATION
                          - INVALID_EXPIRATION
                          - PROTOCOL_REJECTED
                          - PROTOCOL_UNAVAILABLE
                          - NO_ROUTE_AVAILABLE
                          - INSUFFICIENT_INPUT
                          - QUOTE_EXPIRED
                          - QUOTE_NOT_SELECTABLE
                          - QUOTE_NOT_LOCKED
                          - EXECUTION_NOT_FAILED
                          - EXECUTION_NOT_RESUMABLE
                          - LOGO_FORMAT_UNSUPPORTED
                          - LOGO_DIMENSIONS_INVALID
                          - LOGO_STORAGE_UNAVAILABLE
                          - ROUTE_UNAVAILABLE
                          - RATE_LIMITED
                          - INVALID_CREDENTIALS
                          - EMAIL_NOT_VERIFIED
                          - EMAIL_ALREADY_REGISTERED
                          - SESSION_EXPIRED
                          - INVALID_TOKEN
                          - INTERNAL_ERROR
                      message:
                        type: string
                      requestId:
                        type: string
                      retryable:
                        type: boolean
                      details:
                        type: array
                        items:
                          type: object
                          properties:
                            path:
                              type: string
                            message:
                              type: string
                          required:
                            - path
                            - message
                          additionalProperties: false
                    required:
                      - code
                      - message
                      - requestId
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '409':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - BAD_REQUEST
                          - VALIDATION_ERROR
                          - UNAUTHORIZED
                          - FORBIDDEN
                          - NOT_FOUND
                          - CONFLICT
                          - IDEMPOTENCY_KEY_REQUIRED
                          - IDEMPOTENCY_KEY_REUSED
                          - IDEMPOTENCY_REQUEST_IN_PROGRESS
                          - APPLICATION_INACTIVE
                          - INVALID_AMOUNT
                          - UNSUPPORTED_ASSET
                          - INVALID_DESTINATION
                          - INVALID_EXPIRATION
                          - PROTOCOL_REJECTED
                          - PROTOCOL_UNAVAILABLE
                          - NO_ROUTE_AVAILABLE
                          - INSUFFICIENT_INPUT
                          - QUOTE_EXPIRED
                          - QUOTE_NOT_SELECTABLE
                          - QUOTE_NOT_LOCKED
                          - EXECUTION_NOT_FAILED
                          - EXECUTION_NOT_RESUMABLE
                          - LOGO_FORMAT_UNSUPPORTED
                          - LOGO_DIMENSIONS_INVALID
                          - LOGO_STORAGE_UNAVAILABLE
                          - ROUTE_UNAVAILABLE
                          - RATE_LIMITED
                          - INVALID_CREDENTIALS
                          - EMAIL_NOT_VERIFIED
                          - EMAIL_ALREADY_REGISTERED
                          - SESSION_EXPIRED
                          - INVALID_TOKEN
                          - INTERNAL_ERROR
                      message:
                        type: string
                      requestId:
                        type: string
                      retryable:
                        type: boolean
                      details:
                        type: array
                        items:
                          type: object
                          properties:
                            path:
                              type: string
                            message:
                              type: string
                          required:
                            - path
                            - message
                          additionalProperties: false
                    required:
                      - code
                      - message
                      - requestId
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '422':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - BAD_REQUEST
                          - VALIDATION_ERROR
                          - UNAUTHORIZED
                          - FORBIDDEN
                          - NOT_FOUND
                          - CONFLICT
                          - IDEMPOTENCY_KEY_REQUIRED
                          - IDEMPOTENCY_KEY_REUSED
                          - IDEMPOTENCY_REQUEST_IN_PROGRESS
                          - APPLICATION_INACTIVE
                          - INVALID_AMOUNT
                          - UNSUPPORTED_ASSET
                          - INVALID_DESTINATION
                          - INVALID_EXPIRATION
                          - PROTOCOL_REJECTED
                          - PROTOCOL_UNAVAILABLE
                          - NO_ROUTE_AVAILABLE
                          - INSUFFICIENT_INPUT
                          - QUOTE_EXPIRED
                          - QUOTE_NOT_SELECTABLE
                          - QUOTE_NOT_LOCKED
                          - EXECUTION_NOT_FAILED
                          - EXECUTION_NOT_RESUMABLE
                          - LOGO_FORMAT_UNSUPPORTED
                          - LOGO_DIMENSIONS_INVALID
                          - LOGO_STORAGE_UNAVAILABLE
                          - ROUTE_UNAVAILABLE
                          - RATE_LIMITED
                          - INVALID_CREDENTIALS
                          - EMAIL_NOT_VERIFIED
                          - EMAIL_ALREADY_REGISTERED
                          - SESSION_EXPIRED
                          - INVALID_TOKEN
                          - INTERNAL_ERROR
                      message:
                        type: string
                      requestId:
                        type: string
                      retryable:
                        type: boolean
                      details:
                        type: array
                        items:
                          type: object
                          properties:
                            path:
                              type: string
                            message:
                              type: string
                          required:
                            - path
                            - message
                          additionalProperties: false
                    required:
                      - code
                      - message
                      - requestId
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '503':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - BAD_REQUEST
                          - VALIDATION_ERROR
                          - UNAUTHORIZED
                          - FORBIDDEN
                          - NOT_FOUND
                          - CONFLICT
                          - IDEMPOTENCY_KEY_REQUIRED
                          - IDEMPOTENCY_KEY_REUSED
                          - IDEMPOTENCY_REQUEST_IN_PROGRESS
                          - APPLICATION_INACTIVE
                          - INVALID_AMOUNT
                          - UNSUPPORTED_ASSET
                          - INVALID_DESTINATION
                          - INVALID_EXPIRATION
                          - PROTOCOL_REJECTED
                          - PROTOCOL_UNAVAILABLE
                          - NO_ROUTE_AVAILABLE
                          - INSUFFICIENT_INPUT
                          - QUOTE_EXPIRED
                          - QUOTE_NOT_SELECTABLE
                          - QUOTE_NOT_LOCKED
                          - EXECUTION_NOT_FAILED
                          - EXECUTION_NOT_RESUMABLE
                          - LOGO_FORMAT_UNSUPPORTED
                          - LOGO_DIMENSIONS_INVALID
                          - LOGO_STORAGE_UNAVAILABLE
                          - ROUTE_UNAVAILABLE
                          - RATE_LIMITED
                          - INVALID_CREDENTIALS
                          - EMAIL_NOT_VERIFIED
                          - EMAIL_ALREADY_REGISTERED
                          - SESSION_EXPIRED
                          - INVALID_TOKEN
                          - INTERNAL_ERROR
                      message:
                        type: string
                      requestId:
                        type: string
                      retryable:
                        type: boolean
                      details:
                        type: array
                        items:
                          type: object
                          properties:
                            path:
                              type: string
                            message:
                              type: string
                          required:
                            - path
                            - message
                          additionalProperties: false
                    required:
                      - code
                      - message
                      - requestId
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
      security: []
      x-codeSamples:
        - lang: typescript
          label: Node.js SDK
          source: |-
            import { HttpCheckoutApi } from "@useroutr/checkout-core";

            const checkout = new HttpCheckoutApi({
              baseUrl: "https://api.sandbox.useroutr.com/v1/public",
              token: "8sf6B570T1UkUIPhcltW2CTdnhHtRLDK",
            });
            const intent = await checkout.selectPaymentOption({
              network: "stellar",
              asset: "asset_xlm_stellar",
            });
        - lang: bash
          label: cURL
          source: >-
            curl -X POST
            "https://api.sandbox.useroutr.com/v1/public/funding-intents/8sf6B570T1UkUIPhcltW2CTdnhHtRLDK/payment-option"
            \
              -H "Content-Type: application/json" \
              -d '{"network":"stellar","asset":"asset_xlm_stellar"}'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.