Skip to main content

Feature Test Matrix

Status of each PayPal capability in Sandbox. This is the working checklist used to decide the checkout layer. All statuses start at Not tested.

Status legend​

StatusMeaning
Not testedNo test executed yet
Ready (probe)Implemented in paypal-sandbox/paypal-test.mjs, awaiting credentials
PassTested successfully in Sandbox
FailTested, returned an error
BlockedRequires approval, buyer login, or is region-gated
PartialWorks with manual/browser steps

Matrix​

IDFeatureAPI / MethodRevenue shapeTest methodStatusNotes
AUTH-01OAuth2 tokenPOST /v1/oauth2/tokenAllAPIPassexpires_in=32400s
AUTH-02Token introspectionPOST /v1/oauth2/token/introspectAllAPINot tested
ORD-01Create orderPOST /v2/checkout/ordersDigital packsAPIPassorder 5L956427BL826910K, status CREATED
ORD-02Get orderGET /v2/checkout/orders/{id}AllAPINot tested
ORD-03Capture orderPOST /v2/checkout/orders/{id}/captureDigital packsAPI + buyerNot testedBuyer approval
ORD-04Authorize orderPOST /v2/checkout/orders/{id}/authorizeServicesAPI + buyerNot testedBuyer approval
ORD-05Void authorization/v2/payments/authorizations/{id}/voidServicesAPINot tested
ORD-06Capture authorized payment/v2/payments/authorizations/{id}/captureServicesAPINot tested
PAY-01Refund capturePOST /v2/payments/captures/{id}/refundAllAPINot tested
PAY-02Get capture detailsGET /v2/payments/captures/{id}ReportingAPINot tested
CAT-01Create productPOST /v1/catalogs/productsMembershipsAPIPassproduct PROD-5BT193075G744534P
CAT-02List productsGET /v1/catalogs/productsMembershipsAPINot tested
SUB-01Create planPOST /v1/billing/plansMembershipsAPIPassplan P-7JC06884FP1949709NKTJUNQ, USD only
SUB-02List plansGET /v1/billing/plansMembershipsAPIPasscount=1
SUB-03Create subscriptionPOST /v1/billing/subscriptionsMembershipsAPI + buyerNot testedBuyer approval
SUB-04Get / list subscriptionsGET /v1/billing/subscriptionsMembershipsAPINot tested
SUB-05Cancel subscription/v1/billing/subscriptions/{id}/cancelMembershipsAPINot testedAccess revoke
SUB-06Suspend / activate/v1/billing/subscriptions/{id}/suspendMembershipsAPINot tested
SUB-07List subscription transactions/v1/billing/subscriptions/{id}/transactionsMembershipsAPINot testedReconciliation
SUB-08Trials / setup feesPlan overridesMembershipsAPINot tested
INV-01Create draft invoicePOST /v2/invoicing/invoicesServicesAPIFailNOT_AUTHORIZED — invoicing not enabled for app/account
INV-02List / search invoicesGET /v2/invoicing/invoicesServicesAPINot tested
INV-03Send / remind invoice/v2/invoicing/invoices/{id}/sendServicesAPINot tested
INV-04Cancel invoice/v2/invoicing/invoices/{id}/cancelServicesAPINot tested
INV-05Record payment/v2/invoicing/invoices/{id}/paymentsServicesAPINot testedOut-of-band
INV-06QR code/v2/invoicing/invoices/{id}/generate-qr-codeServicesAPINot tested
RPT-01BalancesGET /v1/reporting/balancesReportingAPINot tested
RPT-02Transaction searchGET /v1/reporting/transactionsReportingAPINot tested
PAYOUT-01Single payoutPOST /v1/payments/payoutsOutboundAPINot testedApproval-gated
PAYOUT-02Batch payoutPOST /v1/payments/payoutsOutboundAPINot testedApproval-gated
WBH-01Create webhook/v1/notifications/webhooksAllAPINot testedFulfillment
WBH-02Verify signature/v1/notifications/verify-webhook-signatureAllAPINot testedSecurity
WBH-03List event types/v1/notifications/webhooks-event-typesAllAPINot tested
WBH-04Simulate eventWebhook simulatorAllDashboardNot testedNo real payment
DSP-01List disputesGET /v1/customer/disputesAllAPINot tested
VAULT-01Store payment method/v1/vault/...MembershipsAPINot testedApproval-gated
IDN-01Log in with PayPalOIDCAllBrowserNot tested

Test log​

DateIDResultEnvironmentDetail
2026-09-13AUTH-01, ORD-01, CAT-01, SUB-01, SUB-02PassSandbox / USDpaypal-test.mjs, 5/6 checks passed
2026-09-13INV-01FailSandbox / USDNOT_AUTHORIZED — Invoicing not enabled for the app/account

How a feature gets tested​

  1. Pick an ID from the matrix.
  2. Implement or extend the call in paypal-sandbox/paypal-test.mjs (or use the Dashboard / API Explorer for browser-only steps).
  3. Run the probe against Sandbox.
  4. Record the result in the Test log and update the matrix Status.