Get native billing or setup readiness
const url = 'https://api.infiniteaudience.ai/v1/account/billing';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.infiniteaudience.ai/v1/account/billing \ --header 'Authorization: Bearer <token>'Returns the native contract, attributed financial projection and collection readiness, independently of connected Shopify stores. Without a native route, returns native_setup_required without creating an account or contract. Shopify usage stays in the separate store reporting surface. Recovery projections remain readable while frozen. A parent-billed native child never receives the agency’s pooled balance. Requires ‘account-read’ scope. First-party ‘account’ scope also suffices.
Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”Provider-neutral billing projection
object
object
object
object
Contract discount applied to usage rates only; commitment charges and minimums are unchanged.
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
Native billing has not been configured. Viewing this response creates no account or contract. Shopify stores retain independent billing.
object
object
Example
{ "billing": { "owner_type": "org", "billing_authority": "self", "billing_model": "prepay", "collection_method": "charge_automatically", "currency": "usd", "status": "pending", "contract": { "tier": "paygo", "cadence": "monthly", "commitment_term_months": 0, "scheduled_change": { "kind": "replacement", "status": "provisioning", "terms": { "tier": "paygo", "cadence": "monthly", "commitment_term_months": 0 } } }, "auto_recharge": { "payment_status": "none", "pending_change": { "status": "provisioning" } }, "collection": { "status": "current" } }, "billing_mode": "org_billed", "billing_readiness": { "status": "ok" }, "latest_payment": { "kind": "topup", "status": "pending", "principal_credit_status": "awaiting_payment", "bonus_credit_status": "awaiting_payment" }}Missing or invalid Bearer token. Obtain one via POST /v1/auth/token. When a token was supplied but rejected, code distinguishes TOKEN_EXPIRED (the token’s lifetime has passed — request a new one via POST /v1/auth/token and retry) from TOKEN_INVALID (malformed or revoked — re-authenticate).
object
Stable machine-readable error code (e.g. INVALID_STATUS_TRANSITION, BILLING_INSUFFICIENT_BALANCE). Always present.
Human-readable explanation of the error.
Alternate machine-readable code — present on some endpoints as an alias for error for backward compatibility.
Opaque support/debug identifier when available.
Public action for correcting the request or retrying later.
object
JSON path to the invalid filter field or value.
Examples
{ "error": "Unauthorized: Missing or invalid Authorization header"}{ "error": "Unauthorized", "code": "TOKEN_EXPIRED", "message": "Your session has expired. Please sign in again."}Token is valid but lacks the required scope for this endpoint. Check the endpoint description for the required scope (discovery, purchase, or account).
object
Stable machine-readable error code (e.g. INVALID_STATUS_TRANSITION, BILLING_INSUFFICIENT_BALANCE). Always present.
Human-readable explanation of the error.
Alternate machine-readable code — present on some endpoints as an alias for error for backward compatibility.
Opaque support/debug identifier when available.
Public action for correcting the request or retrying later.
object
JSON path to the invalid filter field or value.
Examples
{ "error": "SCOPE_REQUIRED", "message": "This endpoint requires the creator scope."}Resource not found or not accessible to the calling org.
object
Stable machine-readable error code (e.g. INVALID_STATUS_TRANSITION, BILLING_INSUFFICIENT_BALANCE). Always present.
Human-readable explanation of the error.
Alternate machine-readable code — present on some endpoints as an alias for error for backward compatibility.
Opaque support/debug identifier when available.
Public action for correcting the request or retrying later.
object
JSON path to the invalid filter field or value.
Examples
{ "error": "Audience not found"}Resource state conflicts with the request. For upload analysis this includes FILE_NOT_YET_UPLOADED.
object
Stable machine-readable error code (e.g. INVALID_STATUS_TRANSITION, BILLING_INSUFFICIENT_BALANCE). Always present.
Human-readable explanation of the error.
Alternate machine-readable code — present on some endpoints as an alias for error for backward compatibility.
Opaque support/debug identifier when available.
Public action for correcting the request or retrying later.
object
JSON path to the invalid filter field or value.
Example
{ "issues": [ { "code": "INVALID_FILTER_SHAPE" } ]}