For AI agents and LLMs: a structured documentation index is available at /llms.txt. Every page has a Markdown sibling — append .md to any URL.

Skip to content
Docs

Bill for one-time charges

Bill one-time charges to a subscription for one-off things, like setup or onboarding fees or support incident charges. Charge immediately, or add them to the next renewal.

AI summary

Bill one-time charges to an active subscription for setup fees, support incidents, or other non-recurring items — either immediately or added to the next renewal.

  • • One-time charges use prices with billing_cycle: null — create these prices in your catalog or pass inline price objects to add non-recurring items to a subscription update.
  • • You can choose to collect the one-time charge immediately (creating a new transaction right away) or defer it to the next billing date as part of the renewal invoice.
  • • One-time charges are visible on the subscription and are included on the transaction generated for them — they don't repeat at renewal unless added again explicitly.

As well as adding recurring items to subscriptions, Paddle lets you bill for one-time charges. One-time charges are sometimes called one-off, ad-hoc, or non-recurring charges or fees.

Bill one-time charges to a subscription when:

  • Customers pay a fee at the start of their subscription for things like setup, implementation, deployment, or activation.
  • You offer services to subscribed customers, like auditing, data export, data migration, or incident support.
  • You offer passes to access modules or features, like a 10-day pro pass for customers on a starter plan.
  • You want to provide an easy way for customers to buy ebooks, access to webinars, or other resources you offer.

How it works

One-time charges for a subscription are items that don't recur. The billing_cycle against the related price entity is null.

They're typically charged at the start of a subscription, like setup fees, or mid-cycle for things like incident support or data auditing. You can also use them to offer additional products, like ebooks, access to webinars, or other educational resources.

While you could create an entirely new transaction for additional products, billing them to the subscription lets you:

  • Automatically-collect using the payment method on file for the subscription
    No need to ask a customer for card details again. Use the billing details that you use to collect for subscription payments.
  • Add one-time charges to the next renewal
    Collect for your one-time charges when you next collect for a subscription, offering an integrated experience.

As they're non-recurring, one-time charges aren't added to the items list against subscriptions. This list is just for recurring items.

Proration doesn't apply to one-time charges because they're not related to the billing period. Customers are always charged the full amount.

Billing for one-time charges is typically used when you want customers to pay for one-off fees or ad-hoc products.

Depending on what you're looking to do, you might also like to:

Before you begin

To bill for one-time charges, you'll need to get the subscription ID for the subscription you want to change.

You can use the status query parameter when listing with the value active to get a list of active subscriptions.

You'll also need price IDs for the one-time prices that you want to bill for. One-time charges are prices where the billing_cycle is null. Use the recurring query parameter with the value false when listing prices with the API to return one-time prices.

Bill for one-time charges

Bill for one-time charges using the API in two steps:

  1. Preview charge Optional
    Preview the charge before billing. Present this to customers if you offer an in-app workflow.
  2. Create one-time charge
    Send a request to bill for the one-time charge.

Preview charge Optional

Send a POST request to the /subscriptions/{subscription_id}/charge/preview endpoint to preview a one-time charge.

In your request, build an items array of one-time charge price IDs and quantities. Only prices where billing_cycle is null may be included. You don't need to include existing recurring items.

Include effective_from to control when Paddle bills:

  • immediately — creates a transaction for the charge right away.
  • next_billing_period — adds the charge to the next renewal transaction.

When effective_from is immediately on an automatically-collected subscription, Paddle tries to collect right away. Optionally include on_payment_failure to control what happens if payment fails (defaults to prevent_change).

