---
title: "Verify billing access for one cloud account. Body: {cloudAccountId, provider}"
method: POST
path: "/billing/verify"
tags: ["Billing"]
---

# Verify billing access for one cloud account. Body: {cloudAccountId, provider}

`POST /billing/verify`

## Request

- Base URL: `https://api.zop.dev`
- URL: `https://api.zop.dev/billing/verify`
- Auth: HTTP bearer

Verify billing access for one cloud account. Body: {cloudAccountId, provider}

## Response `200`

Successful response.

- GenericResponse: Response payload. Per-endpoint response schemas are not yet published — see the linked documentation for the concrete shape of each.

## Other responses

- `202`: Accepted. Triggers a billing sync across every connected cloud account and returns a job reference; poll `GET /billing/sync-status` until each entry reports a terminal state.
- `400`: The request was malformed or failed validation.
- `401`: Missing, expired or invalid bearer token.
- `403`: The caller is authenticated but lacks permission.
- `429`: Rate limit exceeded: more than 100 requests in the current one-minute window for this organization. No `Retry-After` or `X-RateLimit-*` headers are returned — back off exponentially (1s, 2s, 4s). The window is fixed and resets on the clock minute, so a 429 late in a minute clears quickly.
- `500`: Unexpected server error.

---

[API](https://skmtc.dev/zop/apis/zopnight-platform-api.md) · [All operations](https://skmtc.dev/zop/apis/zopnight-platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zop/apis/zopnight-platform-api/revisions/ee28c3af60aa?raw)
