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

# Subscription Charge History

> It retrieves the billing history for a subscription.



## OpenAPI

````yaml /openapi.json get /subscription/api/v1/subscriptions/{id}/charges?page={page}&size={size}
openapi: 3.0.1
info:
  title: Payaza Documentation
  version: 2.0.0
  description: >-
    API reference for processing payments using Card, Bank Transfer, USSD, and
    QR Code methods.
servers:
  - url: https://api.payaza.africa/live
security:
  - ApiKeyAuth: []
  - TenantID: []
  - ProductID: []
tags:
  - name: Transfers
    description: >-
      Transfers are transactions made from your Payaza account to beneficiaries.
      Merchants can instantly transfer funds from their available balance. For
      every transfer, you need to specify the amount and the beneficiary’s
      details. You become eligible to make transfers after you have been
      verified. (you sign up, finish account activation and KYC verification).
  - name: Payaza Account
    description: >-
      This is our internal account that can be used to make payouts to other
      bank accounts, in single or in bulk. The Payaza account can also be used
      to receive settlements. It can also be used to track the transfer status
      of your transactions and check your balance instantly
  - name: Sub Accounts
    description: >-
      This enables you to establish Sub Payaza accounts for your customers. Each
      sub-account comes with an assigned static virtual account, facilitating
      direct funding for individual accounts. Furthermore, the Main Payaza
      account can directly initiate funding for each sub-account. These
      sub-accounts serve the purpose of managing unique account positions or
      balances and facilitating disbursements from these positions to specified
      beneficiaries.
  - name: EUR Accounts
    description: >-
      This endpoints enable you to create EUR subaccounts which can be used to
      make transfers as required .
  - name: Apple Pay and Google Pay
    description: >-
      Apple Pay and Google Pay give your customers a fast, familiar, and secure
      way to complete payments. Our APIs provide a gateway to provide these
      services to your users for a smooth payment experience.
  - name: Virtual Accounts
    description: >-
      Virtual Accounts are bank accounts that are created for a specific purpose
      and last for specified durations. Virtual accounts are issued by Payaza’s
      partner banks. Our virtual account APIs can be used to create virtual
      accounts and perform other tasks relevant to virtual accounts. Virtual
      accounts are created to foster easy payment collections for your business
      and platform. 

      Static/Reserved Account: This virtual account is created by the merchant
      and remains valid indefinitely. It can be used multiple times and does not
      expire. 

      Dynamic Account: This virtual account is generated for a specific
      transaction or purpose. Please note that dynamic virtual account remains
      valid for a temporary period of time or until a payment of the specified
      amount is received. Upon expiry, a merchant can generate another one for a
      different purpose.
  - name: Card Collection
    description: >-
      The Card Collection APIs can be used to make card transactions, refund
      transactions that have been performed, check the status of a transaction
      and so much more.
  - name: Card Tokenisation
    description: >-
      The Card Tokenisation APIs are used to create card tokens, charge cards
      using tokens, retrieve all tokens created by a merchant account and
      deleting any card token as desired.
  - name: Refunds And Chargebacks
    description: >-
      The Refunds and Chargeback APIs are used to initiate refunds, view your
      refund and chargeback history and so much more.
  - name: Branches
    description: >-
      The Refunds and Chargeback APIs are used to initiate refunds, view your
      refund and chargeback history and so much more.
  - name: Auth-Capture-Void
    description: >-
      The Auth-Capture-Void APIs provide a two-phase payment process where
      transactions are first authorized, then captured or voided. This allows
      merchants to hold funds and complete the transaction in the future.
  - name: Momo and ZAR Collections
    description: APIs for MoMo, ZAR and XOF collections.
  - name: Check Transaction Status(Merchant Reference)
    description: >-
      This endpoint is used to check the transaction status of a transaction
      using the Merchant Reference..