POST /subscriptions/{subscription_id}/charge/preview
Request
{
"effective_from": "next_billing_period",
"items": [
{
"price_id": "pri_01gsz98e27ak2tyhexptwc58yk",
"quantity": 1
}
]
}
Response (200 OK)
{
"data": {
"status": "active",
"customer_id": "ctm_01hw21d3hac6pe4wz04caz3kf4",
"address_id": "add_01hw2ac15twq7c162p05qzq8c9",
"business_id": null,
"currency_code": "USD",
"created_at": "2024-04-22T07:13:19.02Z",
"updated_at": "2024-04-22T08:24:45.138Z",
"started_at": "2024-04-22T07:13:18.412737Z",
"first_billed_at": "2024-04-22T07:13:18.412737Z",
"next_billed_at": "2025-04-22T07:13:18.412737Z",
"paused_at": null,
"canceled_at": null,
"collection_mode": "automatic",
"billing_details": null,
"current_billing_period": {
"starts_at": "2024-04-22T07:13:18.412737Z",
"ends_at": "2025-04-22T07:13:18.412737Z"
},
"billing_cycle": {
"frequency": 1,
"interval": "year"
},
"recurring_transaction_details": {
"tax_rates_used": [
{
"tax_rate": "0",
"totals": {
"subtotal": "600000",
"discount": "0",
"tax": "0",
"total": "600000"
}
}
],
"totals": {
"subtotal": "600000",
"tax": "0",
"discount": "0",
"total": "600000",
"fee": null,
"credit": "0",
"credit_to_balance": "0",
"balance": "600000",
"grand_total": "600000",
"earnings": null,
"currency_code": "USD",
"exchange_rate": "1"
},
"line_items": [
{
"item_id": null,
"price_id": "pri_01gsz8z1q1n00f12qt82y31smh",
"quantity": 10,
"totals": {
"subtotal": "300000",
"tax": "0",
"discount": "0",
"total": "300000"
},
"product": {
"id": "pro_01gsz4t5hdjse780zja8vvr7jg",
"name": "AeroEdit Pro",
"type": "standard",
"tax_category": "standard",
"description": "Designed for professional pilots, including all features plus in Basic plus compliance monitoring, route optimization, and third-party integrations.",
"image_url": "https://paddle.s3.amazonaws.com/user/165798/bT1XUOJAQhOUxGs83cbk_pro.png",
"custom_data": {
"features": {
"aircraft_performance": true,
"compliance_monitoring": true,
"flight_log_management": true,
"payment_by_invoice": false,
"route_planning": true,
"sso": false
},
"suggested_addons": [
"pro_01h1vjes1y163xfj1rh1tkfb65",
"pro_01gsz97mq9pa4fkyy0wqenepkz"
],
"upgrade_description": "Move from Basic to Pro to take advantage of aircraft performance, advanced route planning, and compliance monitoring."
},
"status": "active",
"import_meta": null,
"created_at": "2023-02-23T12:43:46.605Z",
"updated_at": "2024-04-05T15:53:44.687Z"
},
"tax_rate": "0",
"unit_totals": {
"subtotal": "30000",
"discount": "0",
"tax": "0",
"total": "30000"
},
"proration": {
"rate": "1",
"billing_period": {
"starts_at": "2024-04-22T07:13:18.412737Z",
"ends_at": "2025-04-22T07:13:18.412737Z"
}
}
},
{
"item_id": null,
"price_id": "pri_01gsz96z29d88jrmsf2ztbfgjg",
"quantity": 1,
"totals": {
"subtotal": "300000",
"tax": "0",
"discount": "0",
"total": "300000"
},
"product": {
"id": "pro_01gsz92krfzy3hcx5h5rtgnfwz",
"name": "Reporting module",
"type": "standard",
"tax_category": "standard",
"description": "Get access to comprehensive reports and customizable analytics dashboards.",
"image_url": "https://paddle.s3.amazonaws.com/user/165798/qgyipKJwRtq98YNboipo_vip-support.png",
"custom_data": null,
"status": "active",
"import_meta": null,
"created_at": "2023-02-23T13:58:17.615Z",
"updated_at": "2024-04-05T15:44:02.893Z"
},
"tax_rate": "0",
"unit_totals": {
"subtotal": "300000",
"discount": "0",
"tax": "0",
"total": "300000"
},
"proration": {
"rate": "1",
"billing_period": {
"starts_at": "2024-04-22T07:13:18.412737Z",
"ends_at": "2025-04-22T07:13:18.412737Z"
}
}
}
]
},
"next_transaction": {
"billing_period": {
"starts_at": "2025-04-22T07:13:18.412737Z",
"ends_at": "2026-04-22T07:13:18.412737Z"
},
"details": {
"tax_rates_used": [
{
"tax_rate": "0",
"totals": {
"subtotal": "619900",
"discount": "0",
"tax": "0",
"total": "619900"
}
}
],
"totals": {
"subtotal": "619900",
"tax": "0",
"discount": "0",
"total": "619900",
"fee": null,
"credit": "0",
"credit_to_balance": "0",
"balance": "619900",
"grand_total": "619900",
"earnings": null,
"currency_code": "USD",
"exchange_rate": "1"
},
"line_items": [
{
"item_id": null,
"price_id": "pri_01gsz8z1q1n00f12qt82y31smh",
"quantity": 10,
"totals": {
"subtotal": "300000",
"tax": "0",
"discount": "0",
"total": "300000"
},
"product": {
"id": "pro_01gsz4t5hdjse780zja8vvr7jg",
"name": "AeroEdit Pro",
"type": "standard",
"tax_category": "standard",
"description": "Designed for professional pilots, including all features plus in Basic plus compliance monitoring, route optimization, and third-party integrations.",
"image_url": "https://paddle.s3.amazonaws.com/user/165798/bT1XUOJAQhOUxGs83cbk_pro.png",
"custom_data": {
"features": {
"aircraft_performance": true,
"compliance_monitoring": true,
"flight_log_management": true,
"payment_by_invoice": false,
"route_planning": true,
"sso": false
},
"suggested_addons": [
"pro_01h1vjes1y163xfj1rh1tkfb65",
"pro_01gsz97mq9pa4fkyy0wqenepkz"
],
"upgrade_description": "Move from Basic to Pro to take advantage of aircraft performance, advanced route planning, and compliance monitoring."
},
"status": "active",
"import_meta": null,
"created_at": "2023-02-23T12:43:46.605Z",
"updated_at": "2024-04-05T15:53:44.687Z"
},
"tax_rate": "0",
"unit_totals": {
"subtotal": "30000",
"discount": "0",
"tax": "0",
"total": "30000"
},
"proration": {
"rate": "1",
"billing_period": {
"starts_at": "2025-04-22T07:13:18.412737Z",
"ends_at": "2026-04-22T07:13:18.412737Z"
}
}
},
{
"item_id": null,
"price_id": "pri_01gsz96z29d88jrmsf2ztbfgjg",
"quantity": 1,
"totals": {
"subtotal": "300000",
"tax": "0",
"discount": "0",
"total": "300000"
},
"product": {
"id": "pro_01gsz92krfzy3hcx5h5rtgnfwz",
"name": "Reporting module",
"type": "standard",
"tax_category": "standard",
"description": "Get access to comprehensive reports and customizable analytics dashboards.",
"image_url": "https://paddle.s3.amazonaws.com/user/165798/qgyipKJwRtq98YNboipo_vip-support.png",
"custom_data": null,
"status": "active",
"import_meta": null,
"created_at": "2023-02-23T13:58:17.615Z",
"updated_at": "2024-04-05T15:44:02.893Z"
},
"tax_rate": "0",
"unit_totals": {
"subtotal": "300000",
"discount": "0",
"tax": "0",
"total": "300000"
},
"proration": {
"rate": "1",
"billing_period": {
"starts_at": "2025-04-22T07:13:18.412737Z",
"ends_at": "2026-04-22T07:13:18.412737Z"
}
}
},
{
"item_id": null,
"price_id": "pri_01gsz98e27ak2tyhexptwc58yk",
"quantity": 1,
"totals": {
"subtotal": "19900",
"tax": "0",
"discount": "0",
"total": "19900"
},
"product": {
"id": "pro_01gsz97mq9pa4fkyy0wqenepkz",
"name": "Custom domains",
"type": "standard",
"tax_category": "standard",
"description": "Make AeroEdit truly your own with custom domains. Custom domains reinforce your brand identity and make it easy for your team to access your account.",
"image_url": "https://paddle.s3.amazonaws.com/user/165798/XIG7UXoJQHmlIAiKcnkA_custom-domains.png",
"custom_data": null,
"status": "active",
"import_meta": null,
"created_at": "2023-02-23T14:01:02.441Z",
"updated_at": "2024-04-05T15:43:28.971Z"
},
"tax_rate": "0",
"unit_totals": {
"subtotal": "19900",
"discount": "0",
"tax": "0",
"total": "19900"
}
}
]
},
"adjustments": []
},
"immediate_transaction": null,
"scheduled_change": null,
"items": [
{
"status": "active",
"quantity": 10,
"recurring": true,
"created_at": "2024-04-22T07:13:19.02Z",
"updated_at": "2024-04-22T07:13:19.02Z",
"previously_billed_at": "2024-04-22T07:13:18.412737Z",
"next_billed_at": "2025-04-22T07:13:18.412737Z",
"trial_dates": null,
"price": {
"id": "pri_01gsz8z1q1n00f12qt82y31smh",
"product_id": "pro_01gsz4t5hdjse780zja8vvr7jg",
"type": "standard",
"description": "Annual",
"name": "Annual (per seat)",
"tax_mode": "account_setting",
"billing_cycle": {
"frequency": 1,
"interval": "year"
},
"trial_period": null,
"unit_price": {
"amount": "30000",
"currency_code": "USD"
},
"unit_price_overrides": [],
"custom_data": null,
"status": "active",
"quantity": {
"minimum": 1,
"maximum": 999
},
"import_meta": null,
"created_at": "2023-02-23T13:56:20.833019Z",
"updated_at": "2024-04-11T13:47:49.566301Z"
}
},
{
"status": "active",
"quantity": 1,
"recurring": true,
"created_at": "2024-04-22T07:13:19.02Z",
"updated_at": "2024-04-22T07:13:19.02Z",
"previously_billed_at": "2024-04-22T07:13:18.412737Z",
"next_billed_at": "2025-04-22T07:13:18.412737Z",
"trial_dates": null,
"price": {
"id": "pri_01gsz96z29d88jrmsf2ztbfgjg",
"product_id": "pro_01gsz92krfzy3hcx5h5rtgnfwz",
"type": "standard",
"description": "Annual (recurring addon)",
"name": "Annual (recurring addon)",
"tax_mode": "account_setting",
"billing_cycle": {
"frequency": 1,
"interval": "year"
},
"trial_period": null,
"unit_price": {
"amount": "300000",
"currency_code": "USD"
},
"unit_price_overrides": [],
"custom_data": null,
"status": "active",
"quantity": {
"minimum": 1,
"maximum": 1
},
"import_meta": null,
"created_at": "2023-02-23T14:00:40.265185Z",
"updated_at": "2024-03-25T14:31:18.587603Z"
}
}
],
"custom_data": null,
"management_urls": {
"update_payment_method": "https://buyer-portal.paddle.com/subscriptions/sub_01hw2adtncz3kfj9tqhk3wcv3z/update-payment-method",
"cancel": "https://buyer-portal.paddle.com/subscriptions/sub_01hw2adtncz3kfj9tqhk3wcv3z/cancel"
},
"discount": null,
"update_summary": {
"credit": {
"amount": "0",
"currency_code": "USD"
},
"charge": {
"amount": "19900",
"currency_code": "USD"
},
"result": {
"action": "charge",
"amount": "19900",
"currency_code": "USD"
}
},
"import_meta": null
},
"meta": {
"request_id": "32358cfb-addd-4cf6-8702-4950922ef384"
}
}

