Completed transaction processing is more granular, with a new
paid status for transactions and a new
transaction.completed now has all the details you need for provisioning.
We added a new
paid value for
transaction.status. It occurs when a transaction is paid, but hasn't yet been fully processed by Paddle.
Status of this transaction.
As part of this, we added a corresponding
When a transaction is paid successfully, it starts completed transaction processing in Paddle. This involves:
- Logging details of the successful payment against
- Adding information about fees, earnings, and totals for payouts to the transaction entity.
- For automatically-collected transactions, creating a subscription for any recurring items and adding the related
subscription_idto the transaction entity.
- For automatically-collected transactions, adding an
invoice_idto the transaction entity.
For performance and reliability reasons, these processes happen asynchronously. This means that they don't occur at the same time that the transaction
status is updated to
completed, they usually happen immediately after.
paid status for transactions makes this process more granular:
- Transactions are marked as
paidafter payment is received successfully, but before transaction processing has completed.
- Transactions are marked as
completedafter transaction processing has completed.
When a transaction has the
completed, you can be sure it won't be updated further as part of completed transaction processing.
You can filter to see
paidtransactions, though transactions won't typically be
paidfor long — completed transaction processing usually takes less than a second.
The biggest impact is that
transaction.completed events now include everything you need for provisioning access to your app.
transaction.completed events occurred immediately after the transaction
status changed to
completed. This meant that the payload didn't include
invoice_number, since these fields are updated afterward as part of processing.
Here's a summary of events that occur when a transaction is completed. On the left, is the order before; on the right is the order now we've introduced
Paddle starts completed transaction processing, updating the transaction with information as it's processed. For automatically-collected transactions, Paddle adds the
subscription_idfor the newly created subscription for the recurring items on the transaction.
Paddle has finished completed transaction processing. The transaction won't be updated further as part of completed processing.
This change is available in version
1 of the Paddle API.
It's a non-breaking change, meaning it doesn't impact existing integrations.
transaction.updated events still occur when Paddle processes transactions after payment, so you can still use them to listen for
invoice_number, and other fields.