Skip to content

Confirm a card

Ask Paddle now whether the card form completed.

Updated

post

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.