> ## 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.

> ## Agent Instructions
> Internal links on these pages omit the .md extension. Append .md to a docs page URL, or send an Accept: text/markdown header, to get that page as markdown.

# Get Google Ads account debt

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

Returns what one of the app's Google Ads accounts owes for ad spend, and whether it can be settled.

This is the per-account view of [Get Google Ads workspace debt](/api-reference/get-google-ads-workspace-debt), with the same fields apart from `app_id`. Use that endpoint when you only know the workspace is on a hold. It finds the held account from any app, while this one only reads an account that belongs to the app in the path. Read `state` first. An account that is not held reports `not_recoverable`.

Nothing here charges anything. Settling a balance is a card transaction Base44 keeps out of this API, so treat a `payable` state as something to raise with whoever owns the card. Each call checks the card on file with the payment provider, and the first call for a workspace with no billing record there creates one.

This is limited to 30 requests a minute per app. Some workspaces have a different limit.

<Note>This endpoint accepts a personal API key from anyone who can view the app. A read-only key is refused with a 403, because the card check can create the workspace's billing record. Workspace API keys are not authorized for it either 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/accounts/{account_id}/billing/debt
openapi: 3.1.0
info:
  title: Base44 App Management API
  version: 1.0.0
servers:
  - url: https://app.base44.com
security:
  - PersonalAccessTokenAuth: []
paths:
  /api/apps/{app_id}/google-ads/accounts/{account_id}/billing/debt:
    get:
      summary: Get Google Ads account debt
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Returns what one of the app's Google Ads accounts owes for ad spend, and
        whether it can be settled.


        This is the per-account view of [Get Google Ads workspace
        debt](/api-reference/get-google-ads-workspace-debt), with the same
        fields apart from `app_id`. Use that endpoint when you only know the
        workspace is on a hold. It finds the held account from any app, while
        this one only reads an account that belongs to the app in the path. Read
        `state` first. An account that is not held reports `not_recoverable`.


        Nothing here charges anything. Settling a balance is a card transaction
        Base44 keeps out of this API, so treat a `payable` state as something to
        raise with whoever owns the card. Each call checks the card on file with
        the payment provider, and the first call for a workspace with no billing
        record there creates one.


        This is limited to 30 requests a minute per app. Some workspaces have a
        different limit.


        <Note>This endpoint accepts a personal API key from anyone who can view
        the app. A read-only key is refused with a 403, because the card check
        can create the workspace's billing record. Workspace API keys are not
        authorized for it either 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: >-
        get_debt_recovery_summary_api_apps__app_id__google_ads_accounts__account_id__billing_debt_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
        - name: account_id
          in: path
          required: true
          schema:
            type: string
            description: >-
              ID of the Google Ads account, as returned in `id` by [Get Google
              Ads account](/api-reference/get-google-ads-account). An account
              that belongs to a different app returns a 403.
            title: Account Id
          description: >-
            ID of the Google Ads account, as returned in `id` by [Get Google Ads
            account](/api-reference/get-google-ads-account). An account that
            belongs to a different app returns a 403.
          example: 68b1c0d4e7b91d003c45a1f8
      responses:
        '200':
          description: What the account owes, and whether it can be settled.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleAdsAccountDebtSummary'
        '401':
          description: Missing or invalid credentials.
        '403':
          description: >-
            You can't view this app, the app does not exist, the account belongs
            to a different app, or you used a read-only or workspace API key.
        '404':
          description: There is no Google Ads account with this ID in the workspace.
        '429':
          description: >-
            The app has used up its 30 debt reads for the current minute. Retry
            later.