Create one-time charge

Send a POST request to the /subscriptions/{subscription_id}/charge endpoint to bill for the one-time charge.

In your request, include the same body as the preview request.

POST /subscriptions/{subscription_id}/charge
Request
{
"effective_from": "next_billing_period",
"items": [
{
"price_id": "pri_01gsz98e27ak2tyhexptwc58yk",
"quantity": 1
}
]
}
Response (201 Created)
{
"data": {
"id": "sub_01hw2adtncz3kfj9tqhk3wcv3z",
"status": "active",
"customer_id": "ctm_01hw21d3hac6pe4wz04caz3kf4",
"address_id": "add_01hw2ac15twq7c162p05qzq8c9",
"business_id": null,
"currency_code": "USD",
"created_at": "2024-04-22T07:13:19.02Z",
"updated_at": "2024-04-22T08:25:51.744Z",
"started_at": "2024-04-22T07:13:18.412737Z",
"first_billed_at": "2024-04-22T07:13:18.412737Z",
"next_billed_at": "2025-04-22T07:13:18.412737Z",
"paused_at": null,
"canceled_at": null,
"collection_mode": "automatic",
"billing_details": null,
"current_billing_period": {
"starts_at": "2024-04-22T07:13:18.412737Z",
"ends_at": "2025-04-22T07:13:18.412737Z"
},
"billing_cycle": {
"frequency": 1,
"interval": "year"
},
"scheduled_change": null,
"items": [
{
"status": "active",
"quantity": 10,
"recurring": true,
"created_at": "2024-04-22T07:13:19.02Z",
"updated_at": "2024-04-22T07:13:19.02Z",
"previously_billed_at": "2024-04-22T07:13:18.412737Z",
"next_billed_at": "2025-04-22T07:13:18.412737Z",
"trial_dates": null,
"price": {
"id": "pri_01gsz8z1q1n00f12qt82y31smh",
"product_id": "pro_01gsz4t5hdjse780zja8vvr7jg",
"type": "standard",
"description": "Annual",
"name": "Annual (per seat)",
"tax_mode": "account_setting",
"billing_cycle": {
"frequency": 1,
"interval": "year"
},
"trial_period": null,
"unit_price": {
"amount": "30000",
"currency_code": "USD"
},
"unit_price_overrides": [],
"custom_data": null,
"status": "active",
"quantity": {
"minimum": 1,
"maximum": 999
},
"import_meta": null,
"created_at": "2023-02-23T13:56:20.833019Z",
"updated_at": "2024-04-11T13:47:49.566301Z"
}
},
{
"status": "active",
"quantity": 1,
"recurring": true,
"created_at": "2024-04-22T07:13:19.02Z",
"updated_at": "2024-04-22T07:13:19.02Z",
"previously_billed_at": "2024-04-22T07:13:18.412737Z",
"next_billed_at": "2025-04-22T07:13:18.412737Z",
"trial_dates": null,
"price": {
"id": "pri_01gsz96z29d88jrmsf2ztbfgjg",
"product_id": "pro_01gsz92krfzy3hcx5h5rtgnfwz",
"type": "standard",
"description": "Annual (recurring addon)",
"name": "Annual (recurring addon)",
"tax_mode": "account_setting",
"billing_cycle": {
"frequency": 1,
"interval": "year"
},
"trial_period": null,
"unit_price": {
"amount": "300000",
"currency_code": "USD"
},
"unit_price_overrides": [],
"custom_data": null,
"status": "active",
"quantity": {
"minimum": 1,
"maximum": 1
},
"import_meta": null,
"created_at": "2023-02-23T14:00:40.265185Z",
"updated_at": "2024-03-25T14:31:18.587603Z"
}
}
],
"custom_data": null,
"management_urls": {
"update_payment_method": "https://buyer-portal.paddle.com/subscriptions/sub_01hw2adtncz3kfj9tqhk3wcv3z/update-payment-method",
"cancel": "https://buyer-portal.paddle.com/subscriptions/sub_01hw2adtncz3kfj9tqhk3wcv3z/cancel"
},
"discount": null,
"import_meta": null
},
"meta": {
"request_id": "668b5e0c-9ff9-4cdc-b33a-79bc1894d294"
}
}

