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

# Create payment request

> Create a payment request. Natural notifies the payer directly: email and phone payers receive the pay link, on-platform parties receive a dashboard deep-link, and agent and handle payers receive only the in-app webhook.



## OpenAPI

````yaml /api-reference/openapi.json post /payment-requests
openapi: 3.1.1
info:
  title: Natural API
  version: 0.2.0
  description: >-
    Natural's payments API for autonomous agents.


    **Base URL:** `https://api.natural.co`


    Agents and coding assistants should prefer the hosted MCP server at
    `https://mcp.natural.co` when an MCP-aware host runs the agent, the Natural
    CLI for terminal/CI workflows, and the official SDKs for application
    runtimes they own. Use direct HTTP only for explicit low-level integrations,
    unsupported SDK gaps, or infrastructure work where REST is required.


    For support: support@natural.co
servers:
  - url: https://api.natural.co
    description: Production
security: []
tags:
  - name: Agents
    description: Agent management
  - name: Customers
    description: Customer management
  - name: Counterparties
    description: Counterparty management
  - name: Payments
    description: Payment operations
  - name: Transactions
    description: Transaction activity and history operations
  - name: Transfers
    description: Deposit and withdrawal operations
  - name: PaymentRequests
    description: Payment-request management
  - name: Approvals
    description: Approval review operations
  - name: Invitations
    description: Party invitation management
  - name: Identity
    description: Caller identity introspection
  - name: Parties
    description: Party and organization management
  - name: Wallets
    description: Wallet balance, deposits, withdrawals, and external accounts
  - name: External Accounts
    description: Linked external bank accounts
  - name: API Keys
    description: API key management
  - name: Agent Keys
    description: Agent key management
  - name: Webhooks
    description: Webhook endpoint management
  - name: Events
    description: Webhook event log access
