On this page
No Headings
Last updated: July 8, 2026
The Contact Module helps buyers view and modify the email and phone number shared with merchants for a given order. It offers greater flexibility and control to buyers, particularly for gift orders where buyers need to specify alternative contact details.
The Contact Module is currently available in the US only.
Merchants can set a contact preference to control what contact information buyers see when reviewing PayPal checkout.
PayPal supports three contact preference options:
NO_CONTACT_INFO: Default. Buyers do not see any contact information during checkout.UPDATE_CONTACT_INFO: Buyers can see and edit their contact information.RETAIN_CONTACT_INFO: Buyers can see their contact information, but can't edit them.The Orders API manages contact information as part of the purchase_units[].shipping object in the email_address field and the phone_number object when an order is created.
Use buyer contact information from PayPal or the merchant site.
This setting is default.
If a merchant prefers not to display contact information to buyers during checkout, the merchant can use NO_CONTACT_INFO, or omit payment_source.paypal.experience_context.contact_preference.
Even if the merchant provides contact information, PayPal will not display it to buyers if NO_CONTACT_INFO is enabled.
If a merchant wants to show editable contact information to buyers, the merchant uses UPDATE_CONTACT_INFO. After a buyer updates their details, the merchant sees the latest email and phone number. The merchant should use the latest information to communicate with their buyers.
UPDATE_CONTACT_INFO allows the buyer to edit both their phone number and email in PayPal. Individual edit preferences are not supported.
In the collapsed view, the Contact Module shows the primary email and phone number from the buyer's profile. If the merchant does not provide information, the PayPal profile information is used by default.
When expanded, the Contact Module displays:
In your call to the Orders API, set payment_source.paypal.experience_context.contact_preference to UPDATE_CONTACT_INFO.
If you pass information in purchase_units[].shipping.email_address and purchase_units[].shipping.phone_number, you see these values in the create order response and the get order API call after the buyer approves the transaction. This information is displayed and editable to the buyer during PayPal checkout.
curl -v -X POST https://api-m.sandbox.paypal.com/v2/checkout/orders \
-H 'Content-Type: application/json' \
-H 'PayPal-Request-Id: REQUEST-ID' \
-H 'Authorization: Bearer ACCESS-TOKEN' \
-d '{
"intent": "CAPTURE",
"payment_source": {
"paypal": {
"experience_context": {
"shipping_preference": "SET_PROVIDED_ADDRESS",
"contact_preference": "UPDATE_CONTACT_INFO",
"user_action": "PAY_NOW",
"return_url": "https://example.com/returnUrl",
"cancel_url": "https://example.com/cancelUrl"
}
}
},
"purchase_units": [
{
"amount": {
"currency_code": "USD",
"value": "64.00"
},
"shipping": {
"name": {
"full_name": "Firstname Lastname"
},
"email_address": "[email protected]",
"phone_number": {
"country_code": "1",
"national_number": "5555555555"
},
"address": {
"address_line_1": "123 Main St.",
"admin_area_2": "Anytown",
"admin_area_1": "CA",
"postal_code": "12345",
"country_code": "US"
}
}
}
]
}'When buyers edit their contact details and check out with PayPal, call the Orders API to retrieve the latest contact information. This ensures you have access to the buyer's details as captured during PayPal checkout.
The sample response shows updated buyer details.
curl -v -X GET https://api-m.sandbox.paypal.com/v2/checkout/orders/ORDER-ID \
-H 'Authorization: Bearer ACCESS-TOKEN'If a merchant wants to show contact information to buyers without allowing them to edit it, merchants use the RETAIN_CONTACT_INFO setting.
The merchant collects the buyer's email address and phone number on their website and includes them in the create order call using purchase_units[].shipping.email_address and purchase_units[].shipping.phone_number.
Set payment_source.paypal.experience_context.contact_preference to RETAIN_CONTACT_INFO in your Orders API request.
RETAIN_CONTACT_INFO is set without passing any contact details, PayPal defaults to NO_CONTACT_INFO and hides all contact information from the buyer.Buyers can view the contact information provided but cannot edit it. Only the values passed in the Orders API call are displayed.
curl -v -X POST https://api-m.sandbox.paypal.com/v2/checkout/orders \
-H 'Content-Type: application/json' \
-H 'PayPal-Request-Id: REQUEST-ID' \
-H 'Authorization: Bearer ACCESS-TOKEN' \
-d '{
"intent": "CAPTURE",
"payment_source": {
"paypal": {
"experience_context": {
"shipping_preference": "SET_PROVIDED_ADDRESS",
"contact_preference": "RETAIN_CONTACT_INFO",
"user_action": "PAY_NOW",
"return_url": "https://example.com/returnUrl",
"cancel_url": "https://example.com/cancelUrl"
}
}
},
"purchase_units": [
{
"amount": {
"currency_code": "USD",
"value": "64.00"
},
"shipping": {
"name": {
"full_name": "Firstname Lastname"
},
"email_address": "[email protected]",
"phone_number": {
"country_code": "1",
"national_number": "5555555555"
},
"type": "SHIPPING",
"address": {
"address_line_1": "123 Main St.",
"admin_area_2": "Anytown",
"admin_area_1": "CA",
"postal_code": "12345",
"country_code": "US"
}
}
}
]
}'