PayPal Payments Add-on for Code Craft Store (Django)
Take PayPal payments in the Django store with the Orders v2 API, server-side capture and verified webhooks

Everything included
- PayPal Orders v2 with server-side capture
- Captured amount and currency checked
- Webhooks verified with PayPal's API
- Sandbox and live modes
- Webhook URL shown in the admin
- Settings and licence key in Admin → Add-ons
From order to a live website
- 1
Buy the add-on
One-time price. Your download link and licence key arrive by email and in My Account.
- 2
Drop it in
Upload the folder to addons/, restart the app and enable it in the admin.
- 3
Take payments
Pick PayPal at checkout, approve the payment on PayPal and come back to a paid order. The store captures the payment itself, and a verified webhook also marks it paid.
What it does
Adds PayPal as a payment method to Code Craft Store: Django Ecommerce. The PayPal order is created on the server for the order total in the order's currency, the shopper approves it on PayPal, and the store captures it server-side and checks the captured amount and currency before marking the order paid. Webhooks are checked with PayPal's verify-webhook-signature API. Sandbox and live modes. You need your own PayPal business account. The add-on follows PayPal's Orders v2 documentation and was tested against mocked PayPal responses only, not with real payments.
- PayPal Orders v2 with server-side capture
- Captured amount and currency checked
- Webhooks verified with PayPal's API
- Sandbox and live modes
Requires Code Craft Store for Django
This is an add-on for Code Craft Store: Django Ecommerce, sold separately. Upload its folder to the store's addons/ folder, restart the app and configure it in Admin → Add-ons; no code changes needed. Each add-on has its own licence key.
- Works with Code Craft Store for Django 1.0 or later
- Installed in minutes on cPanel Python App or a VPS
- Its own settings card in the admin
Who needs it and what you need first
It is for shops running Code Craft Store: Django Ecommerce that sell abroad and want to accept PayPal, where shoppers pay with their PayPal balance or a card through PayPal. You need the store (1.0 or later) on Python 3.10 or later, a PayPal business account with a REST app on developer.paypal.com, and HTTPS for the webhook. There are no extra Python packages to install.
- PayPal business account and REST app
- Store 1.0+, Python 3.10+
- HTTPS domain for the webhook
Setting it up in PayPal and in your admin
Upload the paypal folder to addons/ and restart the app. On developer.paypal.com open Apps & Credentials, create an app (Sandbox while you test) and copy the Client ID and secret. In the app's webhooks add the address shown on the add-on's card in Admin → Add-ons, https://your-domain/addons/paypal/webhook/, with the event PAYMENT.CAPTURE.COMPLETED, and copy its Webhook ID. In the add-on's settings choose Sandbox or Live, paste the Client ID, client secret, Webhook ID and licence key, tick Enable and save. Then tick PayPal in Admin → Payment methods.
- Mode: Sandbox or Live
- Webhook address: /addons/paypal/webhook/
- Event: PAYMENT.CAPTURE.COMPLETED
What happens during a payment
When the shopper chooses PayPal, the add-on gets an OAuth token and creates a PayPal order (Orders v2) on the server for the total in the order's currency, at the rate stored on the order, and sends the shopper to PayPal to approve it. On return the store captures the payment server-side. The order is marked paid only when PayPal reports the capture COMPLETED with the same amount and currency as the order; zero-decimal currencies are sent as whole amounts. Webhook events count only after PayPal's own verify-webhook-signature API confirms them for your Webhook ID. An order that is already paid is not marked paid again.
- Capture done by your server
- Captured amount and currency checked
- Webhooks verified by PayPal
Honest limits
Its automated tests answer every PayPal call with a simulated response: creating the order, capturing on return, refusing a capture for the wrong amount, and accepting a webhook only after PayPal verifies it. It has never processed real money, so run a sandbox order with a PayPal sandbox buyer account first. Refunds and disputes are handled in your PayPal account. PayPal supports only some currencies, and INR only for Indian accounts.
- Simulated responses only
- Refunds are made in PayPal
- Check PayPal's currency list
After the payment: what you see in the admin
The order moves from pending to paid with a note naming PayPal and the payment reference, which is saved on the order, and the store emails the customer and you as it does for every status change. A webhook that reports a different amount or currency is ignored, so the order stays pending for you to check in your PayPal account. From there you handle the order as usual: processing, shipped with a tracking number and link, then delivered. An order that is already paid is never marked paid again.
- Payment reference saved on the order
- Status emails to the customer and you
- Mismatches leave the order pending
More ready-made websites
Built by the same team, with the same setup service and support.
Browse every ready-made website, or compare our custom website packages if you need a site designed from scratch. Want more guests to find you on Google Maps? See our local SEO service, or talk to our web design team.




