payments
PayPal Errors
PayPal Payments API errors are returned as `name` + `message` + `details` triples. Common production failures: INSTRUMENT_DECLINED (card declined), AUTHENTICATION_FAILURE (expired OAuth token), VALIDATION_ERROR, RATE_LIMIT_REACHED.
PayPal uses OAuth 2.0 client credentials — bearer tokens expire (~9h) and need refresh, which is the single most common PayPal integration bug. Errors come as 4xx/5xx with structured JSON body containing `name`, `message`, `debug_id`, and `details[]`. Sandbox uses separate environment with sandbox buyer/seller accounts. Webhook verification uses asymmetric signatures (PayPal signs, you verify) — more moving parts than Stripe's HMAC.
Official docs
https://developer.paypal.com/api/rest/reference/orders/v2/errors/
Status page
https://www.paypal-status.com/
Support
https://www.paypal.com/businessmanage/account/help