Changes for version 0.003 - 2026-09-19
- WWW::PayPal::API::Webhooks (Notifications v1): new controller for webhook endpoint management and signature verification. verify() calls POST /v1/notifications/verify-webhook-signature and returns a real boolean (1 on SUCCESS, 0 on anything else including FAILURE — never truthy on the raw status string); croaks only on missing arguments or a transport/API error. create() registers an endpoint (event_types accepts bare event-name strings or {name=>...} hashrefs, mixed freely); list()/get()/delete() round out CRUD. New $pp->webhooks client attribute.
- WWW::PayPal::Webhook entity: id, url, event_names.
- WWW::PayPal::WebhookEvents: curated :all-exportable constants for the event-type strings the library's two flows need (order/capture, subscription lifecycle, dispute), including both PAYMENT_CAPTURE_DECLINED (Payments v2, what Orders v2 captures emit) and PAYMENT_CAPTURE_DENIED (Payments v1) as distinct events.
Modules
Perl client for the PayPal REST API
PayPal Checkout / Orders v2 API
PayPal Payments v2 API (captures, refunds, authorizations)
PayPal Billing Plans API (v1)
PayPal Catalogs Products API (v1)
PayPal Billing Subscriptions API (v1)
PayPal Webhooks API (v1) — management + signature verification
POD ERRORS
Hey! The above document had some coding errors, which are explained below:
Around line 3:
Non-ASCII character seen before =encoding in '—'. Assuming CP1252
PayPal Payments v2 capture entity
PayPal Orders v2 order entity
PayPal Billing Plan entity
PayPal Catalogs Product entity
PayPal Payments v2 refund entity
HTTP + OAuth2 role for the PayPal REST API
operationId-based dispatch against a cached OpenAPI spec
PayPal Billing Subscription entity
PayPal webhook (endpoint subscription) entity
Curated PayPal webhook event-name constants