Charge a custom amount to a saved card
Charge an arbitrary amount and currency against a customer’s saved card, without a Price Point.
Availability
Custom charges are disabled by default. Contact FunnelFox to enable them for your organization. Calls to a disabled organization returnone_off_charge_disabled.
Requirements
The customer must already have a successful payment with a saved card. The card, payment provider, region, and merchant account are all reused from that payment, so the currencies you can charge depend on that merchant account.Idempotency
idempotency_key is required and must be unique per customer.
- Same key, same amount and currency: Nothing is charged again. The original outcome is returned with
idempotent_replay: trueand the originalorder_id. - Same key, different amount or currency: The request is rejected with
idempotency_key_reused. Nothing is charged. - New key: A new charge, even for the same amount.
What the customer receives
Each successful charge grants one consumable. No subscription or one-off purchase is created, so the charge appears inPOST /my_assets under consumables only. A full refund of the order revokes the consumable; a partial or soft refund does not.
No tax is calculated on custom charges.
Errors
All failures return HTTP 400.one_off_charge_disabled and idempotency_key_reused carry a machine-readable code; other failures are message-only: non-positive amount, unknown currency, too many decimal places for the currency, amount over your configured maximum, unknown customer, no prior successful payment, no saved card, or another charge already in progress for the customer.Authorizations
Secret key for FunnelFox Billing API. Required for all requests.
Path Parameters
Organization ID
Body
Your unique identifier for the user
256Amount to charge. Must be greater than 0, must not have more decimal places than the currency allows, and must not exceed the maximum configured for your organization.
Three-letter ISO currency code. Case-insensitive.
3Unique key per purchase intent. Reuse it on retries to avoid double-charging.
1 - 128Custom metadata from your client application
Response
Payment status and details
Always empty for custom charges — merchant-initiated charges have no authentication step.
processing, succeeded, failed, cancelled True when this response replays an earlier charge made with the same idempotency key, rather than a new charge.
