# mod\_payment\_paypal

Source: https://zotonic.com/docs/3172/mod_payment_paypal

URI: https://zotonic.com/id/3172

Language: en



Provide PayPal Orders checkout through `mod_payment`.

Enable this module together with `mod_payment`. Select it with `#payment_request{preferred_psp_module = mod_payment_paypal}`. Recurring checkout creation is not supported.

Site configuration
------------------

Use **System → Payment configuration** with `use.mod_admin_config` to set:

- `is_live`: use PayPal live instead of sandbox; defaults to false.
- `client_id` and `secret`: REST API credentials for that environment.
- `webhook_id`: the ID of the PayPal webhook registered for `/paypal/webhook`, used when verifying incoming signatures.
- `enable_reporting_polling`: opt into Transaction Search discovery. Defaults to false and requires the additional `reporting/search/read` permission.

The return route `/paypal/ready/:payment_nr` captures approved orders. Cancellation uses signed state and checks the remote order before changing local status. Webhooks are verified through PayPal before passing supported events to the shared payment receive logic.

Unknown-payment imports require `mod_payment.accept_unknown_payments`. Four-hour reporting discovery also requires `enable_reporting_polling` and an unset/false `mod_payment.disable_unknown_payment_polling`. It selects positive payment transactions within the retention window, not every account ledger entry. Ordinary checkout and webhooks do not require the reporting option.

License: 

Attribution: 

Related resources: https://zotonic.com/api/agent/related/3172?language=en


## API access

- [API help](<https://zotonic.com/api-help>)
- [OpenAPI specification](<https://zotonic.com/openapi.json>)
- [This resource as JSON](<https://zotonic.com/api/agent/resource/3172?language=en>)
