On this page
No Headings
Last updated: July 21, 2026
This page explains the best practices and core concepts that drive authorization, risk, and liability for card payments in Expanded Checkout.
It is written for payments and backend engineers who are familiar with card-not-present processing, issuers and acquirers, and REST APIs. It focuses on elements that shape system behavior, such as data quality, 3D Secure, stored credentials, retry patterns, and related signals. It does not include step-by-step integration flows or SDK usage.
Passing complete and accurate cardholder data is the most impactful step a partner or merchant can take to improve authorization rates. Card issuers use this data to make real-time approval decisions. Incomplete data increases false declines.
The Expanded Checkout authorization model assumes the issuer receives a complete cardholder profile. The fields below are the minimum set required for the issuer to evaluate risk correctly.
| Data field | API location |
|---|---|
| Cardholder name | payment_source.card.name |
| Billing address – street | payment_source.card.billing_address.address_line_1 |
| Billing address – city | payment_source.card.billing_address.admin_area_2 |
| Billing address – postal code | payment_source.card.billing_address.postal_code |
| Expiration date | payment_source.card.expiry |
| CVV/Security code | payment_source.card.security_code |
| Customer first name | payment_source.card.attributes.customer.name.given_name |
| Customer last name | payment_source.card.attributes.customer.name.surname |
The following fields are not required but improve risk scoring and authorization outcomes:
| Data field | API location | Notes |
|---|---|---|
| Email address | payment_source.card.attributes.customer.email_address | |
| Phone number | payment_source.card.attributes.customer.phone.phone_number | Mobile preferred |
| IP address | purchase_units[n].supplementary_data.risk.customer.ip_address | Critical for fraud detection |
| Shipping address | purchase_units[n].shipping.address | Reduces risk signals |
AVS compares the billing address provided by the customer with the address on file at the card issuer. A complete billing address is a prerequisite for AVS to act as a reliable fraud signal. Issuers use AVS as one of the primary indicators to distinguish legitimate mismatches from fraud. In Expanded Checkout, feed AVS codes into your decisioning model as nuanced signals rather than a pass or fail switch.
Best Practice: For non-matching AVS responses, prompt the customer to re-verify their billing address before declining the transaction.
| AVS code | Meaning | Recommended action |
|---|---|---|
Y | Street and ZIP match | Proceed |
A | Street matches, ZIP does not | Proceed with caution |
Z | ZIP matches, street does not | Proceed with caution |
N | Neither matches | Prompt customer to verify address |
U | Unavailable | Proceed (not merchant fault) |
Issuers outside the US, Canada, and the UK do not consistently support AVS.
If you use AVS filters in your fraud-prevention systems, collect the billing street and postal code so AVS can be evaluated when available.
3D Secure (3DS) is an authentication protocol that adds a verification layer for card-not-present transactions. Correct implementation is critical for liability shift protection, regulatory compliance (EU PSD2/SCA), and fraud reduction.
For more information, see:
Think of 3DS as a policy switch. You trade a small amount of friction for a significant liability and fraud-reduction benefit in certain scenarios.
Always check liability_shift first when handling a 3DS response.
In Expanded Checkout, liability_shift is the primary conceptual signal: it tells you whether the issuer or the merchant is expected to absorb fraud losses for this transaction class. Your risk policies should key off this value, not just the presence of 3DS.
See 3D Secure Response Parameters for more information.
Frictionless authentication (no customer challenge) provides the best conversion outcome. Increasing the frictionless rate may lead to higher authorization and completion rates because fewer customers drop out during additional challenges.
To maximize frictionless flow, send the following data in your 3DS request:
Stored credentials (card-on-file) extend a one-time card payment into an ongoing, reusable payment relationship. The way you represent customer-initiated transactions (CIT) and merchant-initiated transactions (MIT) in Expanded Checkout affects authorization rates and customer experience.
Merchant-initiated authorization can improve significantly when CIT and MIT flags are set correctly and you pass the appropriate network transaction references.
See SCA payment indicators for more information on Strong Customer Authentication.
A CIT occurs when the customer is actively participating in the checkout, such as one-click checkout with a saved card. In most Expanded Checkout integrations, the customer completes 3D Secure authentication on the first transaction before storing credentials for future use. Initial authentication improves MIT authorization and shifts liability away from the merchant.
stored_credential.payment_initiator = CUSTOMER.stored_credential.payment_type = ONE_TIME or RECURRING.network_transaction_reference returned from the first CIT response. You need this value for all future MITs.A MIT is an automated charge without active customer participation, such as a subscription renewal or auto-top-up. Successful MIT behavior depends on carrying forward a trusted reference to the original CIT.
previous_transaction_reference from the original CIT. Missing references reduce MIT authorization rates.stored_credential.payment_initiator = MERCHANT.stored_credential.usage = SUBSEQUENT.stored_credential.payment_type = RECURRING or UNSCHEDULED.In Expanded Checkout, network transaction references carry the history of a cardholder's prior approvals. Use the strongest available reference to improve MIT authorization rates.
First Priority: previous_transaction_reference (from PayPal CIT)
Second Priority: previous_network_transaction_reference (from a non-PayPal PSP)
Expanded Checkout exposes issuer and system response codes as signals, not just errors. Proper response code handling determines when to retry, when to switch payment methods, and when to stop the flow. It also shapes how you communicate with customers and protects your overall authorization rates.
Soft declines represent temporary or recoverable conditions where a retry may succeed if you adjust timing, amount, or funding source.
| Response code | Reason | Retry? | Timing | Customer message |
|---|---|---|---|---|
CARD_DECLINED | Generic decline | Once | Immediate, then 24h | "Your card was declined. Please try again or use a different payment method." |
INSUFFICIENT_FUNDS | Not enough funds | Yes | 24–72 hours | "Insufficient funds. Please try a different card or try again later." |
ISSUER_UNAVAILABLE | Bank system down | Yes | Exponential backoff | "Your bank is temporarily unavailable. Please try again." |
TRANSACTION_LIMIT_EXCEEDED | Velocity/amount limit | Yes | 1–4 hours | "Transaction limit exceeded. Please try a smaller amount or contact your bank." |
Hard declines indicate a terminal decision from the issuer or scheme. Additional retries with the same card are unlikely to succeed and can add risk or noise.
| Response code | Reason | Action |
|---|---|---|
SUSPECTED_FRAUD | Fraud detection triggered | Request alternate payment method immediately. Never retry. |
LOST_STOLEN_CARD | Card reported lost or stolen | Block card, request new payment method. Never retry. |
CARD_EXPIRED | Card past expiration | Prompt customer to update card details. Use Account Updater to prevent. |
DO_NOT_HONOR | Issuer generic block | Request a different payment method. Never retry with same card. |
INVALID_ACCOUNT | Card number invalid or closed | Request new payment method. |
SECURITY_VIOLATION | Security policy violation | Request new payment method. |
PICKUP_CARD_SPECIAL_CONDITIONS | Issuer fraud block | Request new payment method. |
ACCOUNT_CLOSED | Payer account closed | Request new payment method. |
| Response code | Retry strategy |
|---|---|
INTERNAL_SERVER_ERROR | Exponential backoff. Reuse same idempotency key. |
GATEWAY_TIMEOUT | Immediate retry 2–3 times. Reuse same idempotency key. |
RATE_LIMITED | Exponential backoff (10s, 30s, 1m, 5m). Implement throttling. |
Do:
Do not:
Security note: Revealing fraud logic helps fraudsters circumvent detection systems. Always use generic messaging for fraud-related declines.
Payments that are initially declined may be soft declines that can succeed on retry. A well-implemented retry strategy can recover significant revenue, particularly for subscription businesses.
Idempotency keys are the core mechanism that lets Expanded Checkout support safe retries without creating duplicate charges.
For recurring billing failures, use a graduated retry schedule with customer communications at each step. Expanded Checkout does not enforce a specific retry schedule. The following pattern illustrates a common approach that balances recovery and customer experience for recurring payments:
| Day | Action | Communication |
|---|---|---|
| Day 0 | Initial charge attempt | — |
| Day 1 | Retry #1 | Soft notification: "We'll try again soon." |
| Day 3 | Retry #2 | Moderate urgency: "Please verify your payment method." |
| Day 7 | Retry #3 | High urgency: "Service may be suspended." Suspend service. |
| Day 14 | Final retry #4 | Cancellation notice if declined. |
Stored cards introduce risks when they stop working after reissues, expirations, or other card updates. This section explains how network tokenization and the real-time account updater help keep stored payment methods usable over time while reducing declines.
Network tokenization replaces a card's Primary Account Number (PAN) with a network-issued token that remains valid even when the physical card expires or is reissued.
Implementation options:
RTAU proactively updates stored card information when cards are replaced, expired, or reissued by the card issuer. This can improve auth rates on recurring and stored-credential transactions.
RTAU is valuable for:
See Real-Time Account Updater Documentation for more information.
This section outlines the key security and compliance expectations for integrating with Expanded Checkout.
Expanded Checkout integrations must follow PayPal's current HTTPS and TLS standards for all API traffic. For the latest requirements on supported TLS versions, cipher suites, and certificate expectations, see:
Implement multiple layers of fraud prevention to protect your integration and your customers:
This section describes how to use monitoring and diagnostics to understand Expanded Checkout behavior and authorization patterns in production.
| Decline category | Acceptable % of total declines | Action if exceeded |
|---|---|---|
| Insufficient Funds | < 30% | Normal — optimize retry strategy |
| Suspected Fraud | < 10% | Review fraud rules and data quality |
| Card Expired | < 5% | Enable Real-Time Account Updater |
| AVS/CVV Failure | < 5% | Improve data collection at checkout |
| System Errors | < 2% | Investigate technical issues |
Set up real-time alerting for the following thresholds:
Webhooks are mandatory for production integrations. They are required because customers may not return to the success page, and many payment events are asynchronous, such as 3D Secure authentication, Automated Clearing House (ACH) payments, and disputes.
2xx status within 5–10 seconds.| Event | Action |
|---|---|
PAYMENT.CAPTURE.COMPLETED | Fulfill the order. |
PAYMENT.CAPTURE.DENIED | Cancel order, notify customer. |
PAYMENT.CAPTURE.REFUNDED | Notify customer of refund. |
CUSTOMER.DISPUTE.CREATED | Gather evidence immediately. |
| Term | Definition |
|---|---|
| AVS | Address Verification Service: validates billing address against issuer records |
| CIT | Customer-Initiated Transaction: customer is actively present at checkout |
| CVV/CVC | Card Verification Value/Code: 3–4 digit security code on the card |
| 3DS | 3D Secure: authentication protocol for card-not-present transactions |
| Idempotency | Property ensuring the same operation produces the same result when repeated |
| MIT | Merchant-Initiated Transaction: automated charge without active customer participation |
| PAN | Primary Account Number: the full card number |
| PSD2 | Payment Services Directive 2: EU regulation requiring Strong Customer Authentication |
| RTAU | Real-Time Account Updater: automatic card detail refresh on stored payment methods |
| SCA | Strong Customer Authentication: PSD2 two-factor authentication requirement |