Advertiser billing and funding API
The /performance-marketing/v2/billing endpoints use an advertiser dashboard bearer session and the resolved advertiser profile (advertiserId where the dashboard requires an owner selection). The balance is shared across survey and offer campaigns. These are account finance operations; inspect the exact amount and payment state in Campaign Studio before invoking a write.
Read and edit the billing profile
| Method and path | Input | Response |
|---|---|---|
GET /billing/profile | Optional advertiserId. | Current billing profile. |
PUT /billing/profile | JSON profile fields; optional advertiserId. | Updated profile. |
GET /billing/balance | Optional advertiserId. | Balance with available, reserved, and spent money fields. |
GET /billing/funding | Optional advertiserId. | {items} of up to 100 newest funding transactions. |
GET /billing/allocations | Optional advertiserId. | {items} of campaign allocations. |
GET /billing/invoices | Optional advertiserId. | {items} of up to 100 newest invoices. |
The profile accepts accountType (BUSINESS or INDIVIDUAL), legalName, two-letter country, taxId, addressLine1, city, postalCode, and billingEmails. A legal name and country are required before funding. Balance, funding, allocation, and invoice responses map internal micros to display money fields; keep financial arithmetic in your own system precise rather than using rounded UI text.
Funding configuration and writes
| Method and path | Input | Response or effect |
|---|---|---|
GET /billing/paypal/config | None. | PayPal client configuration for the dashboard. |
GET /billing/wire/config | None. | Wire instructions and configured minimum. |
POST /billing/funding/wire | JSON amount, currency, externalReference; optional advertiserId. | 201 funding record in AWAITING_REVIEW. No balance is credited until an administrator verifies receipt. |
POST /billing/funding/paypal/order | JSON amount, currency, idempotencyKey; optional advertiserId. | 201 order and funding IDs for checkout. |
POST /billing/funding/paypal/{orderId}/capture | Owner-selected advertiser. | Funding result after PayPal capture is checked for completed status and exact amount/currency. |
POST /billing/survey-campaigns/{campaignId}/allocate | Owner-selected advertiser. | Allocates shared balance to an eligible draft/pending survey campaign; returns allocation. |
amount must be positive, within the configured limit, and expressed in the requested three-letter currency. A wire request also requires an externalReference of 3–120 characters and must meet the current minimum shown by /billing/wire/config. Reusing a wire reference with a different amount or currency fails. A PayPal idempotencyKey must be 8–120 letters, digits, colon, underscore, or dash; reuse it only for the same logical order. Never retry a payment with a fresh key just because the first response timed out; check funding state first.
Offer budget is reserved when an approved campaign goes LIVE and unused reserve is released on pause, end, or archive under the ledger rules. A survey allocation is separate from offer budget reserve. POST /operations/funding/{fundingId}/approve-wire exists but is administrator-only and is not an advertiser API. See the survey funding guide and offer budgeting guide.