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

# Get Payment Request

> Returns a single payment request by ID. The payment request must belong to your tenant.

## Authentication
Requires `Authorization: Bearer <api_key>`. The API key must belong to a tenant on a **PRO plan or above**.

<Info>
  This endpoint requires a **PRO plan or above**. If your plan does not include the External Billing API, the request returns `403` with error code `external_billing_api`.
</Info>


## OpenAPI

````yaml GET /api/v2/external-billing/payment-requests/{payment_request_id}/
openapi: 3.1.0
info:
  title: VoiceAIWrapper API
  description: >-
    REST API for managing campaigns, leads, clients, web widgets, and voice
    providers on VoiceAIWrapper.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.voiceaiwrapper.app
security:
  - bearerAuth: []
paths:
  /api/v2/external-billing/payment-requests/{payment_request_id}/:
    get:
      tags:
        - External Billing - Payment Requests
      summary: Get Payment Request
      description: >-
        Returns a single payment request by ID. The payment request must belong
        to your tenant.


        ## Authentication

        Requires `Authorization: Bearer <api_key>`. The API key must belong to a
        tenant on a **PRO plan or above**.
      operationId: getPaymentRequest
      parameters:
        - name: payment_request_id
          in: path
          required: true
          description: Integer ID of the payment request.
          schema:
            type: string
            example: '10'
      responses:
        '200':
          description: Payment request returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentRequest'
              example:
                id: '10'
                client_id: '42'
                client_name: Acme Corp
                subscription_id: '1'
                status: PENDING
                type: SUBSCRIPTION
                amount: '99.00'
                currency: USD
                due_date: '2025-01-15T00:00:00'
                grace_period_ends_at: '2025-01-22T00:00:00'
                paid_at: null
                external_payment_id: null
                notes: null
                line_items: []
                period_start: '2025-01-01T00:00:00'
                period_end: '2025-02-01T00:00:00'
                created_at: '2025-01-01T00:00:00'
                updated_at: '2025-01-01T00:00:00'
        '401':
          description: >-
            Authentication failed - `Authorization` header missing, malformed,
            or API key not found / disabled.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              example:
                message: Authorization header not found
        '403':
          description: >-
            Access denied - your current plan does not include the External
            Billing API. Upgrade to PRO or above.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              example:
                message: >-
                  External Billing API access requires a PRO plan. Error Code:
                  external_billing_api
        '404':
          description: Payment request not found or does not belong to your tenant.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              example:
                message: Payment request not found
        '500':
          description: Internal server error. Contact support if this persists.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              example:
                message: Internal server error
components:
  schemas:
    PaymentRequest:
      type: object
      properties:
        id:
          type: string
          description: Payment request ID.
          example: '10'
        client_id:
          type: string
          description: ID of the client this payment request belongs to.
          example: '42'
        client_name:
          type: string
          description: Display name of the client.
          example: Acme Corp
        subscription_id:
          type: string
          nullable: true
          description: >-
            ID of the associated subscription (null for non-subscription
            requests).
          example: '1'
        status:
          type: string
          enum:
            - PENDING
            - PAID
            - FAILED
            - CANCELED
            - OVERDUE
          description: Current payment request status.
          example: PENDING
        type:
          type: string
          enum:
            - SUBSCRIPTION
            - ADDON
            - OVERAGE
            - ONE_TIME
          description: Type of the payment request.
          example: SUBSCRIPTION
        amount:
          type: string
          description: Total amount as a decimal string.
          example: '99.00'
        currency:
          type: string
          description: 3-letter currency code.
          example: USD
        period_start:
          type: string
          format: date-time
          nullable: true
          description: Start of the billing period this request covers.
          example: '2025-01-01T00:00:00'
        period_end:
          type: string
          format: date-time
          nullable: true
          description: End of the billing period this request covers.
          example: '2025-02-01T00:00:00'
        due_date:
          type: string
          format: date-time
          nullable: true
          description: Date by which payment is due.
          example: '2025-01-15T00:00:00'
        grace_period_ends_at:
          type: string
          format: date-time
          nullable: true
          description: End of grace period (cycle requests only). Null for pack requests.
          example: '2025-01-22T00:00:00'
        paid_at:
          type: string
          format: date-time
          nullable: true
          description: Timestamp when the request was marked paid. Null if not yet paid.
          example: null
        external_payment_id:
          type: string
          nullable: true
          description: >-
            Optional external transaction reference (e.g. a payment processor
            transaction ID).
          example: null
        notes:
          type: string
          nullable: true
          description: Free-text notes on the request.
          example: null
        line_items:
          type: array
          items:
            type: object
          description: Breakdown of individual line items making up the total amount.
        created_at:
          type: string
          format: date-time
          description: When the request was created (ISO 8601).
          example: '2025-01-01T00:00:00'
        updated_at:
          type: string
          format: date-time
          description: When the request was last updated (ISO 8601).
          example: '2025-01-01T00:00:00'
    ErrorMessage:
      type: object
      properties:
        message:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````