components:
  schemas:
    GoogleAdsAccountDebtSummary:
      properties:
        state:
          type: string
          title: State
          description: >-
            What can be done about the balance. `payable` means there is an
            invoice and a usable card. `requires_payment_method` and
            `requires_payment_refresh` both mean a card is needed.
            `pending_payment` means a charge is already in flight.
            `paid_recovery_incomplete` means the invoice is paid but the account
            is still held. `unavailable` means the balance cannot be settled
            right now, including when `stripe_unavailable` is `true`. `no_debt`
            means the account is held with nothing to settle, and
            `not_recoverable` means the account is not in a state that settling
            can fix, which includes an account that is not held at all.
          example: payable
        account_id:
          type: string
          title: Account Id
          description: ID of the Google Ads account, the one in the path.
          example: 68b1c0d4e7b91d003c45a1f8
        account_status:
          type: string
          title: Account Status
          description: Status of the Google Ads account.
          example: BLOCKED
        block_reason:
          anyOf:
            - type: string
            - type: 'null'
          title: Block Reason
          description: >-
            Why the account is held, or `null` when it is not held or the reason
            is unrecorded.
          example: PAYMENT_FAILED
        charge_trigger_mode:
          type: string
          title: Charge Trigger Mode
          description: >-
            How the account is billed. `cadence` is the recurring charge and
            `threshold` is spend-triggered.
          example: cadence
        recoverable:
          type: boolean
          title: Recoverable
          description: >-
            Whether the account is in a state Base44 can settle at all (`true`)
            or not (`false`).
          example: true
        can_pay_now:
          type: boolean
          title: Can Pay Now
          description: >-
            Whether there is a chargeable invoice and a usable card, so settling
            would go through now (`true`) or not (`false`).
          example: true
        requires_payment_method:
          type: boolean
          title: Requires Payment Method
          description: >-
            Whether a card has to be added or replaced before the balance can be
            settled (`true`) or not (`false`).
          example: false
        stripe_unavailable:
          type: boolean
          title: Stripe Unavailable
          description: >-
            Whether Base44 could not reach the payment provider (`true`) or
            reached it fine (`false`). When it is `true` the card check failed
            closed, so `payment_method` reads `null` and `can_pay_now` reads
            `false` because the check failed, not because the card is missing.
            Retry rather than telling someone to add a card.
          example: false
        payment_method:
          anyOf:
            - $ref: '#/components/schemas/WorkspaceDebtPaymentMethod'
            - type: 'null'
          description: >-
            The card on file, or `null` when the workspace has none and when the
            payment provider could not be reached.
        invoice:
          anyOf:
            - $ref: '#/components/schemas/WorkspaceDebtInvoice'
            - type: 'null'
          description: >-
            The unpaid invoice behind the hold, or `null` when there is none to
            settle and when the latest one is already paid.
      type: object
      required:
        - state
        - account_id
        - account_status
        - charge_trigger_mode
        - recoverable
        - can_pay_now
        - requires_payment_method
        - stripe_unavailable
      title: GoogleAdsAccountDebtSummary
      description: >-
        Whether one Google Ads account owes anything, and whether it can be
        settled.
    WorkspaceDebtPaymentMethod:
      properties:
        brand:
          type: string
          title: Brand
          description: >-
            Card brand, as the payment provider reports it. Empty when the
            provider did not return one.
          example: visa
        last4:
          type: string
          title: Last4
          description: >-
            Last four digits of the card. Empty when the provider did not return
            them.
          example: '4242'
      type: object
      required:
        - brand
        - last4
      title: WorkspaceDebtPaymentMethod
      description: The card the workspace has on file.
    WorkspaceDebtInvoice:
      properties:
        id:
          type: string
          title: Id
          description: Base44's ID for the invoice.
          example: 68b1c0d4e7b91d003c45a1fa
        status:
          type: string
          title: Status
          description: >-
            Where the invoice stands. `FAILED` is an invoice whose charge did
            not go through, and `PENDING` is one Base44 is still collecting.
          example: FAILED
        billing_type:
          type: string
          title: Billing Type
          description: >-
            Which billing run produced the invoice. `weekly` is the recurring
            charge, `reconciliation` trues up a period, `threshold` is
            spend-triggered, `google_monthly` mirrors an invoice Google issued,
            and `adjustment` is a manual correction.
          example: weekly
        period_start:
          type: string
          title: Period Start
          description: First day of the spend the invoice covers, as `YYYY-MM-DD`.
          example: '2026-08-18'
        period_end:
          type: string
          title: Period End
          description: Last day of the spend the invoice covers, as `YYYY-MM-DD`.
          example: '2026-08-24'
        amount_micros:
          type: integer
          title: Amount Micros
          description: Amount owed in micros of `currency_code`, so `43500000` is 43.50.
          example: 43500000
        currency_code:
          type: string
          title: Currency Code
          description: Currency of `amount_micros` as a three-letter ISO 4217 code.
          example: USD
        failed_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Failed At
          description: >-
            When the charge last failed, or `null` on an invoice that has not
            been attempted or is still pending.
          example: '2026-08-25T04:12:00Z'
      type: object
      required:
        - id
        - status
        - billing_type
        - period_start
        - period_end
        - amount_micros
        - currency_code
      title: WorkspaceDebtInvoice
      description: The unpaid Google Ads invoice behind a workspace's billing hold.
  securitySchemes:
    PersonalAccessTokenAuth:
      type: http
      scheme: bearer
      description: 'Personal access token, sent as `Authorization: Bearer <token>`.'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.