Get one-time charges

One-time charges aren't added to the subscription items list. This array is only for recurring items.

To get details of a one-time charge:

  • Billed next billing period
    When billed on the next_billing_period, get the subscription you billed the charge to using the API and include next_transaction.
  • Billed immediately
    When billed immediately, list transactions using the API and filter to see transactions for the subscription you billed the charge to.

Next billing period

When you bill for a one-time charge with effective_from as next_billing_period, Paddle adds it to the next renewal transaction.

You can see the one-time charge by getting the subscription that you billed the charge to, using the include query parameter to return the next_transaction. One-time charges are detailed in next_transaction.details.line_items, along with any recurring items.

One-time charges appear in next_transaction.details.line_items alongside recurring items.

GET /subscriptions/{subscription_id}?include=next_transaction
Response (200 OK)
{
"data": {
"id": "sub_01h3h3a9sfpr5syq38tq0sd4sp",
"status": "active",
"customer_id": "ctm_01h3h38xn5c2701bb5eecy9m6a",
"address_id": "add_01h3h38xqmv1xy0tjsnj0g1ke5",
"business_id": null,
"currency_code": "USD",
"created_at": "2023-06-22T08:25:14.287455Z",
"updated_at": "2023-08-22T11:05:09.319083Z",
"started_at": "2023-06-22T08:25:12.565118Z",
"first_billed_at": "2023-06-22T08:25:12.565118Z",
"next_billed_at": "2023-09-22T08:25:12.565118Z",
"paused_at": null,
"canceled_at": null,
"collection_mode": "automatic",
"billing_details": null,
"current_billing_period": {
"starts_at": "2023-08-22T08:25:12.565118Z",
"ends_at": "2023-09-22T08:25:12.565118Z"
},
"billing_cycle": {
"frequency": 1,
"interval": "month"
},
"next_transaction": {
"billing_period": {
"starts_at": "2023-09-22T08:25:12.565118Z",
"ends_at": "2023-10-22T08:25:12.565118Z"
},
"details": {
"tax_rates_used": [
{
"tax_rate": "0.08875",
"totals": {
"subtotal": "119900",
"discount": "0",
"tax": "10640",
"total": "130540"
}
}
],
"totals": {
"subtotal": "119900",
"tax": "10640",
"discount": "0",
"total": "130540",
"fee": null,
"credit": "0",
"balance": "130540",
"grand_total": "130540",
"earnings": null,
"currency_code": "USD"
},
"line_items": [
{
"price_id": "pri_01gsz8x8sawmvhz1pv30nge1ke",
"quantity": 30,
"totals": {
"subtotal": "90000",
"tax": "7987",
"discount": "0",
"total": "97987"
},
"product": {
"id": "pro_01gsz4t5hdjse780zja8vvr7jg",
"name": "ChatApp Pro",
"description": "Everything in basic, plus access to a suite of powerful tools and features designed to take your team's productivity to the next level.",
"tax_category": "standard",
"image_url": "https://paddle-sandbox.s3.amazonaws.com/user/10889/2nmP8MQSret0aWeDemRw_icon1.png",
"status": "active"
},
"tax_rate": "0.08875",
"unit_totals": {
"subtotal": "3000",
"discount": "0",
"tax": "266",
"total": "3266"
}
},
{
"price_id": "pri_01h1vjfevh5etwq3rb416a23h2",
"quantity": 1,
"totals": {
"subtotal": "10000",
"tax": "887",
"discount": "0",
"total": "10887"
},
"product": {
"id": "pro_01h1vjes1y163xfj1rh1tkfb65",
"name": "Voice rooms addon",
"description": "Create voice rooms in your chats to work in real time alongside your colleagues. Includes unlimited voice rooms and recording backup for compliance.",
"tax_category": "standard",
"image_url": "https://paddle-sandbox.s3.amazonaws.com/user/10889/GcZzBjXRfiraensppgtQ_icon2.png",
"status": "active"
},
"tax_rate": "0.08875",
"unit_totals": {
"subtotal": "10000",
"discount": "0",
"tax": "887",
"total": "10887"
}
},
{
"price_id": "pri_01gsz98e27ak2tyhexptwc58yk",
"quantity": 1,
"totals": {
"subtotal": "19900",
"tax": "1766",
"discount": "0",
"total": "21666"
},
"product": {
"id": "pro_01gsz97mq9pa4fkyy0wqenepkz",
"name": "Custom domains",
"description": "Make ChatApp truly your own with custom domains! Custom domains reinforce your brand identity and make it easy for your team to access ChatApp.",
"tax_category": "standard",
"image_url": "https://paddle-sandbox.s3.amazonaws.com/user/10889/SW3OevDQ92dUHSkN5a2x_icon3.png",
"status": "active"
},
"tax_rate": "0.08875",
"unit_totals": {
"subtotal": "19900",
"discount": "0",
"tax": "1766",
"total": "21666"
}
}
]
},
"adjustments": []
},
"scheduled_change": null,
"items": [
{
"status": "active",
"quantity": 30,
"recurring": true,
"created_at": "2023-06-22T08:25:14.287456Z",
"updated_at": "2023-08-22T08:32:24.552996Z",
"previously_billed_at": "2023-08-22T08:25:12.565118Z",
"next_billed_at": "2023-09-22T08:25:12.565118Z",
"price": {
"id": "pri_01gsz8x8sawmvhz1pv30nge1ke",
"product_id": "pro_01gsz4t5hdjse780zja8vvr7jg",
"description": "Monthly (per seat)",
"tax_mode": "account_setting",
"billing_cycle": {
"frequency": 1,
"interval": "month"
},
"trial_period": null,
"unit_price": {
"amount": "3266",
"currency_code": "USD"
}
}
},
{
"status": "active",
"quantity": 1,
"recurring": true,
"created_at": "2023-06-22T08:40:45.808402Z",
"updated_at": "2023-08-22T08:26:06.361047Z",
"previously_billed_at": "2023-08-22T08:25:12.565118Z",
"next_billed_at": "2023-09-22T08:25:12.565118Z",
"price": {
"id": "pri_01h1vjfevh5etwq3rb416a23h2",
"product_id": "pro_01h1vjes1y163xfj1rh1tkfb65",
"description": "Monthly (recurring addon)",
"tax_mode": "account_setting",
"billing_cycle": {
"frequency": 1,
"interval": "month"
},
"trial_period": null,
"unit_price": {
"amount": "10887",
"currency_code": "USD"
}
}
}
],
"custom_data": null,
"management_urls": {
"update_payment_method": "https://buyer-portal.paddle.com/subscriptions/sub_01h3h3a9sfpr5syq38tq0sd4sp/update-payment-method",
"cancel": "https://buyer-portal.paddle.com/subscriptions/sub_01h3h3a9sfpr5syq38tq0sd4sp/cancel"
},
"discount": null
},
"meta": {
"request_id": "ef7c55d7-17dd-4ca3-b4b7-88eab28c4a88"
}
}

