Update a transaction
Updates a transaction using its ID.
You can update transactions that are draft
or ready
. billed
and completed
transactions are considered records for tax and legal purposes, so they can't be changed. You can either:
- Create an adjustment to record a refund or credit for a transaction.
- Cancel a
billed
transaction by sending a PATCH request to setstatus
tocanceled
.
The transaction status
may only be set to billed
or canceled
. Other statuses are set automatically by Paddle. Set a manually-collected transaction to billed
to mark it as finalized. This is essentially issuing an invoice. At this point, it becomes a legal record so you can't make changes to it. Paddle automatically assigns an invoice number, creates a related subscription, and sends it to your customer.
When making changes to items on a transaction, send the complete list of items that you'd like to be on a transaction — including existing items. For each item, send an object containing price_id
and quantity
. Paddle responds with the full price
object for each item. See: Work with lists
If successful, your response includes a copy of the updated transaction entity.
Path Parameters
Paddle ID of the transaction entity to work with.
Query Parameters
Include related entities in the response. Use a comma-separated list to specify multiple entities.
Request Body
Status of this transaction. You may set a transaction to billed
or canceled
. Billed transactions cannot be changed.
For manually-collected transactions, marking as billed
is essentially issuing an invoice.
Paddle ID of the customer that this transaction is for, prefixed with ctm_
.
Paddle ID of the address that this transaction is for, prefixed with add_
.
Paddle ID of the business that this transaction is for, prefixed with biz_
.
Your own structured key-value data.
Supported three-letter ISO 4217 currency code. Must be USD
, EUR
, or GBP
if collection_mode
is manual
.
How payment is collected for this transaction. automatic
for checkout, manual
for invoices.
Paddle ID of the discount applied to this transaction, prefixed with dsc_
.
Details for invoicing. Required if collection_mode
is manual
.
Whether the related transaction may be paid using a Paddle Checkout.
Customer purchase order number. Appears on invoice documents.
Notes or other information to include on this invoice. Appears on invoice documents.
How long a customer has to pay this invoice once issued.
Unit of time.
Amount of time.
Time period that this transaction is for. Set automatically by Paddle for subscription renewals to describe the period that charges are for.
RFC 3339 datetime string of when this period ends.
RFC 3339 datetime string of when this period starts.
Add a non-catalog price for a non-catalog product in your catalog to a transaction. In this case, the product and price that you're billing for are specific to this transaction.
Paddle ID of an existing catalog price to add to this transaction, prefixed with pri_
.
Quantity of this item on the transaction.
Paddle Checkout details for this transaction. You may pass a URL when creating or updating an automatically-collected transaction, or when creating or updating a manually-collected transaction where billing_details.enable_checkout
is true
.
Checkout URL to use for the payment link for this transaction. Pass the URL for an approved domain, or null
to set to your default payment URL.
Paddle returns a unique payment link composed of the URL passed or your default payment URL + _?txn=
and the Paddle ID for this transaction.
Response
Represents a transaction entity with included entities.
Unique Paddle ID for this transaction entity, prefixed with txn_
.
Status of this transaction. You may set a transaction to billed
or canceled
, other statuses are set automatically by Paddle. Automatically-collected transactions may return completed
if payment is captured successfully, or past_due
if payment failed.
Paddle ID of the customer that this transaction is for, prefixed with ctm_
.
Paddle ID of the address that this transaction is for, prefixed with add_
.
Paddle ID of the business that this transaction is for, prefixed with biz_
.
Your own structured key-value data.
Supported three-letter ISO 4217 currency code. Must be USD
, EUR
, or GBP
if collection_mode
is manual
.
Describes how this transaction was created.
Paddle ID of the subscription that this transaction is for, prefixed with sub_
.
Paddle ID of the invoice that this transaction is related to, prefixed with inv_
. Used for compatibility with the Paddle Invoice API, which is now deprecated. This field is scheduled to be removed in the next version of the Paddle API.
Invoice number for this transaction. Automatically generated by Paddle when you mark a transaction as billed
where collection_mode
is manual
.
How payment is collected for this transaction. automatic
for checkout, manual
for invoices.
Paddle ID of the discount applied to this transaction, prefixed with dsc_
.
Details for invoicing. Required if collection_mode
is manual
.
Time period that this transaction is for. Set automatically by Paddle for subscription renewals to describe the period that charges are for.
List of items on this transaction. For calculated totals, use details.line_items
.
Calculated totals for a transaction, including proration, discounts, tax, and currency conversion. Considered the source of truth for totals on a transaction.
List of payment attempts for this transaction, including successful payments. Sorted by created_at
in descending order, so most recent attempts are returned first.
Paddle Checkout details for this transaction. Returned for automatically-collected transactions and where billing_details.enable_checkout
is true
for manually-collected transactions; null
otherwise.
RFC 3339 datetime string of when this entity was created. Set automatically by Paddle.
RFC 3339 datetime string of when this entity was updated. Set automatically by Paddle.
RFC 3339 datetime string of when this transaction was marked as billed
. null
for transactions that are not billed
or completed
. Set automatically by Paddle.
Address for this transaction. Returned when the include
parameter is used with the address
value and the transaction has an address_id
.
Represents an adjustment entity.
Object containing totals for all adjustments on a transaction. Returned when the include
parameter is used with the adjustments_totals
value.
Business for this transaction. Returned when the include
parameter is used with the business
value and the transaction has a business_id
.
Customer for this transaction. Returned when the include
parameter is used with the customer
value and the transaction has a customer_id
.
Discount for this transaction. Returned when the include
parameter is used with the discount
value and the transaction has a discount_id
.
List of available payment methods for this transaction. Returned when the include
parameter is used with the available_payment_methods
value.
Information about this response.
Unique ID for the request relating to this response. Provide this when contacting Paddle support about a specific request.
12345678910111213141516171{
2 "discount_id": "dsc_01gtgztp8fpchantd5g1wrksa3",
3 "items": [
4 {
5 "quantity": 50,
6 "price_id": "pri_01gsz91wy9k1yn7kx82aafwvea"
7 },
8 {
9 "quantity": 1,
10 "price_id": "pri_01gsz96z29d88jrmsf2ztbfgjg"
11 },
12 {
13 "quantity": 1,
14 "price_id": "pri_01gsz98e27ak2tyhexptwc58yk"
15 }
16 ]
17}