{"result":{"depiction_url":null,"edges":{"subject":{"objects":[{"created":"2026-11-10T16:33:40Z","object_id":{"id":2555,"is_a":["categorization","keyword","keyword_information_type"],"name":"zotonic_topic_reference","title":"Reference","uri":"https:\/\/zotonic.com\/id\/2555"},"seq":1},{"created":"2026-11-10T16:33:40Z","object_id":{"id":2562,"is_a":["categorization","keyword","keyword_audience"],"name":"zotonic_topic_site_administrator","title":"Site administrator","uri":"https:\/\/zotonic.com\/id\/2562"},"seq":2},{"created":"2026-11-10T16:33:40Z","object_id":{"id":2564,"is_a":["categorization","keyword","keyword_audience"],"name":"zotonic_topic_backend_developer","title":"Backend developer","uri":"https:\/\/zotonic.com\/id\/2564"},"seq":3},{"created":"2026-11-10T16:33:40Z","object_id":{"id":2599,"is_a":["categorization","keyword","keyword_domain"],"name":"zotonic_topic_api_and_integration","title":"API and integration","uri":"https:\/\/zotonic.com\/id\/2599"},"seq":4},{"created":"2026-11-10T16:33:40Z","object_id":{"id":2603,"is_a":["categorization","keyword","keyword_domain"],"name":"zotonic_topic_configuration","title":"Configuration","uri":"https:\/\/zotonic.com\/id\/2603"},"seq":5},{"created":"2026-11-10T16:33:40Z","object_id":{"id":2635,"is_a":["categorization","keyword","keyword_architecture"],"name":"zotonic_topic_module","title":"Module","uri":"https:\/\/zotonic.com\/id\/2635"},"seq":6},{"created":"2026-11-10T16:33:40Z","object_id":{"id":3121,"is_a":["categorization","keyword","keyword_domain"],"name":"zotonic_topic_payments","title":"Payments","uri":"https:\/\/zotonic.com\/id\/3121"},"seq":7}],"predicate":{"id":308,"is_a":["meta","predicate"],"name":"subject","title":{"_type":"trans","tr":{"en":"Keyword"}},"uri":"http:\/\/purl.org\/dc\/elements\/1.1\/subject"}}},"export_revision":15,"id":3172,"is_a":["text","documentation","reference","module"],"links":[{"rel":"self","target":"https:\/\/zotonic.com\/.zotonic\/websub\/topic\/3172"},{"rel":"hub","target":"https:\/\/zotonic.com\/.zotonic\/websub"}],"medium":null,"medium_url":null,"name":"doc_external_16_mod_payment_paypal","page_url":{"en":"https:\/\/zotonic.com\/docs\/3172\/mod_payment_paypal","x-default":"https:\/\/zotonic.com\/docs\/3172\/mod_payment_paypal"},"preview_url":null,"resource":{"version":1,"pivot_location_lat":null,"title":"mod_payment_paypal","is_authoritative":true,"body":"<p>Provide PayPal Orders checkout through <code>mod_payment<\/code>.<\/p>\n<p>Enable this module together with <code>mod_payment<\/code>. Select it with\n<code>#payment_request{preferred_psp_module = mod_payment_paypal}<\/code>. Recurring checkout\ncreation is not supported.<\/p>\n<h2>Site configuration<\/h2>\n<p>Use <strong>System → Payment configuration<\/strong> with <code>use.mod_admin_config<\/code> to set:<\/p>\n<ul><li><code>is_live<\/code>: use PayPal live instead of sandbox; defaults to false.<\/li><li><code>client_id<\/code> and <code>secret<\/code>: REST API credentials for that environment.<\/li><li><code>webhook_id<\/code>: the ID of the PayPal webhook registered for <code>\/paypal\/webhook<\/code>,\nused when verifying incoming signatures.<\/li><li><code>enable_reporting_polling<\/code>: opt into Transaction Search discovery. Defaults to\nfalse and requires the additional <code>reporting\/search\/read<\/code> permission.<\/li><\/ul>\n<p>The return route <code>\/paypal\/ready\/:payment_nr<\/code> captures approved orders. Cancellation\nuses signed state and checks the remote order before changing local status.\nWebhooks are verified through PayPal before passing supported events to the shared\npayment receive logic.<\/p>\n<p>Unknown-payment imports require <code>mod_payment.accept_unknown_payments<\/code>. Four-hour\nreporting discovery also requires <code>enable_reporting_polling<\/code> and an unset\/false\n<code>mod_payment.disable_unknown_payment_polling<\/code>. It selects positive payment\ntransactions within the retention window, not every account ledger entry.\nOrdinary checkout and webhooks do not require the reporting option.<\/p>","slug":"mod_payment_paypal","doc_module_config":[{"default":"false","description":"Discover account payments using Transaction Search; requires the extra reporting\/search\/read permission.","has_default":true,"key":"enable_reporting_polling","module":"mod_payment_paypal","type":"boolean"},{"default":"false","description":"Use the live PayPal checkout environment instead of the sandbox environment.","has_default":true,"key":"is_live","module":"mod_payment_paypal","type":"boolean"},{"default":"&lt;&lt;&gt;&gt;","description":"PayPal REST API client id.","has_default":true,"key":"client_id","module":"mod_payment_paypal","type":"binary"},{"default":"&lt;&lt;&gt;&gt;","description":"PayPal REST API secret.","has_default":true,"key":"secret","module":"mod_payment_paypal","type":"binary"},{"default":"&lt;&lt;&gt;&gt;","description":"PayPal webhook id, used for webhook signature verification.","has_default":true,"key":"webhook_id","module":"mod_payment_paypal","type":"binary"}],"is_protected":false,"visible_for":0,"tz":"UTC","language":["en"],"doc_source_hash":"b966cd1a68bc5e7a2aacb1c2153c0a18839cc8092614c9d714a7b5cd1ec1d03f","doc_module_observers":[{"name":"payment_psp_poll","page_name":"doc_notification_payment_psp_poll"},{"name":"payment_psp_request","page_name":"doc_notification_payment_psp_request"},{"name":"payment_psp_status_sync","page_name":"doc_notification_payment_psp_status_sync"},{"name":"payment_psp_view_url","page_name":"doc_notification_payment_psp_view_url"}],"is_featured":false,"content_group_id":{"id":2551,"is_a":["meta","content_group"],"name":"content_group_imported_docs","title":"Imported documentation","uri":"https:\/\/zotonic.com\/id\/content_group_imported_docs"},"external_module_id":{"id":16,"is_a":[],"name":null,"title":null,"uri":"https:\/\/zotonic.com\/id\/16"},"git_url":"https:\/\/github.com\/zotonic\/zotonic_mod_payment_paypal","category_id":{"id":320,"is_a":["meta","category"],"name":"module","title":"Modules","uri":"https:\/\/test.zotonic.com\/id\/320"},"doc_source_path":".\/src\/mod_payment_paypal.erl","publication_start":"2026-11-10T16:33:40Z","github_url":"https:\/\/github.com\/zotonic\/zotonic_mod_payment_paypal","pivot_location_lng":null,"doc_source_kind":"external","name":"doc_external_16_mod_payment_paypal","is_unfindable":false,"is_published":true,"pivot_geocode":null,"external_module_title":"Payment module for PayPal","created":"2026-11-10T16:33:40Z","uri":null,"doc_status":"current","is_dependent":false,"is_external_module":true,"publication_end":"9999-06-01T00:00:00Z","modifier_id":{"id":1,"is_a":["person"],"name":"administrator","title":"Site Administrator","uri":"https:\/\/zotonic.com\/id\/1"},"privacy":0,"doc_source_commit":"4ddce7233387a5d9ac2a4ea02eec598a7b4f9398","creator_id":{"id":1,"is_a":["person"],"name":"administrator","title":"Site Administrator","uri":"https:\/\/zotonic.com\/id\/1"},"modified":"2026-11-10T16:33:40Z","title_slug":"mod_payment_paypal"},"uri":"https:\/\/zotonic.com\/id\/3172","uri_template":"https:\/\/zotonic.com\/id\/:id","version":15,"websub":{"hub":"https:\/\/zotonic.com\/.zotonic\/websub","topic":"https:\/\/zotonic.com\/.zotonic\/websub\/topic\/3172"}},"status":"ok"}