Immediately

When you bill for a one-time charge with effective_from as immediately, Paddle creates a transaction for it right away.

You can see the one-time charge by listing transactions, filtering to see transactions for the subscription you billed the charge to. The origin against the transaction is subscription_charge, which you may also filter for.

Filter by subscription_id and origin=subscription_charge to find the transaction Paddle created for the immediate charge.

GET /transactions?subscription_id={subscription_id}&origin=subscription_charge
Response (200 OK)
{
"data": [
{
"id": "txn_01h3kvj0hs5e3q1d53g5jnfbg3",
"status": "completed",
"customer_id": "ctm_01h3h38xn5c2701bb5eecy9m6a",
"address_id": "add_01h3h38xqmv1xy0tjsnj0g1ke5",
"business_id": null,
"custom_data": null,
"origin": "subscription_charge",
"collection_mode": "automatic",
"subscription_id": "sub_01h3h3a9sfpr5syq38tq0sd4sp",
"invoice_id": "inv_01h3kvj4zfm911d3p0qbtg5ksf",
"invoice_number": "325-10054",
"billing_details": null,
"billing_period": {
"starts_at": "2023-08-22T08:25:12.565118Z",
"ends_at": "2023-09-22T08:25:12.565118Z"
},
"currency_code": "USD",
"discount_id": null,
"created_at": "2023-06-23T10:07:22.016044Z",
"updated_at": "2023-06-23T10:07:28.398885Z",
"billed_at": "2023-06-23T10:07:21.657018Z",
"items": [
{
"price": {
"id": "pri_01gsz98e27ak2tyhexptwc58yk",
"description": "One-time charge",
"name": null,
"product_id": "pro_01gsz97mq9pa4fkyy0wqenepkz",
"billing_cycle": null,
"trial_period": null,
"tax_mode": "account_setting",
"unit_price": {
"amount": "19900",
"currency_code": "USD"
},
"unit_price_overrides": [],
"custom_data": null,
"quantity": {
"minimum": 1,
"maximum": 1
},
"status": "active"
},
"quantity": 1
}
],
"details": {
"tax_rates_used": [
{
"tax_rate": "0.08875",
"totals": {
"subtotal": "19900",
"discount": "0",
"tax": "1766",
"total": "21666"
}
}
],
"totals": {
"subtotal": "19900",
"tax": "1766",
"discount": "0",
"total": "21666",
"grand_total": "21666",
"fee": "1133",
"credit": "0",
"credit_to_balance": "0",
"balance": "0",
"earnings": "18767",
"currency_code": "USD"
},
"adjusted_totals": {
"subtotal": "19900",
"tax": "1766",
"total": "21666",
"grand_total": "21666",
"fee": "1133",
"earnings": "18767",
"currency_code": "USD"
},
"payout_totals": {
"subtotal": "19900",
"tax": "1766",
"discount": "0",
"total": "21666",
"credit": "0",
"credit_to_balance": "0",
"balance": "0",
"grand_total": "21666",
"fee": "1133",
"earnings": "18767",
"currency_code": "USD"
},
"adjusted_payout_totals": {
"subtotal": "19900",
"tax": "1766",
"total": "21666",
"fee": "1133",
"chargeback_fee": {
"amount": "0",
"original": null
},
"earnings": "18767",
"currency_code": "USD"
},
"line_items": [
{
"id": "txnitm_01h3kvj0wdxb2sk9kfbdev4td3",
"price_id": "pri_01gsz98e27ak2tyhexptwc58yk",
"quantity": 1,
"totals": {
"subtotal": "19900",
"tax": "1766",
"discount": "0",
"total": "21666"
},
"product": {
"id": "pro_01gsz97mq9pa4fkyy0wqenepkz",
"name": "Custom domains",
"description": "Make ChatApp truly your own with custom domains! Custom domains reinforce your brand identity and make it easy for your team to access ChatApp.",
"tax_category": "standard",
"image_url": "https://paddle-sandbox.s3.amazonaws.com/user/10889/SW3OevDQ92dUHSkN5a2x_icon3.png",
"custom_data": {
"crm_id": "ABC"
},
"status": "active"
},
"tax_rate": "0.08875",
"unit_totals": {
"subtotal": "19900",
"tax": "1766",
"discount": "0",
"total": "21666"
}
}
]
},
"payments": [
{
"payment_attempt_id": "2a130821-0b45-4ecc-b904-43751c3c6f3a",
"stored_payment_method_id": "badbd3d8-df98-4aa4-b7ba-5e9ad85b4488",
"amount": "21666",
"status": "captured",
"error_code": null,
"method_details": {
"type": "card",
"card": {
"type": "visa",
"last4": "4242",
"expiry_month": 1,
"expiry_year": 2026,
"cardholder_name": "Michael McGovern"
}
},
"created_at": "2023-06-23T10:07:22.168002Z",
"captured_at": "2023-06-23T10:07:24.494689Z"
}
],
"checkout": {
"url": "https://aeroedit.com/pay?_ptxn=txn_01h3kvj0hs5e3q1d53g5jnfbg3"
}
}
],
"meta": {
"request_id": "9aaac805-234b-4669-92f0-222bae87875b",
"pagination": {
"per_page": 30,
"next": "https://api.paddle.com/transactions?after=txn_01h3kvj0hs5e3q1d53g5jnfbg3&subscription_id=sub_01h3h3a9sfpr5syq38tq0sd4sp&origin=subscription_charge",
"has_more": false,
"estimated_total": 1
}
}
}

Events

transaction.created Occurs when a transaction is created.
subscription.updated Occurs when a subscription is updated.

Was this page helpful?