---
title: "List Google Ads invoices"
method: GET
path: "/api/apps/{app_id}/google-ads/billing/invoices"
---

# List Google Ads invoices

`GET /api/apps/{app_id}/google-ads/billing/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>

## Path parameters

- `app_id` string, required — ID of the app whose Google Ads campaigns to manage.

## Response `200`

Successful Response

- GoogleAdsInvoiceSummary[]
  - `id` string, required — ID of the invoice.
  - `invoice_date` string, required — Date the invoice was issued, as `YYYY-MM-DD`.
  - `period_start` string, required — First day the invoice covers, as `YYYY-MM-DD`.
  - `period_end` string, required — Last day the invoice covers, as `YYYY-MM-DD`.
  - `status` string, required — State of the invoice. Either `PENDING`, `PAID`, `FAILED`, or `VOID`.
  - `currency_code` string, required — Currency of every amount on the invoice, as an ISO 4217 code.
  - `ad_spend_micros` integer, required — Ad spend for the period in micros, so `248000000` is 248.00.
  - `service_fee_micros` integer, required — Base44's service fee for the period, in micros.
  - `tax_micros` integer, required — Tax charged on the invoice, in micros.
  - `total_micros` integer, required — 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.
  - `is_refund` boolean, required — Whether the row is a refund rather than a charge.
  - `signed_total_micros` integer, required — 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.
  - `billing_type` string, required — Why the invoice was raised: `weekly` on the billing cycle, `threshold` when spend crossed the cap, `reconciliation` to true up an earlier period.

## Other responses

- `401` — Missing or invalid credentials.
- `403` — 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` — The app has no connected Google Ads account.

---

[API](https://skmtc.dev/base44/apis/base44-app-management-api.md) · [All operations](https://skmtc.dev/base44/apis/base44-app-management-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/base44/base44-app-management-api/revisions/173e4e9c63c2/schema)