paths:
  /subscription/api/v1/subscriptions/{id}/charges?page={page}&size={size}:
    get:
      tags:
        - Subscription Reads
      summary: Subscription Charge History
      description: It retrieves the billing history for a subscription.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
          description: The unique identifeir of the subscription.
        - name: page
          in: query
          required: true
          schema:
            type: integer
          description: The page number to be retrieved.
        - name: size
          in: query
          required: true
          schema:
            type: integer
          description: The number of records per page.
      responses:
        '200':
          description: Request Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/subscriptionChargeHistoryResponse'
              examples:
                Subscription Charge History:
                  summary: Subscription Charge History
                  value:
                    success: true
                    message: Success
                    data:
                      content:
                        - id: 3
                          subscriptionId: 21
                          cycleNumber: 1
                          attemptNumber: 1
                          transactionReference: SUB_ENROLL_21_1783539495235
                          amount: 1000
                          currency: NGN
                          description: Subscription cycle 1 (enrollment charge)
                          status: SUCCESS
                          respCode: null
                          failureReason: null
                          isRetriable: null
                          isExternal: false
                          chargedAt: '2026-07-08T19:38:18.30726'
                          nextRetryAt: null
                          cardServiceResponse: null
                          createdAt: '2026-07-08T19:38:18.307196'
                          updatedAt: '2026-07-08T19:38:18.307197'
                        - id: 9
                          subscriptionId: 21
                          cycleNumber: 2
                          attemptNumber: 1
                          transactionReference: SUB_CYCLE_2_A11783542029433
                          amount: 20
                          currency: NGN
                          description: Custom Charge Test Rest
                          status: SUCCESS
                          respCode: null
                          failureReason: null
                          isRetriable: null
                          isExternal: false
                          chargedAt: '2026-07-08T20:20:29.433374'
                          nextRetryAt: null
                          cardServiceResponse: null
                          createdAt: '2026-07-08T20:20:29.433369'
                          updatedAt: '2026-07-08T20:20:32.871194'
                        - id: 10
                          subscriptionId: 21
                          cycleNumber: 3
                          attemptNumber: 1
                          transactionReference: SUB_CYCLE_3_A11783543072399
                          amount: 1000
                          currency: NGN
                          description: Subscription cycle 3
                          status: SUCCESS
                          respCode: null
                          failureReason: null
                          isRetriable: null
                          isExternal: false
                          chargedAt: '2026-07-08T20:37:52.404149'
                          nextRetryAt: null
                          cardServiceResponse: null
                          createdAt: '2026-07-08T20:37:52.404128'
                          updatedAt: '2026-07-08T20:37:55.437197'
                        - id: 12
                          subscriptionId: 21
                          cycleNumber: 4
                          attemptNumber: 1
                          transactionReference: SUB_CYCLE_4_A11783543972681
                          amount: 1000
                          currency: NGN
                          description: Subscription cycle 4
                          status: SUCCESS
                          respCode: null
                          failureReason: null
                          isRetriable: null
                          isExternal: false
                          chargedAt: '2026-07-08T20:52:52.685766'
                          nextRetryAt: null
                          cardServiceResponse: null
                          createdAt: '2026-07-08T20:52:52.685744'
                          updatedAt: '2026-07-08T20:52:55.789479'
                        - id: 13
                          subscriptionId: 21
                          cycleNumber: 5
                          attemptNumber: 1
                          transactionReference: SUB_CYCLE_5_A11783544272773
                          amount: 1000
                          currency: NGN
                          description: Subscription cycle 5
                          status: SUCCESS
                          respCode: null
                          failureReason: null
                          isRetriable: null
                          isExternal: false
                          chargedAt: '2026-07-08T20:57:52.77686'
                          nextRetryAt: null
                          cardServiceResponse: null
                          createdAt: '2026-07-08T20:57:52.776841'
                          updatedAt: '2026-07-08T20:57:55.828179'
                      pageable:
                        sort:
                          sorted: false
                          unsorted: true
                          empty: true
                        pageNumber: 0
                        pageSize: 20
                        offset: 0
                        paged: true
                        unpaged: false
                      totalElements: 5
                      totalPages: 1
                      last: true
                      numberOfElements: 5
                      first: true
                      size: 20
                      number: 0
                      sort:
                        sorted: false
                        unsorted: true
                        empty: true
                      empty: false
        '400':
          description: Invalid request
      security:
        - ApiKeyAuth:
            - Payaza {{Public API Key In Base64}}
