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

# List Google Ads invoices

> <Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Returns the billing invoices for the app's Google Ads account, newest first.

Each invoice covers a period and carries the ad spend, the service fee, the tax and the total, all in micros of the invoice currency. `billing_type` says why it was raised: on the weekly cycle, because spend crossed the account's threshold, or as a reconciliation of an earlier period.

<Warning>A refund appears here as a row with `is_refund: true`, and its `total_micros` is a positive magnitude like any other row. Use `signed_total_micros`, which is negative on a refund, whenever you total an account's billing. Summing `total_micros` counts a refund as a charge.</Warning>

An invoice Base44 is still reconciling locally is left out until it settles, so a period can be missing for a short while after it ends.

<Note>This endpoint accepts a personal API key. Workspace API keys are not authorized for it and are rejected with a 403.</Note>

<Warning>The response includes fields beyond the ones documented here. Don't rely on undocumented response fields, as they can change at any time.</Warning>



## OpenAPI

````yaml /developers/references/app-management/app-management-openapi.json get /api/apps/{app_id}/google-ads/billing/invoices
openapi: 3.1.0
info:
  title: Base44 App Management API
  version: 1.0.0
servers:
  - url: https://app.base44.com
security:
  - ApiKeyAuth: []
paths:
  /api/apps/{app_id}/google-ads/billing/invoices:
    get:
      summary: List Google Ads invoices
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Returns the billing invoices for the app's Google Ads account, newest
        first.


        Each invoice covers a period and carries the ad spend, the service fee,
        the tax and the total, all in micros of the invoice currency.
        `billing_type` says why it was raised: on the weekly cycle, because
        spend crossed the account's threshold, or as a reconciliation of an
        earlier period.


        <Warning>A refund appears here as a row with `is_refund: true`, and its
        `total_micros` is a positive magnitude like any other row. Use
        `signed_total_micros`, which is negative on a refund, whenever you total
        an account's billing. Summing `total_micros` counts a refund as a
        charge.</Warning>


        An invoice Base44 is still reconciling locally is left out until it
        settles, so a period can be missing for a short while after it ends.


        <Note>This endpoint accepts a personal API key. Workspace API keys are
        not authorized for it and are rejected with a 403.</Note>


        <Warning>The response includes fields beyond the ones documented here.
        Don't rely on undocumented response fields, as they can change at any
        time.</Warning>
      operationId: list_invoices_api_apps__app_id__google_ads_billing_invoices_get
      parameters:
        - name: app_id
          in: path
          required: true
          schema:
            type: string
            description: ID of the app whose Google Ads campaigns to manage.
            title: App Id
          description: ID of the app whose Google Ads campaigns to manage.
          example: 6820f3a4e7b91d003c45a1f2
      responses:
        '200':
          description: The account's invoices, newest first.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GoogleAdsInvoiceSummary'
                title: >-
                  Response 200 List Invoices Api Apps  App Id  Google Ads
                  Billing Invoices Get
        '401':
          description: Missing or invalid credentials.
        '403':
          description: >-
            You don't have access to this app, the app does not exist, or you
            used a workspace API key. A missing app and an app you cannot reach
            are deliberately the same answer.
        '404':
          description: The app has no connected Google Ads account.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    GoogleAdsInvoiceSummary:
      properties:
        id:
          type: string
          title: Id
          description: ID of the invoice.
          example: 68b1c0d4e7b91d003c45a1f6
        invoice_date:
          type: string
          title: Invoice Date
          description: Date the invoice was issued, as `YYYY-MM-DD`.
          example: '2026-08-25'
        period_start:
          type: string
          title: Period Start
          description: First day the invoice covers, as `YYYY-MM-DD`.
          example: '2026-08-18'
        period_end:
          type: string
          title: Period End
          description: Last day the invoice covers, as `YYYY-MM-DD`.
          example: '2026-08-24'
        status:
          type: string
          title: Status
          description: '`PENDING`, `PAID`, `FAILED`, or `VOID`.'
          example: PAID
        currency_code:
          type: string
          title: Currency Code
          description: Currency of every amount on the invoice, as an ISO 4217 code.
          example: EUR
        ad_spend_micros:
          type: integer
          title: Ad Spend Micros
          description: Ad spend for the period in micros, so `248000000` is 248.00.
          example: 248000000
        service_fee_micros:
          type: integer
          title: Service Fee Micros
          description: Base44's service fee for the period, in micros.
          example: 24800000
        tax_micros:
          type: integer
          title: Tax Micros
          description: Tax charged on the invoice, in micros.
          example: 51870000
        total_micros:
          type: integer
          title: Total Micros
          description: >-
            Size of the invoice in micros, always positive. On a refund this is
            the magnitude refunded rather than an amount charged, so read
            `signed_total_micros` or `is_refund` before treating it as money
            owed.
          example: 324670000
        is_refund:
          type: boolean
          title: Is Refund
          description: '`true` when the row is a refund rather than a charge.'
          example: false
        signed_total_micros:
          type: integer
          title: Signed Total Micros
          description: >-
            The invoice total with its direction applied: positive on a charge,
            negative on a refund. Sum this rather than `total_micros` when you
            total an account's billing.
          example: 324670000
        billing_type:
          type: string
          title: Billing Type
          description: >-
            Why the invoice was raised: `weekly` on the billing cycle,
            `threshold` when spend crossed the cap, `reconciliation` to true up
            an earlier period.
          example: weekly
      type: object
      required:
        - id
        - invoice_date
        - period_start
        - period_end
        - status
        - currency_code
        - ad_spend_micros
        - service_fee_micros
        - tax_micros
        - total_micros
        - is_refund
        - signed_total_micros
        - billing_type
      title: GoogleAdsInvoiceSummary
      description: |-
        One billing invoice for the app's Google Ads account.

        Omits the internal reconciliation fields (`raw_spend_budget_micros`,
        `metrics_reduction_*`, `fx_rate_used`) and the Stripe and Google invoice
        IDs, which are Base44's bookkeeping rather than a caller's contract.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: api_key
      description: Personal API key.

````