Billing

Charge the saved card to top up prepaid balance

Charges the org's default saved card off-session. The balance credit is applied by the payment_intent.succeeded webhook (the authoritative money signal), not this response: poll the balance after success.

post/v1/orgs/{orgId}/billing/deposit

Path parameters

orgIdstring required

Request body

amountCentsinteger required

Amount to charge the saved card, in cents. The flat floor is $25 and the default per-deposit cap is $500 (raised to an approved monthly spend limit). While the org has usage running the endpoint requires at least one hour of the current burn; read the exact figure from Balance.minDepositCents rather than re-deriving it.

captchaActionstring

Optional reCAPTCHA action the score was measured for (see DeviceSignals).

captchaBandstring

Optional score band, pass|step_up|step_up_strict (see DeviceSignals). The band's step-up was already satisfied at the dashboard before this request was sent.

captchaScorenumber

Optional reCAPTCHA v3 score, 0 to 1 (see DeviceSignals). Recorded on the org and copied onto the dispute-evidence record; it never gates the deposit.

deviceEventIdstring

Optional Fingerprint event id (see DeviceSignals).

deviceFingerprintstring

Optional Fingerprint visitor id (see DeviceSignals). Recorded and clustered. A device that puts the account on a verification hold gets 403 ACCOUNT_PENDING_VERIFICATION, or 403 VERIFICATION_UNAVAILABLE when the hold could not be recorded; every other verdict is observe-only.

idempotencyKeystring

Client-generated id for this logical deposit; reused verbatim on retry so a network/client retry can't double-charge. Optional: the server generates one if absent (then retries won't dedupe).

Response

Charge outcome (status drives the dashboard's next step)

clientSecretstring

Set only when status is requires_action (on-session SCA).

paymentIntentIdstring required
publishableKeystring

Set with clientSecret: the Stripe publishable key Stripe.js needs to confirm the PaymentIntent on-session.

statusstring required

Stripe PaymentIntent status. "succeeded" → credit lands via webhook; "requires_action" → complete SCA on-session with clientSecret; "requires_payment_method" → the card was declined.

Changes