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

# Get payment calldata

> Get the calldata needed to pay a request. For same-chain payments, returns transaction calldata that can be directly executed. For crosschain payments (when chain and token parameters are provided and differ from the request's native chain), returns a payment intent that needs to be signed and processed through the crosschain bridge. For off-ramp payments, use the query parameters clientUserId and paymentDetailsId. Note: Crosschain requests with an expectedAmount less than 1 are rejected.



## OpenAPI

````yaml /api-reference/openapi.v2.json get /v2/request/{requestId}/pay
openapi: 3.0.0
info:
  title: Request Network API
  description: API for easily creating and paying Requests with Request Network.
  version: 0.13.0
  contact: {}
servers:
  - url: https://api.request.network
    description: Production server
  - url: https://api.stage.request.network
    description: Staging server
  - url: http://127.0.0.1:8080
    description: Local development server
security: []
tags:
  - name: V2/Request
    description: Core payment request operations (V2)
  - name: V2/Payments
    description: Payment search and management operations (V2)
  - name: V2/Payouts
    description: Pay a request without creating one first (V2)
  - name: V2/Payer
    description: Crypto-to-fiat payer management operations (V2)
  - name: V2/Currencies
    description: Currency operations (V2)
  - name: V2/Client IDs
    description: Client ID management (V2)
  - name: V2/Payee Destination
    description: Payee destination management (V2)
externalDocs:
  description: Request Network Docs
  url: https://docs.request.network/request-network-api
paths:
  /v2/request/{requestId}/pay:
    get:
      tags:
        - Request
        - V2/Request
      summary: Get payment calldata
      description: >-
        Get the calldata needed to pay a request. For same-chain payments,
        returns transaction calldata that can be directly executed. For
        crosschain payments (when chain and token parameters are provided and
        differ from the request's native chain), returns a payment intent that
        needs to be signed and processed through the crosschain bridge. For
        off-ramp payments, use the query parameters clientUserId and
        paymentDetailsId. Note: Crosschain requests with an expectedAmount less
        than 1 are rejected.
      operationId: RequestControllerV2_getPaymentCalldata_v2
      parameters:
        - name: requestId
          required: true
          in: path
          description: The requestId of the request
          schema:
            example: 01e273ecc29d4b526df3a0f1f05ffc59372af8752c2b678096e49ac270416a7cdb
            type: string
        - name: x-api-key
          in: header
          description: API key for authentication (optional if using Client ID)
          required: false
          schema:
            type: string
        - name: x-client-id
          in: header
          description: Client ID for frontend authentication (optional if using API key)
          required: false
          schema:
            type: string
        - name: Origin
          in: header
          description: >-
            Origin header (required for Client ID auth, automatically set by
            browser)
          required: false
          schema:
            type: string
        - name: wallet
          required: false
          in: query
          description: The wallet address of the payer.
          schema:
            example: '0x6923831ACf5c327260D7ac7C9DfF5b1c3cB3C7D7'
            type: string
        - name: chain
          required: false
          in: query
          description: The source chain of the crosschain payment
          x-feature-flag: crosschainDisabled
          schema:
            enum:
              - BASE
              - OPTIMISM
              - ARBITRUM
              - ETHEREUM
            type: string
        - name: token
          required: false
          in: query
          description: The source token of the crosschain payment
          x-feature-flag: crosschainDisabled
          schema:
            enum:
              - USDC
              - USDT
            type: string
        - name: amount
          required: false
          in: query
          description: The amount to pay, in human readable format
          schema:
            type: string
        - name: clientUserId
          required: false
          in: query
          description: Optional client user ID for off-ramp payments
          schema:
            example: user-123
            type: string
        - name: paymentDetailsId
          required: false
          in: query
          description: Optional payment details ID for off-ramp payments
          schema:
            example: fa898aec-519c-46be-9b4c-e76ef4ff99d9
            type: string
        - name: feePercentage
          required: false
          in: query
          description: Fee percentage to apply at payment time (e.g., '2.5' for 2.5%)
          schema:
            example: '0.02'
            type: string
        - name: feeAddress
          required: false
          in: query
          description: Address to receive the fee
          schema:
            example: '0x6923831ACf5c327260D7ac7C9DfF5b1c3cB3C7D7'
            type: string
      responses:
        '200':
          description: Payment calldata retrieved successfully
          content:
            application/json:
              schema:
                anyOf:
                  - type: object
                    title: Same-chain Payment Response
                    description: Response for same-chain payments with transaction calldata
                    properties:
                      transactions:
                        type: array
                        description: Array of transactions to execute for the payment
                        items:
                          type: object
                          properties:
                            data:
                              type: string
                              description: Transaction calldata
                            to:
                              type: string
                              description: Target contract address
                            value:
                              type: object
                              description: Payment amount in EVM-compatible format
                              properties:
                                type:
                                  type: string
                                  enum:
                                    - BigNumber
                                hex:
                                  type: string
                                  description: Amount encoded in hex
                          required:
                            - data
                            - to
                            - value
                      metadata:
                        type: object
                        description: Metadata about the payment requirements
                        properties:
                          stepsRequired:
                            type: number
                            description: Number of transactions required
                          needsApproval:
                            type: boolean
                            description: Whether token approval is needed
                          approvalTransactionIndex:
                            type: number
                            nullable: true
                            description: Index of the approval transaction if needed
                          hasEnoughBalance:
                            type: boolean
                            description: Whether payer has sufficient balance
                          hasEnoughGas:
                            type: boolean
                            description: Whether payer has sufficient gas
                        required:
                          - stepsRequired
                          - needsApproval
                          - hasEnoughBalance
                          - hasEnoughGas
                    required:
                      - transactions
                      - metadata
                  - type: object
                    title: Crosschain Payment Response
                    description: >-
                      Response for crosschain payments with payment intent to be
                      signed
                    properties:
                      paymentIntentId:
                        type: string
                        description: Unique identifier for the payment intent
                      paymentIntent:
                        type: string
                        description: EIP-712 typed data for payment intent signature
                      approvalPermitPayload:
                        type: string
                        nullable: true
                        description: >-
                          EIP-712 typed data for token approval permit (for
                          EIP-2612 compliant tokens)
                      approvalCalldata:
                        type: object
                        nullable: true
                        description: >-
                          Transaction calldata for token approval (for
                          non-EIP-2612 tokens)
                        properties:
                          to:
                            type: string
                            description: Token contract address
                          data:
                            type: string
                            description: Approval transaction calldata
                          value:
                            type: string
                            description: Transaction value (usually '0x0')
                      metadata:
                        type: object
                        description: Metadata about the crosschain payment
                        properties:
                          supportsEIP2612:
                            type: boolean
                            description: Whether the token supports EIP-2612 permits
                        required:
                          - supportsEIP2612
                    required:
                      - paymentIntentId
                      - paymentIntent
                      - metadata
              examples:
                native:
                  summary: Native currency payment
                  value:
                    transactions:
                      - data: 0xb868980b...00
                        to: '0x11BF2fDA23bF0A98365e1A4e04A87C9339e8687'
                        value:
                          type: BigNumber
                          hex: '0x038d7ea4c68000'
                    metadata:
                      stepsRequired: 1
                      needsApproval: false
                      approvalTransactionIndex: null
                      hasEnoughBalance: true
                      hasEnoughGas: true
                token:
                  summary: ERC20 token payment
                  value:
                    transactions:
                      - data: 0x095ea7b3...ff
                        to: '0x370DE27fdb7D1Ff1e1BaA7D11c5820a324cf623C'
                        value: 0
                      - data: 0xc219a14d...00
                        to: '0x399F5EE127ce7432E4921a61b8CF52b0af52cbfE'
                        value: 0
                    metadata:
                      stepsRequired: 2
                      needsApproval: true
                      approvalTransactionIndex: 0
                      hasEnoughBalance: true
                      hasEnoughGas: true
                currencyThatSupportsEIP2612:
                  summary: Crosschain payment with a currency that supports EIP-2612
                  x-feature-flag: crosschainDisabled
                  value:
                    paymentIntentId: 01JPHNEY8RRJTB94Q34GAW8BC3
                    paymentIntent: |-
                      {
                        "domain": {
                          "name": "Permit2",
                          "chainId": 42161,
                          "verifyingContract": "0x000000000022D473030F116dDEE9F6B43aC78BA3"
                        },
                        "types": {
                          "PermitBatchWitnessTransferFrom": [
                            {
                              "name": "permitted",
                              "type": "TokenPermissions[]"
                            },
                            {
                              "name": "spender",
                              "type": "address"
                            },
                            {
                              "name": "nonce",
                              "type": "uint256"
                            },
                            {
                              "name": "deadline",
                              "type": "uint256"
                            },
                            {
                              "name": "witness",
                              "type": "PaymentIntent"
                            }
                          ],
                          "TokenPermissions": [
                            {
                              "name": "token",
                              "type": "address"
                            },
                            {
                              "name": "amount",
                              "type": "uint256"
                            }
                          ],
                          "PaymentIntent": [
                            {
                              "name": "payment_type",
                              "type": "uint8"
                            },
                            {
                              "name": "operator_data",
                              "type": "OperatorData"
                            },
                            {
                              "name": "amount",
                              "type": "uint256"
                            },
                            {
                              "name": "source",
                              "type": "Domain"
                            },
                            {
                              "name": "destination",
                              "type": "Domain"
                            },
                            {
                              "name": "processing_date",
                              "type": "uint256"
                            },
                            {
                              "name": "expires_at",
                              "type": "uint256"
                            }
                          ],
                          "OperatorData": [
                            {
                              "name": "operatorId",
                              "type": "bytes32"
                            },
                            {
                              "name": "operator",
                              "type": "address"
                            },
                            {
                              "name": "treasury_account",
                              "type": "address"
                            },
                            {
                              "name": "fee",
                              "type": "uint256"
                            }
                          ],
                          "Domain": [
                            {
                              "name": "account",
                              "type": "address"
                            },
                            {
                              "name": "network_id",
                              "type": "uint256"
                            },
                            {
                              "name": "payment_token",
                              "type": "address"
                            }
                          ]
                        },
                        "values": {
                          "permitted": [
                            {
                              "token": "0xaf88d065e77c8cc2239327c5edb3a432268e5831",
                              "amount": "1998000"
                            },
                            {
                              "token": "0xaf88d065e77c8cc2239327c5edb3a432268e5831",
                              "amount": "0"
                            },
                            {
                              "token": "0xaf88d065e77c8cc2239327c5edb3a432268e5831",
                              "amount": "2000"
                            }
                          ],
                          "spender": "0x4B1d5b0aF5AbAe333C8d2CCa2a346e0D5f68C427",
                          "nonce": "1742202173708",
                          "deadline": "1742205771",
                          "witness": {
                            "payment_type": 0,
                            "operator_data": {
                              "operatorId": "0x6ab1463ead4ba60b8e08155b29ea2b3c91731e78be09b6e12b6c25414d724dd0",
                              "operator": "0xd36B6f4040B8449e93eb2B348EdCD2a968AEA9D9",
                              "treasury_account": "0xd36B6f4040B8449e93eb2B348EdCD2a968AEA9D9",
                              "fee": "0"
                            },
                            "amount": "2000000",
                            "source": {
                              "account": "0xb07D2398d2004378cad234DA0EF14f1c94A530e4",
                              "network_id": "42161",
                              "payment_token": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831"
                            },
                            "destination": {
                              "account": "0x6923831ACf5c327260D7ac7C9DfF5b1c3cB3C7D7",
                              "network_id": "8453",
                              "payment_token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
                            },
                            "processing_date": "1742220173",
                            "expires_at": "1742205771"
                          }
                        }
                      }
                    approvalPermitPayload: |-
                      {
                        "domain": {
                          "name": "USD Coin",
                          "version": "2",
                          "chainId": 42161,
                          "verifyingContract": "0xaf88d065e77c8cc2239327c5edb3a432268e5831"
                        },
                        "types": {
                          "Permit": [
                            {
                              "name": "owner",
                              "type": "address"
                            },
                            {
                              "name": "spender",
                              "type": "address"
                            },
                            {
                              "name": "value",
                              "type": "uint256"
                            },
                            {
                              "name": "nonce",
                              "type": "uint256"
                            },
                            {
                              "name": "deadline",
                              "type": "uint256"
                            }
                          ]
                        },
                        "values": {
                          "owner": "0xb07D2398d2004378cad234DA0EF14f1c94A530e4",
                          "spender": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
                          "value": "115792089237316195423570985008687907853269984665640564039457584007913129639935",
                          "nonce": "1",
                          "deadline": 1742205771
                        }
                      }
                    metadata:
                      supportsEIP2612: true
                currencyThatDoesNotSupportEIP2612:
                  summary: >-
                    Crosschain payment with a currency that does not support
                    EIP-2612
                  x-feature-flag: crosschainDisabled
                  value:
                    paymentIntentId: 01JPHNFMRC2JFG4W08FGDG4KD3
                    paymentIntent: |-
                      {
                        "domain": {
                          "name": "Permit2",
                          "chainId": 42161,
                          "verifyingContract": "0x000000000022D473030F116dDEE9F6B43aC78BA3"
                        },
                        "types": {
                          "PermitBatchWitnessTransferFrom": [
                            {
                              "name": "permitted",
                              "type": "TokenPermissions[]"
                            },
                            {
                              "name": "spender",
                              "type": "address"
                            },
                            {
                              "name": "nonce",
                              "type": "uint256"
                            },
                            {
                              "name": "deadline",
                              "type": "uint256"
                            },
                            {
                              "name": "witness",
                              "type": "PaymentIntent"
                            }
                          ],
                          "TokenPermissions": [
                            {
                              "name": "token",
                              "type": "address"
                            },
                            {
                              "name": "amount",
                              "type": "uint256"
                            }
                          ],
                          "PaymentIntent": [
                            {
                              "name": "payment_type",
                              "type": "uint8"
                            },
                            {
                              "name": "operator_data",
                              "type": "OperatorData"
                            },
                            {
                              "name": "amount",
                              "type": "uint256"
                            },
                            {
                              "name": "source",
                              "type": "Domain"
                            },
                            {
                              "name": "destination",
                              "type": "Domain"
                            },
                            {
                              "name": "processing_date",
                              "type": "uint256"
                            },
                            {
                              "name": "expires_at",
                              "type": "uint256"
                            }
                          ],
                          "OperatorData": [
                            {
                              "name": "operatorId",
                              "type": "bytes32"
                            },
                            {
                              "name": "operator",
                              "type": "address"
                            },
                            {
                              "name": "treasury_account",
                              "type": "address"
                            },
                            {
                              "name": "fee",
                              "type": "uint256"
                            }
                          ],
                          "Domain": [
                            {
                              "name": "account",
                              "type": "address"
                            },
                            {
                              "name": "network_id",
                              "type": "uint256"
                            },
                            {
                              "name": "payment_token",
                              "type": "address"
                            }
                          ]
                        },
                        "values": {
                          "permitted": [
                            {
                              "token": "0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9",
                              "amount": "1998000"
                            },
                            {
                              "token": "0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9",
                              "amount": "0"
                            },
                            {
                              "token": "0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9",
                              "amount": "2000"
                            }
                          ],
                          "spender": "0x4B1d5b0aF5AbAe333C8d2CCa2a346e0D5f68C427",
                          "nonce": "1742202196746",
                          "deadline": "1742205796",
                          "witness": {
                            "payment_type": 0,
                            "operator_data": {
                              "operatorId": "0x6ab1463ead4ba60b8e08155b29ea2b3c91731e78be09b6e12b6c25414d724dd0",
                              "operator": "0xd36B6f4040B8449e93eb2B348EdCD2a968AEA9D9",
                              "treasury_account": "0xd36B6f4040B8449e93eb2B348EdCD2a968AEA9D9",
                              "fee": "0"
                            },
                            "amount": "2000000",
                            "source": {
                              "account": "0xb07D2398d2004378cad234DA0EF14f1c94A530e4",
                              "network_id": "42161",
                              "payment_token": "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"
                            },
                            "destination": {
                              "account": "0x6923831ACf5c327260D7ac7C9DfF5b1c3cB3C7D7",
                              "network_id": "8453",
                              "payment_token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
                            },
                            "processing_date": "1742220196",
                            "expires_at": "1742205796"
                          }
                        }
                      }
                    approvalCalldata:
                      to: '0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9'
                      data: >-
                        0x095ea7b3000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
                      value: '0x0'
                    metadata:
                      supportsEIP2612: false
        '400':
          description: Validation failed
          content:
            application/json:
              examples:
                queryParamsValidation:
                  summary: Query Validation Failed
                  value:
                    message: Validation failed
                    errors:
                      - field: wallet
                        message: Invalid Ethereum address
                      - field: chain
                        message: >-
                          Invalid enum value. Expected 'POLYGON' | 'BASE' |
                          'OPTIMISM' | 'ETHEREUM' | 'ARBITRUM', received {input}
                      - field: token
                        message: >-
                          Invalid enum value. Expected 'USDC' | 'USDT', received
                          {input}
                tokenNotSupportedCrosschain:
                  summary: Token not supported for crosschain payment
                  value:
                    message: FAU is not supported in crosschain payment.
                    error: Bad Request
                    statusCode: 400
        '404':
          description: Request not found
        '429':
          description: Too Many Requests

````