Skip to main content

Overview

A one-off charge is a single payment tied to a specific event or action in the subscription lifecycle — rather than a recurring scheduled renewal. Once processed, the transaction is complete with no future billing obligations attached to it. One-off charges serve a wide range of commercial scenarios. Anything where a consumer makes a payment not tied to a recurring schedule fits this model:
  • Balance top-up — A consumer adds funds to their prepaid balance. The payment is processed and the credit is applied to their account straight away.
  • Ad-hoc purchase — A customer buys a product or add-on with a single payment. The payment is processed, the purchase is confirmed, and the customer gets access right away.
  • Adjustment — Sometimes you need to charge a customer for something outside their usual subscription. A one-time charge lets you do that quickly and simply, without affecting their existing service.
  • Partner-initiated charge — Partners can create one-time charges for their customers through the platform, processed and tracked just like any other transaction.
  • Pro-rated upgrade — When a consumer upgrades their product entitlement mid-cycle, the DVM automatically issues a pro-rated charge for the price difference covering the remaining days in the billing period.
The DVM issues one-off charges to your billing system via the same POST /charges endpoint used for renewal charges. The key difference is the billType value, which identifies the nature of the charge.

When one-off charges are issued

Pro-rated Upgrade Charge

When a consumer upgrades to a higher product tier mid-cycle, a pro-rated charge is issued immediately to collect the price difference for the remaining days in the current billing period. billType: PRO_RATED_CHARGE

Single Purchase

A one-time payment for a specific product, service, or add-on outside of a subscription — such as a balance top-up, ad-hoc purchase, or partner-initiated charge. billType: SINGLE_CHARGE
The pro-rated upgrade charge is the only one-off charge currently issued automatically by the DVM. Single purchase charges are available for partner-initiated use cases.
At the next renewal following an upgrade, the recurring charge will reflect the new higher-tier price. See Recurring Charges for how this appears in the renewal request.

Charge request examples

When a consumer upgrades their product entitlement to a higher tier mid-cycle, the DVM immediately issues a pro-rated charge for the price difference for the remaining days in the billing period.In this example the consumer has upgraded to NETFLIX_PREMIUM on 15 February, part way through their February billing cycle. The pro-rated charge amount is the price delta for the remaining days.This amount is itemised under lineItems:
  • OFFER_TIER_CHANGE_PRORATION = the pro-rated price difference for the upgrade, covering the remaining days in the current billing period
A single purchase charge is a one-time payment for a product or service outside of a subscription plan — such as a balance top-up, ad-hoc purchase, adjustment, or partner-initiated charge.Unlike consumer offer charges, a single purchase does not include consumerOffer or billingDetails fields. The resourceType is SINGLE_PURCHASE and the lineItems use lineItemType: SINGLE_CHARGE with a human-readable description.

Key fields explained

string
required
Identifies the type of one-off charge. PRO_RATED_CHARGE is issued automatically by the DVM when a consumer upgrades mid-cycle. SINGLE_CHARGE is used for standalone one-time purchases.
string
required
Tells you what is being charged. CONSUMER_OFFER for pro-rated upgrade charges (tied to a subscription offer). SINGLE_PURCHASE for standalone one-time purchases not linked to an offer.
integer
required
The total charge amount in minor currency units (e.g. 350 = 3.50USD,‘1499‘=3.50 USD, `1499` = 14.99 USD).
array
required
The itemised breakdown of the charge. For pro-rated upgrade charges, lineItemType is OFFER_TIER_CHANGE_PRORATION and includes the entitlementId of the upgraded product. For single purchases, lineItemType is SINGLE_CHARGE and includes a human-readable description of the item.
object
Present on pro-rated upgrade charges only. Contains the billingPeriod the proration was calculated against — useful for reconciliation. Not included on single purchase charges.
boolean / integer
required
isRetry: true indicates this is a retry of a previously failed charge. chargeAttempt gives the attempt number (0 = first attempt, 1 = first retry, etc.). Use billId to deduplicate against prior attempts.

How to respond

Your billing system must respond to every charge request with a 200 status and a JSON body indicating whether the charge was processed or declined.

Approved

Declined

Decline reason codes

Always return a reason when declining. Without it, Bango may treat the response as an error and apply retry logic regardless of the actual decline reason.