paths:
  /payment-requests:
    post:
      tags:
        - PaymentRequests
      summary: Create payment request
      description: >-
        Create a payment request. Natural notifies the payer directly: email and
        phone payers receive the pay link, on-platform parties receive a
        dashboard deep-link, and agent and handle payers receive only the in-app
        webhook.
      operationId: paymentRequests.create
      parameters:
        - name: Idempotency-Key
          in: header
          required: true
          schema:
            type: string
          description: >-
            Unique key for idempotent request handling. If a request with the
            same key was already processed, the original response is returned.
        - name: X-Agent-ID
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
          description: Agent ID (agt_xxx) identifying which agent is making the request.
        - name: X-Instance-ID
          in: header
          required: false
          schema:
            anyOf:
              - type: string
                maxLength: 1024
              - type: 'null'
          description: >-
            Required when X-Agent-ID is present. Session or conversation ID for
            agent observability.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    attributes:
                      type: object
                      properties:
                        customerPartyId:
                          type: string
                          pattern: ^pty_[0-9a-f]{32}$
                          description: >-
                            Requester party ID (pty_*). Omit to request into
                            your own wallet; provide for delegated payment
                            requests on behalf of a customer.
                        walletId:
                          type: string
                          pattern: ^wal_[0-9a-f]{32}$
                          description: >-
                            Wallet that should receive the funds. Omit to use
                            the requester party's default wallet.
                        amount:
                          type: integer
                          exclusiveMinimum: 0
                          description: Amount in minor units (cents for USD)
                        currency:
                          enum:
                            - USD
                          type: string
                          default: USD
                          description: Currency code (currently only USD)
                        description:
                          type: string
                          maxLength: 500
                          description: >-
                            Free-form description shown to the payer. Maximum
                            500 characters.
                        payerName:
                          type: string
                          description: Display name of the payer
                        payer:
                          anyOf:
                            - type: object
                              properties:
                                type:
                                  type: string
                                  enum:
                                    - email
                                value:
                                  type: string
                                  format: email
                                  description: Email address
                              required:
                                - type
                                - value
                              additionalProperties: false
                            - type: object
                              properties:
                                type:
                                  type: string
                                  enum:
                                    - phone
                                value:
                                  type: string
                                  description: Phone number in E.164 format
                              required:
                                - type
                                - value
                              additionalProperties: false
                            - type: object
                              properties:
                                type:
                                  type: string
                                  enum:
                                    - party_id
                                value:
                                  type: string
                                  pattern: ^pty_[0-9a-f]{32}$
                                  description: Natural party ID (pty_*)
                              required:
                                - type
                                - value
                              additionalProperties: false
                            - type: object
                              properties:
                                type:
                                  type: string
                                  enum:
                                    - agent_id
                                value:
                                  type: string
                                  pattern: ^agt_[0-9a-f]{32}$
                                  description: Natural agent ID (agt_*)
                              required:
                                - type
                                - value
                              additionalProperties: false
                            - type: object
                              properties:
                                type:
                                  type: string
                                  enum:
                                    - handle
                                value:
                                  type: string
                                  pattern: >-
                                    ^@?[A-Za-z0-9](?:[A-Za-z0-9-]{0,28}[A-Za-z0-9])?(?:\/[A-Za-z0-9](?:[A-Za-z0-9-]{0,28}[A-Za-z0-9])?)?$
                                  description: >-
                                    Natural handle (@namespace or
                                    @namespace/slug)
                              required:
                                - type
                                - value
                              additionalProperties: false
                          title: PaymentRequestPayer
                          description: >-
                            Who pays: exactly one typed email, phone, party ID,
                            agent ID, or handle value.
                      required:
                        - amount
                        - payer
                      additionalProperties: false
                      description: Payment request creation attributes
                  required:
                    - attributes
                  additionalProperties: false
                  description: Resource object
              required:
                - data
              additionalProperties: false
              title: PaymentRequestCreateRequest
            examples:
              default:
                summary: Default
                value:
                  data:
                    attributes:
                      amount: 2500
                      currency: USD
                      description: Invoice 7
                      payerName: Ada Lovelace
                      payer:
                        type: email
                        value: ada@example.com
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      type:
                        description: Resource type
                        type: string
                        enum:
                          - paymentRequest
                      id:
                        type: string
                        pattern: ^prq_[0-9a-f]{32}$
                        description: Resource ID (prq_*)
                      attributes:
                        type: object
                        properties:
                          amount:
                            type: integer
                            description: Amount in cents
                          currency:
                            type: string
                            description: Currency code
                          status:
                            enum:
                              - OPEN
                              - PROCESSING
                              - COMPLETED
                              - FAILED
                              - RETURNED
                              - CANCELED
                              - DECLINED
                              - EXPIRED
                            type: string
                            description: Current status of the payment request
                          description:
                            anyOf:
                              - type: string
                                maxLength: 500
                              - type: 'null'
                            description: >-
                              Free-form description provided at creation.
                              Maximum 500 characters.
                          requesterName:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: Display name of the party requesting payment
                          requesterEmail:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: Email of the party requesting payment
                          payerName:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: Display name of the payer
                          payerEmail:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: Email of the payer if addressed by email
                          payerPhone:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: >-
                              Phone of the payer in E.164 format if addressed by
                              phone
                          payerPartyId:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: >-
                              Natural party ID (pty_*) resolved for the payer,
                              including agent owner parties
                          payerIdentifierType:
                            enum:
                              - email
                              - phone
                              - party_id
                              - agent_id
                              - handle
                            type: string
                            description: >-
                              Which identifier type was used to address the
                              payer
                          payerIdentifier:
                            type: string
                            description: The identifier value used to address the payer
                          paymentLinkUrl:
                            type: string
                            format: uri
                            description: URL the payer visits to complete payment
                          transactionId:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: >-
                              ID of the transaction created by the most recent
                              payment attempt, or null if no attempt yet
                          createdAt:
                            type: string
                            description: >-
                              ISO 8601 timestamp when the payment request was
                              created
                          updatedAt:
                            type: string
                            description: >-
                              ISO 8601 timestamp when the payment request was
                              last updated
                        required:
                          - amount
                          - currency
                          - status
                          - description
                          - requesterName
                          - requesterEmail
                          - payerName
                          - payerEmail
                          - payerPhone
                          - payerPartyId
                          - payerIdentifierType
                          - payerIdentifier
                          - paymentLinkUrl
                          - transactionId
                          - createdAt
                          - updatedAt
                        additionalProperties: false
                        title: PaymentRequestAttributes
                        description: Resource attributes
                      relationships:
                        type: object
                        properties:
                          requesterParty:
                            type: object
                            properties:
                              data:
                                type: object
                                properties:
                                  type:
                                    description: Resource type
                                    type: string
                                    enum:
                                      - party
                                  id:
                                    type: string
                                    pattern: ^pty_[0-9a-f]{32}$
                                required:
                                  - type
                                  - id
                                additionalProperties: false
                                title: ResourceIdentifier
                                description: Related resource identifier
                            required:
                              - data
                            additionalProperties: false
                            title: ToOneRelationship
                            description: Party requesting the payment
                          payerParty:
                            type: object
                            properties:
                              data:
                                anyOf:
                                  - type: object
                                    properties:
                                      type:
                                        description: Resource type
                                        type: string
                                        enum:
                                          - party
                                      id:
                                        type: string
                                        pattern: ^pty_[0-9a-f]{32}$
                                    required:
                                      - type
                                      - id
                                    additionalProperties: false
                                    title: ResourceIdentifier
                                    description: Related resource identifier
                                  - type: 'null'
                            required:
                              - data
                            additionalProperties: false
                            title: NullableToOneRelationship
                            description: >-
                              Resolved payer party, if the payer is known to
                              Natural
                        required:
                          - requesterParty
                          - payerParty
                        additionalProperties: false
                        title: PaymentRequestCreateRelationships
                        description: Resource relationships
                    required:
                      - type
                      - id
                      - attributes
                      - relationships
                    additionalProperties: false
                    title: PaymentRequestCreateResource
                required:
                  - data
                additionalProperties: false
                title: PaymentRequestCreateResponse
              examples:
                default:
                  summary: Default
                  value:
                    data:
                      type: paymentRequest
                      id: prq_550e8400e29b41d4a716446655440000
                      attributes:
                        amount: 2500
                        currency: USD
                        status: OPEN
                        description: Invoice 7
                        requesterName: null
                        requesterEmail: null
                        payerName: Ada Lovelace
                        payerEmail: ada@example.com
                        payerPhone: null
                        payerPartyId: null
                        payerIdentifierType: email
                        payerIdentifier: ada@example.com
                        paymentLinkUrl: https://natural.co/paymentLink/token_123
                        transactionId: null
                        createdAt: '2026-04-15T00:00:00.000Z'
                        updatedAt: '2026-04-15T00:00:00.000Z'
                      relationships:
                        requesterParty:
                          data:
                            type: party
                            id: pty_019cd1798d617f65a79cb965dda9eac3
                        payerParty:
                          data: null
          headers:
            X-RateLimit-Limit:
              description: Maximum requests allowed per window
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests remaining in current window
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Unix timestamp when rate limit resets
              schema:
                type: integer
        '400':
          description: Validation Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    minItems: 1
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Stable lower-snake-case public error code
                        detail:
                          type: string
                          description: Safe user-facing error detail
                        status:
                          type: string
                          description: HTTP status code as a string
                        source:
                          type: object
                          description: Location of the invalid request value
                          properties:
                            pointer:
                              type: string
                            parameter:
                              type: string
                            header:
                              type: string
                          additionalProperties: false
                        meta:
                          type: object
                          description: >-
                            Error metadata. Public responses include supportId
                            by default and may include allowlisted provider
                            recovery metadata.
                          properties:
                            supportId:
                              type: string
                              description: Request/support ID for troubleshooting
                            connectionStatus:
                              type: string
                              enum:
                                - login_required
                                - disconnected
                              description: >-
                                External account connection state when the error
                                is repairable by relinking
                            provider:
                              type: object
                              properties:
                                name:
                                  type: string
                                  enum:
                                    - plaid
                                  description: Provider that returned the underlying error
                                errorCode:
                                  type: string
                                  description: Provider error code, when available
                                errorType:
                                  type: string
                                  description: Provider error type, when available
                                requestId:
                                  type: string
                                  description: Provider request ID for troubleshooting
                              required:
                                - name
                              additionalProperties: false
                          required:
                            - supportId
                          additionalProperties: false
                      required:
                        - code
                        - detail
                        - status
                        - meta
                      additionalProperties: false
                required:
                  - errors
                additionalProperties: false
              examples:
                default:
                  summary: Default
                  value:
                    errors:
                      - code: invalid_value
                        detail: A request value is invalid.
                        status: '400'
                        meta:
                          supportId: req_a1b2c3d4e5f6
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    minItems: 1
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Stable lower-snake-case public error code
                        detail:
                          type: string
                          description: Safe user-facing error detail
                        status:
                          type: string
                          description: HTTP status code as a string
                        source:
                          type: object
                          description: Location of the invalid request value
                          properties:
                            pointer:
                              type: string
                            parameter:
                              type: string
                            header:
                              type: string
                          additionalProperties: false
                        meta:
                          type: object
                          description: >-
                            Error metadata. Public responses include supportId
                            by default and may include allowlisted provider
                            recovery metadata.
                          properties:
                            supportId:
                              type: string
                              description: Request/support ID for troubleshooting
                            connectionStatus:
                              type: string
                              enum:
                                - login_required
                                - disconnected
                              description: >-
                                External account connection state when the error
                                is repairable by relinking
                            provider:
                              type: object
                              properties:
                                name:
                                  type: string
                                  enum:
                                    - plaid
                                  description: Provider that returned the underlying error
                                errorCode:
                                  type: string
                                  description: Provider error code, when available
                                errorType:
                                  type: string
                                  description: Provider error type, when available
                                requestId:
                                  type: string
                                  description: Provider request ID for troubleshooting
                              required:
                                - name
                              additionalProperties: false
                          required:
                            - supportId
                          additionalProperties: false
                      required:
                        - code
                        - detail
                        - status
                        - meta
                      additionalProperties: false
                required:
                  - errors
                additionalProperties: false
              examples:
                default:
                  summary: Default
                  value:
                    errors:
                      - code: unauthenticated
                        detail: Authentication is required.
                        status: '401'
                        meta:
                          supportId: req_a1b2c3d4e5f6
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    minItems: 1
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Stable lower-snake-case public error code
                        detail:
                          type: string
                          description: Safe user-facing error detail
                        status:
                          type: string
                          description: HTTP status code as a string
                        source:
                          type: object
                          description: Location of the invalid request value
                          properties:
                            pointer:
                              type: string
                            parameter:
                              type: string
                            header:
                              type: string
                          additionalProperties: false
                        meta:
                          type: object
                          description: >-
                            Error metadata. Public responses include supportId
                            by default and may include allowlisted provider
                            recovery metadata.
                          properties:
                            supportId:
                              type: string
                              description: Request/support ID for troubleshooting
                            connectionStatus:
                              type: string
                              enum:
                                - login_required
                                - disconnected
                              description: >-
                                External account connection state when the error
                                is repairable by relinking
                            provider:
                              type: object
                              properties:
                                name:
                                  type: string
                                  enum:
                                    - plaid
                                  description: Provider that returned the underlying error
                                errorCode:
                                  type: string
                                  description: Provider error code, when available
                                errorType:
                                  type: string
                                  description: Provider error type, when available
                                requestId:
                                  type: string
                                  description: Provider request ID for troubleshooting
                              required:
                                - name
                              additionalProperties: false
                          required:
                            - supportId
                          additionalProperties: false
                      required:
                        - code
                        - detail
                        - status
                        - meta
                      additionalProperties: false
                required:
                  - errors
                additionalProperties: false
              examples:
                default:
                  summary: Default
                  value:
                    errors:
                      - code: forbidden
                        detail: You do not have permission to perform this action.
                        status: '403'
                        meta:
                          supportId: req_a1b2c3d4e5f6
        '404':
          description: >-
            Not Found — returned when the resource does not exist, or when it
            exists but is not accessible to your account. The two cases are
            intentionally indistinguishable, so that resource IDs cannot be
            enumerated by probing.
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    minItems: 1
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Stable lower-snake-case public error code
                        detail:
                          type: string
                          description: Safe user-facing error detail
                        status:
                          type: string
                          description: HTTP status code as a string
                        source:
                          type: object
                          description: Location of the invalid request value
                          properties:
                            pointer:
                              type: string
                            parameter:
                              type: string
                            header:
                              type: string
                          additionalProperties: false
                        meta:
                          type: object
                          description: >-
                            Error metadata. Public responses include supportId
                            by default and may include allowlisted provider
                            recovery metadata.
                          properties:
                            supportId:
                              type: string
                              description: Request/support ID for troubleshooting
                            connectionStatus:
                              type: string
                              enum:
                                - login_required
                                - disconnected
                              description: >-
                                External account connection state when the error
                                is repairable by relinking
                            provider:
                              type: object
                              properties:
                                name:
                                  type: string
                                  enum:
                                    - plaid
                                  description: Provider that returned the underlying error
                                errorCode:
                                  type: string
                                  description: Provider error code, when available
                                errorType:
                                  type: string
                                  description: Provider error type, when available
                                requestId:
                                  type: string
                                  description: Provider request ID for troubleshooting
                              required:
                                - name
                              additionalProperties: false
                          required:
                            - supportId
                          additionalProperties: false
                      required:
                        - code
                        - detail
                        - status
                        - meta
                      additionalProperties: false
                required:
                  - errors
                additionalProperties: false
              examples:
                default:
                  summary: Default
                  value:
                    errors:
                      - code: not_found
                        detail: The requested resource was not found.
                        status: '404'
                        meta:
                          supportId: req_a1b2c3d4e5f6
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    minItems: 1
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Stable lower-snake-case public error code
                        detail:
                          type: string
                          description: Safe user-facing error detail
                        status:
                          type: string
                          description: HTTP status code as a string
                        source:
                          type: object
                          description: Location of the invalid request value
                          properties:
                            pointer:
                              type: string
                            parameter:
                              type: string
                            header:
                              type: string
                          additionalProperties: false
                        meta:
                          type: object
                          description: >-
                            Error metadata. Public responses include supportId
                            by default and may include allowlisted provider
                            recovery metadata.
                          properties:
                            supportId:
                              type: string
                              description: Request/support ID for troubleshooting
                            connectionStatus:
                              type: string
                              enum:
                                - login_required
                                - disconnected
                              description: >-
                                External account connection state when the error
                                is repairable by relinking
                            provider:
                              type: object
                              properties:
                                name:
                                  type: string
                                  enum:
                                    - plaid
                                  description: Provider that returned the underlying error
                                errorCode:
                                  type: string
                                  description: Provider error code, when available
                                errorType:
                                  type: string
                                  description: Provider error type, when available
                                requestId:
                                  type: string
                                  description: Provider request ID for troubleshooting
                              required:
                                - name
                              additionalProperties: false
                          required:
                            - supportId
                          additionalProperties: false
                      required:
                        - code
                        - detail
                        - status
                        - meta
                      additionalProperties: false
                required:
                  - errors
                additionalProperties: false
              examples:
                default:
                  summary: Default
                  value:
                    errors:
                      - code: conflict
                        detail: The request conflicts with the current resource state.
                        status: '409'
                        meta:
                          supportId: req_a1b2c3d4e5f6
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    minItems: 1
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Stable lower-snake-case public error code
                        detail:
                          type: string
                          description: Safe user-facing error detail
                        status:
                          type: string
                          description: HTTP status code as a string
                        source:
                          type: object
                          description: Location of the invalid request value
                          properties:
                            pointer:
                              type: string
                            parameter:
                              type: string
                            header:
                              type: string
                          additionalProperties: false
                        meta:
                          type: object
                          description: >-
                            Error metadata. Public responses include supportId
                            by default and may include allowlisted provider
                            recovery metadata.
                          properties:
                            supportId:
                              type: string
                              description: Request/support ID for troubleshooting
                            connectionStatus:
                              type: string
                              enum:
                                - login_required
                                - disconnected
                              description: >-
                                External account connection state when the error
                                is repairable by relinking
                            provider:
                              type: object
                              properties:
                                name:
                                  type: string
                                  enum:
                                    - plaid
                                  description: Provider that returned the underlying error
                                errorCode:
                                  type: string
                                  description: Provider error code, when available
                                errorType:
                                  type: string
                                  description: Provider error type, when available
                                requestId:
                                  type: string
                                  description: Provider request ID for troubleshooting
                              required:
                                - name
                              additionalProperties: false
                          required:
                            - supportId
                          additionalProperties: false
                      required:
                        - code
                        - detail
                        - status
                        - meta
                      additionalProperties: false
                required:
                  - errors
                additionalProperties: false
              examples:
                default:
                  summary: Default
                  value:
                    errors:
                      - code: invalid_value
                        detail: 'email: Invalid email address'
                        status: '422'
                        source:
                          pointer: /data/attributes/email
                        meta:
                          supportId: req_a1b2c3d4e5f6
        '428':
          description: Precondition Required
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    minItems: 1
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Stable lower-snake-case public error code
                        detail:
                          type: string
                          description: Safe user-facing error detail
                        status:
                          type: string
                          description: HTTP status code as a string
                        source:
                          type: object
                          description: Location of the invalid request value
                          properties:
                            pointer:
                              type: string
                            parameter:
                              type: string
                            header:
                              type: string
                          additionalProperties: false
                        meta:
                          type: object
                          description: >-
                            Error metadata. Public responses include supportId
                            by default and may include allowlisted provider
                            recovery metadata.
                          properties:
                            supportId:
                              type: string
                              description: Request/support ID for troubleshooting
                            connectionStatus:
                              type: string
                              enum:
                                - login_required
                                - disconnected
                              description: >-
                                External account connection state when the error
                                is repairable by relinking
                            provider:
                              type: object
                              properties:
                                name:
                                  type: string
                                  enum:
                                    - plaid
                                  description: Provider that returned the underlying error
                                errorCode:
                                  type: string
                                  description: Provider error code, when available
                                errorType:
                                  type: string
                                  description: Provider error type, when available
                                requestId:
                                  type: string
                                  description: Provider request ID for troubleshooting
                              required:
                                - name
                              additionalProperties: false
                          required:
                            - supportId
                          additionalProperties: false
                      required:
                        - code
                        - detail
                        - status
                        - meta
                      additionalProperties: false
                required:
                  - errors
                additionalProperties: false
              examples:
                default:
                  summary: Default
                  value:
                    errors:
                      - code: mfa_required
                        detail: MFA verification required
                        status: '428'
                        meta:
                          supportId: req_a1b2c3d4e5f6
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    minItems: 1
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Stable lower-snake-case public error code
                        detail:
                          type: string
                          description: Safe user-facing error detail
                        status:
                          type: string
                          description: HTTP status code as a string
                        source:
                          type: object
                          description: Location of the invalid request value
                          properties:
                            pointer:
                              type: string
                            parameter:
                              type: string
                            header:
                              type: string
                          additionalProperties: false
                        meta:
                          type: object
                          description: >-
                            Error metadata. Public responses include supportId
                            by default and may include allowlisted provider
                            recovery metadata.
                          properties:
                            supportId:
                              type: string
                              description: Request/support ID for troubleshooting
                            connectionStatus:
                              type: string
                              enum:
                                - login_required
                                - disconnected
                              description: >-
                                External account connection state when the error
                                is repairable by relinking
                            provider:
                              type: object
                              properties:
                                name:
                                  type: string
                                  enum:
                                    - plaid
                                  description: Provider that returned the underlying error
                                errorCode:
                                  type: string
                                  description: Provider error code, when available
                                errorType:
                                  type: string
                                  description: Provider error type, when available
                                requestId:
                                  type: string
                                  description: Provider request ID for troubleshooting
                              required:
                                - name
                              additionalProperties: false
                          required:
                            - supportId
                          additionalProperties: false
                      required:
                        - code
                        - detail
                        - status
                        - meta
                      additionalProperties: false
                required:
                  - errors
                additionalProperties: false
              examples:
                default:
                  summary: Default
                  value:
                    errors:
                      - code: rate_limited
                        detail: Too many requests. Please try again later.
                        status: '429'
                        meta:
                          supportId: req_a1b2c3d4e5f6
          headers:
            Retry-After:
              description: Seconds to wait before retrying
              schema:
                type: integer
            X-RateLimit-Limit:
              description: Maximum requests allowed per window
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests remaining in current window
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Unix timestamp when rate limit resets
              schema:
                type: integer
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    minItems: 1
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Stable lower-snake-case public error code
                        detail:
                          type: string
                          description: Safe user-facing error detail
                        status:
                          type: string
                          description: HTTP status code as a string
                        source:
                          type: object
                          description: Location of the invalid request value
                          properties:
                            pointer:
                              type: string
                            parameter:
                              type: string
                            header:
                              type: string
                          additionalProperties: false
                        meta:
                          type: object
                          description: >-
                            Error metadata. Public responses include supportId
                            by default and may include allowlisted provider
                            recovery metadata.
                          properties:
                            supportId:
                              type: string
                              description: Request/support ID for troubleshooting
                            connectionStatus:
                              type: string
                              enum:
                                - login_required
                                - disconnected
                              description: >-
                                External account connection state when the error
                                is repairable by relinking
                            provider:
                              type: object
                              properties:
                                name:
                                  type: string
                                  enum:
                                    - plaid
                                  description: Provider that returned the underlying error
                                errorCode:
                                  type: string
                                  description: Provider error code, when available
                                errorType:
                                  type: string
                                  description: Provider error type, when available
                                requestId:
                                  type: string
                                  description: Provider request ID for troubleshooting
                              required:
                                - name
                              additionalProperties: false
                          required:
                            - supportId
                          additionalProperties: false
                      required:
                        - code
                        - detail
                        - status
                        - meta
                      additionalProperties: false
                required:
                  - errors
                additionalProperties: false
              examples:
                default:
                  summary: Default
                  value:
                    errors:
                      - code: server_error
                        detail: Something went wrong.
                        status: '500'
                        meta:
                          supportId: req_a1b2c3d4e5f6
        '501':
          description: Not Implemented
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    minItems: 1
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Stable lower-snake-case public error code
                        detail:
                          type: string
                          description: Safe user-facing error detail
                        status:
                          type: string
                          description: HTTP status code as a string
                        source:
                          type: object
                          description: Location of the invalid request value
                          properties:
                            pointer:
                              type: string
                            parameter:
                              type: string
                            header:
                              type: string
                          additionalProperties: false
                        meta:
                          type: object
                          description: >-
                            Error metadata. Public responses include supportId
                            by default and may include allowlisted provider
                            recovery metadata.
                          properties:
                            supportId:
                              type: string
                              description: Request/support ID for troubleshooting
                            connectionStatus:
                              type: string
                              enum:
                                - login_required
                                - disconnected
                              description: >-
                                External account connection state when the error
                                is repairable by relinking
                            provider:
                              type: object
                              properties:
                                name:
                                  type: string
                                  enum:
                                    - plaid
                                  description: Provider that returned the underlying error
                                errorCode:
                                  type: string
                                  description: Provider error code, when available
                                errorType:
                                  type: string
                                  description: Provider error type, when available
                                requestId:
                                  type: string
                                  description: Provider request ID for troubleshooting
                              required:
                                - name
                              additionalProperties: false
                          required:
                            - supportId
                          additionalProperties: false
                      required:
                        - code
                        - detail
                        - status
                        - meta
                      additionalProperties: false
                required:
                  - errors
                additionalProperties: false
              examples:
                default:
                  summary: Default
                  value:
                    errors:
                      - code: not_implemented
                        detail: This operation is not available.
                        status: '501'
                        meta:
                          supportId: req_a1b2c3d4e5f6
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    minItems: 1
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Stable lower-snake-case public error code
                        detail:
                          type: string
                          description: Safe user-facing error detail
                        status:
                          type: string
                          description: HTTP status code as a string
                        source:
                          type: object
                          description: Location of the invalid request value
                          properties:
                            pointer:
                              type: string
                            parameter:
                              type: string
                            header:
                              type: string
                          additionalProperties: false
                        meta:
                          type: object
                          description: >-
                            Error metadata. Public responses include supportId
                            by default and may include allowlisted provider
                            recovery metadata.
                          properties:
                            supportId:
                              type: string
                              description: Request/support ID for troubleshooting
                            connectionStatus:
                              type: string
                              enum:
                                - login_required
                                - disconnected
                              description: >-
                                External account connection state when the error
                                is repairable by relinking
                            provider:
                              type: object
                              properties:
                                name:
                                  type: string
                                  enum:
                                    - plaid
                                  description: Provider that returned the underlying error
                                errorCode:
                                  type: string
                                  description: Provider error code, when available
                                errorType:
                                  type: string
                                  description: Provider error type, when available
                                requestId:
                                  type: string
                                  description: Provider request ID for troubleshooting
                              required:
                                - name
                              additionalProperties: false
                          required:
                            - supportId
                          additionalProperties: false
                      required:
                        - code
                        - detail
                        - status
                        - meta
                      additionalProperties: false
                required:
                  - errors
                additionalProperties: false
              examples:
                default:
                  summary: Default
                  value:
                    errors:
                      - code: bad_gateway
                        detail: >-
                          We couldn't complete that request because one of
                          Natural's services returned an unexpected response.
                          Please try again.
                        status: '502'
                        meta:
                          supportId: req_a1b2c3d4e5f6
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    minItems: 1
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          description: Stable lower-snake-case public error code
                        detail:
                          type: string
                          description: Safe user-facing error detail
                        status:
                          type: string
                          description: HTTP status code as a string
                        source:
                          type: object
                          description: Location of the invalid request value
                          properties:
                            pointer:
                              type: string
                            parameter:
                              type: string
                            header:
                              type: string
                          additionalProperties: false
                        meta:
                          type: object
                          description: >-
                            Error metadata. Public responses include supportId
                            by default and may include allowlisted provider
                            recovery metadata.
                          properties:
                            supportId:
                              type: string
                              description: Request/support ID for troubleshooting
                            connectionStatus:
                              type: string
                              enum:
                                - login_required
                                - disconnected
                              description: >-
                                External account connection state when the error
                                is repairable by relinking
                            provider:
                              type: object
                              properties:
                                name:
                                  type: string
                                  enum:
                                    - plaid
                                  description: Provider that returned the underlying error
                                errorCode:
                                  type: string
                                  description: Provider error code, when available
                                errorType:
                                  type: string
                                  description: Provider error type, when available
                                requestId:
                                  type: string
                                  description: Provider request ID for troubleshooting
                              required:
                                - name
                              additionalProperties: false
                          required:
                            - supportId
                          additionalProperties: false
                      required:
                        - code
                        - detail
                        - status
                        - meta
                      additionalProperties: false
                required:
                  - errors
                additionalProperties: false
              examples:
                default:
                  summary: Default
                  value:
                    errors:
                      - code: service_unavailable
                        detail: The service is temporarily unavailable.
                        status: '503'
                        meta:
                          supportId: req_a1b2c3d4e5f6
      security:
        - HTTPBearer: []
components:
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

````