Make immediate one-time charges on top of an existing subscription.
This feature is useful for scenarios where buyers need to purchase add-ons on top of a recurring plan.
For example, Charges API provides you with the flexibility to charge buyers, with existing subscriptions, right away for one-time top-ups, rather than waiting for the end of their current billing cycle.
- All one-time charges via the API will be made in full i.e. no proration and no modifiers
- The buyer will be invoiced immediately
- Charges are independent of the existing billing cycle i.e. they do not affect any existing due payments or future invoices
- There is no in-built dunning for the Charges API, so you will need to manage error handling and retries on your own
- Charges API inherits the user subscription’s VAT settings (configurable from the Sales Tax Settings page in the Seller Dashboard)
- You can only charge a card up to 5 times an hour (including subscriptions and one-off charges)
The vendor ID identifies your seller account. This can be found in Developer Tools > Authentication.
The vendor auth code is a private API key for authenticating API requests. This key should never be used in client side code or shared publicly. This can be found in Developer Tools > Authentication.
The amount for the one-time charge.
This amount will be charged in the currency of the subscription.
If the user’s subscription VAT setting is set to add to price, then we will add VAT to this charge amount.
The name of the one-time charge - this will be visible to the buyers and will show up in the invoice as a line item, so that a buyer can always refer back to the invoice to know how much they were charged and what for.
Note: Please put a proper product / charge name here to make it clear what buyers are buying. Here are some examples:
- [add-on name] x [quantity] e.g. Supercool design plugin x 1
- [number of credits] credits for [subscription plan] e.g. 200 credits for Monthly talk time
- [quantity] [units] [product description] e.g. 124 MB data usage
An unsuccessful call to the Dashboard API will return a 200 response containing a field
success set to
false and an error object.