Get your credentials from Paddle
You need two things from Paddle: an API key and a client-side token.Choose the environment
Create an API key
Create a client-side token
Create the notification destination in Paddle
Add a destination
Enter the URL
Select the events
transaction.completedsubscription.activatedsubscription.resumedsubscription.canceledsubscription.paused
Copy the secret key
Add the credentials in MagicPost
Open the Paddle card
Enable it
Paste the credentials
- Live Paddle Client-side Token
- Live Paddle API Key
- Sandbox Paddle Client-side Token
- Sandbox Paddle API Key
Paste the secret key
Save
How payments work
All plans. Before opening checkout, MagicPost makes sure the plan exists in Paddle. It creates a Paddle Product and a Price once, and reuses them. Prepaid and Lifetime plans get a one-time price. Monthly and Yearly plans get a price that bills every month or every year. Prices use the tax setting of your Paddle account, and the product uses the standard tax category. MagicPost then creates a Paddle transaction for the customer’s email and opens the Paddle window. If the window does not appear, the page shows an Open Paddle button. After a successful payment, the page returns to MagicPost. MagicPost looks the transaction up in Paddle and records the order when Paddle reports it as completed, paid or billed. For Monthly and Yearly plans it creates the subscription from the transaction’s subscription ID, and for Lifetime plans it creates one from the transaction ID. Webhook.transaction.completedrecords the order if it has not been recorded yet. MagicPost needs the user and plan details it attached to the transaction.subscription.activatedandsubscription.resumedextend the subscriber’s period and renew the credit allowance.subscription.canceledandsubscription.pausedmark the subscription as cancelled.
subscription.updated. Cancelling a subscriber in MagicPost does not cancel the subscription in Paddle, so also cancel it in your Paddle dashboard.Currency
MagicPost sends the plan’s currency in uppercase. Amounts go to Paddle in the smallest unit (price multiplied by 100), except for BIF, CLP, DJF, GNF, ISK, JPY, KMF, KRW, PYG, RWF, UGX, VND, VUV, XAF, XOF and XPF, which are sent as whole amounts. Your Paddle account must support the plan’s currency.Test mode
Create a Paddle sandbox account, put its API key and client-side token in the two Sandbox fields, select Sandbox under Mode and save. MagicPost then calls Paddle’s sandbox API and loads the sandbox checkout. Create the notification destination in the sandbox too. Switch Mode back to Live before you sell.Common errors
This payment method is not available right now.
This payment method is not available right now.
We could not prepare this plan for Paddle billing. Please contact support.
We could not prepare this plan for Paddle billing. Please contact support.
Paddle could not start the payment. Please try again. / Paddle returned an unexpected response.
Paddle could not start the payment. Please try again. / Paddle returned an unexpected response.
storage/logs/laravel.log.The Paddle window does not open
The Paddle window does not open
Missing Paddle session reference. / Paddle transaction lookup failed. / Payment was not completed.
Missing Paddle session reference. / Paddle transaction lookup failed. / Payment was not completed.
Paddle shows the webhook failing with status 400
Paddle shows the webhook failing with status 400
invalid signature: Webhook Secret Key is not the secret of the destination that sent the event.