components:
  schemas:
    subscriptionChargeHistoryResponse:
      title: Subscription Charge History Response
      type: object
      properties:
        success:
          type: boolean
          description: Indicates if the request was successful.
          example: true
        message:
          type: string
          description: Descriptive message regarding the operation.
          example: Success
        data:
          type: object
          description: >-
            The payload containing the paginated history of transaction charge
            attempts.
          properties:
            content:
              type: array
              description: >-
                The array of individual transaction charge attempt event
                records.
              items:
                type: object
                properties:
                  id:
                    type: integer
                    description: >-
                      Unique internal identifier for the transaction attempt
                      record.
                    example: 3
                  subscriptionId:
                    type: integer
                    description: >-
                      The identifier of the subscription associated with this
                      transaction execution.
                    example: 21
                  cycleNumber:
                    type: integer
                    description: >-
                      The specific subscription billing cycle index sequence
                      number.
                    example: 1
                  attemptNumber:
                    type: integer
                    description: The retry attempt number for this specific billing cycle.
                    example: 1
                  transactionReference:
                    type: string
                    description: >-
                      Unique payment gateway transaction baseline lookup
                      reference token string identifier.
                    example: SUB_ENROLL_21_1783539495235
                  amount:
                    type: number
                    description: The total monetary value processing attempt cost amount.
                    example: 1000
                  currency:
                    type: string
                    description: >-
                      The 3-letter ISO code denoting currency context mapping
                      layout configuration.
                    example: NGN
                  description:
                    type: string
                    description: >-
                      Context descriptive statement notes explaining the attempt
                      reason profile.
                    example: Subscription cycle 1 (enrollment charge)
                  status:
                    type: string
                    description: >-
                      The payment processor transaction outcome signature state
                      (e.g., SUCCESS, FAILED).
                    example: SUCCESS
                  respCode:
                    type: string
                    nullable: true
                    description: >-
                      Raw alpha-numeric response status code returned directly
                      from the clearing switch network engine.
                    example: null
                  failureReason:
                    type: string
                    nullable: true
                    description: >-
                      Detailed clear text error statements detailing failure
                      cause contexts.
                    example: null
                  isRetriable:
                    type: boolean
                    nullable: true
                    description: >-
                      Indicates if the core scheduler engine thinks this
                      terminal failure type qualifies for automatic retries.
                    example: null
                  isExternal:
                    type: boolean
                    description: >-
                      Flags if the charging instance originated from standalone
                      api requests vs internal processing queues.
                    example: false
                  chargedAt:
                    type: string
                    format: date-time
                    description: >-
                      The timestamp logging when settlement clearing
                      confirmation finalized successfully.
                    example: '2026-07-08T19:38:18.30726'
                  nextRetryAt:
                    type: string
                    format: date-time
                    nullable: true
                    description: >-
                      Projected automated processing timeline execution stamp
                      marking upcoming recovery sweeps. Null if resolved.
                    example: null
                  cardServiceResponse:
                    type: string
                    nullable: true
                    description: >-
                      Extended payload responses structure snapshots from credit
                      network services.
                    example: null
                  createdAt:
                    type: string
                    format: date-time
                    description: Record creation logging timestamp metadata snapshot.
                    example: '2026-07-08T19:38:18.307196'
                  updatedAt:
                    type: string
                    format: date-time
                    description: >-
                      Record modification transaction timestamp tracking
                      metadata snapshot.
                    example: '2026-07-08T19:38:18.307197'
            pageable:
              type: object
              description: >-
                Pagination configuration block metrics specifications tracking
                metadata.
              properties:
                sort:
                  type: object
                  properties:
                    sorted:
                      type: boolean
                      example: false
                    unsorted:
                      type: boolean
                      example: true
                    empty:
                      type: boolean
                      example: true
                pageNumber:
                  type: integer
                  example: 0
                pageSize:
                  type: integer
                  example: 20
                offset:
                  type: integer
                  example: 0
                paged:
                  type: boolean
                  example: true
                unpaged:
                  type: boolean
                  example: false
            totalElements:
              type: integer
              description: >-
                The absolute matching element record count available across the
                entire query space index.
              example: 5
            totalPages:
              type: integer
              description: >-
                Total index page limits allocation mapping standard
                configurations constraints.
              example: 1
            last:
              type: boolean
              description: >-
                Verifies if the pointer frames index bounds reach termination
                conditions.
              example: true
            numberOfElements:
              type: integer
              description: >-
                The total elements present inside the immediate response page
                context snippet.
              example: 5
            first:
              type: boolean
              description: >-
                Verifies if the pointer frame execution sits at index position
                level zero.
              example: true
            size:
              type: integer
              example: 20
            number:
              type: integer
              example: 0
            sort:
              type: object
              properties:
                sorted:
                  type: boolean
                  example: false
                unsorted:
                  type: boolean
                  example: true
                empty:
                  type: boolean
                  example: true
            empty:
              type: boolean
              example: false
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: Payaza {{Public API Key in Base 64}}
    TenantID:
      type: apiKey
      in: header
      name: X-TenantID
      description: live or test
    ProductID:
      type: apiKey
      in: header
      name: X-ProductID
      description: 'default value is ‟app” '

````