Billing
Confirm a card
Ask Paddle now whether the card form completed.
Updated
https://cloud.cahaves.com/api/billing/card/confirm
Authorization
cahaves.cloud.sessionstringcookierequired
The session cookie Cloud sets when a customer signs in to the console with GitHub or Google. It is HttpOnly, so scripts cannot read it, and there are no API keys or tokens yet.
Headers
X-Cloud-Organizationstring<uuid>
The id of the organization the request works in, one the signed-in customer owns. Left out or empty, the request works in their oldest organization. Any other value answers 404 with `reason: "organization"`. A customer with no organization yet gets 409 "Create an organization first." from every route that works in one.
Example: "2f6c8e0a-4b1d-4e7f-9a3c-5d7e9f1b3a5c"
Body
application/jsonrequired
transaction_idstringrequired
Paddle's transaction id, which the console opens in Paddle's form.
Responses
application/json
The billing account.
cardobject | nullrequired
The card Paddle keeps, as far as Cloud is told, never the number. For a few seconds after a card is added its fields can be null, until Paddle's notice brings them.
modestringrequired
card, the default, or invoice for an organization Cahaves bills by invoice.
Allowed values: "card""invoice"
detailsobjectrequired
standingobjectrequired
billing_stopobjectrequired
Whether the organization's paid services are stopped for billing, or are to be. A failed card charge, a month closed with no card, an overdue invoice or paid services run with no card on file stops them once its grace period has passed, and a month to date at the monthly limit stops them at once. The stop is the organization's alone and never holds the free application or the free database. It lifts once every cause has cleared, and Cloud then starts again exactly what it stopped. A stop for an unpaid month or for no card that lasts archives the paid services: a final backup of each, then the service deleted.
suspended_bystring | nullrequired
Who holds the account suspended, which holds every organization it owns, so this reads the same in each: operator, or null while nothing does.
Allowed values: "operator"null
monthly_billingbooleanrequired
True once the organization is billed by the month, which every organization is from 06:00 UTC on 14 October 2026.
invoice_currencystring | nullrequired
The currency an organization billed by invoice is billed in. Null for a card organization.
Allowed values: "USD""IDR"null
monthly_limit_centsintegerrequired
The organization's monthly limit, in whole US cents.
monthly_billing_fromstring<date-time> | nullrequired
When billing by the month starts or started for this organization, or null.
The console calls this when Paddle's form completes, so the card shows at once rather than when Paddle's notice arrives. Until Paddle has finished, it answers 409 with "Paddle has not finished saving this card. Try again in a few seconds." A transaction that is not a checkout of the organization the request works in answers 422 naming transaction_id, a checkout started in another of your organizations included: "That checkout belongs to another organization." The answer is the billing account, with card filled in. At most 30 are accepted a minute per account, and 120 across the platform.