On this page
No Headings
Last updated: June 18, 2026
Note: These instructions are available to US partners only. For all other countries, contact PayPal.
When you enable in-person pickup, you can capture the transaction on your platform even though payers and merchants meet offline to complete the purchase.
PPCP as the value of the products array.Note: This feature does not support seller protection because the payer can verify items before purchasing.
The default approval intent of the JavaScript SDK is to both authorize the transaction and capture funds immediately. To split authorize and capture into separate actions, add &intent=authorize to the JavaScript SDK script tag as follows:
<script
src="https://www.paypal.com/sdk/js?client-id=CLIENT_ID&intent=authorize">
</script>
Before you authorize funds, create an order and:
intent to AUTHORIZE.purchase_units/payee object.PICKUP_IN_PERSON.curl -v -X POST https://api-m.sandbox.paypal.com/v2/checkout/orders
-H 'Content-Type: application/json'
-H 'Authorization: Bearer ACCESS-TOKEN'
-H 'PayPal-Partner-Attribution-Id: BN-CODE'
-d '{
"intent": "AUTHORIZE",
"application_context" : {
"shipping_preference" : "SET_PROVIDED_ADDRESS"
},
"purchase_units": [
{
"amount": {
"currency_code": "USD",
"value": "10.00"
},
"payee": {
"email_address": "[email protected]"
},
"shipping" : {
"address": {
"address_line_1": "500 Hillside Street",
"address_line_2": "#100",
"admin_area_2": "San Jose",
"admin_area_1": "CA",
"postal_code": "95131",
"country_code": "US"
},
"type" : "PICKUP_IN_PERSON"
}
}
]
}'
After your payer approves the order, authorize the payer's funds.
Note: Orders can't be authorized until the status of the order is
APPROVED. The order status isAPPROVEDwhen the payer successfully completes checkout.
curl -v -k -X POST https://api-m.paypal.com/v2/checkout/orders/AUTHORIZATION-ID/authorize
-H 'PayPal-Partner-Attribution-Id: BN-CODE'
-H 'Authorization: Bearer ACCESS-TOKEN'
-H 'Content-Type: application/json'
-d '{}'
An authorization places a hold on the funds and is valid for 29 days. After a successful authorization, capture the funds within 3 days. Success of the capture is subject to risk and availability of funds on the authorized payment method.
If you don't capture funds within 3 days, you can issue multiple re-authorizations as long as the transaction is within the 29-day authorization period. A re-authorization generates a new authorization ID and restarts the 3-day timer. Capture funds on the new authorization ID.
If you re-authorize on the 27th day of the authorization period, you only have 2 days to capture payment.
You can capture less than the original authorization, the full authorization amount, or more than the authorization amount. If you capture more than the authorization amount, the limit is up to 115% of the original authorization or $75 USD, whichever is less.
Note: Orders can't be authorized until the status of the order is set to
APPROVED. The order status is set toAPPROVEDwhen the payer successfully completes the checkout flow.
When you are ready to capture the funds you authorized, call /v2/payments/authorizations/AUTHORIZATION-ID/capture, and:
authorization_id from the purchase_units/payments/authorizations/id field of the response from the previous step to authorize an order or from a show order details call.payment_instruction/platform_fees array to specify any fees you want to collect on this transaction.curl -v -X POST https://api-m.sandbox.paypal.com/v2/payments/authorizations/AUTHORIZATION-ID/capture
-H "Content-Type: application/json"
-H "Authorization: Bearer ACCESS-TOKEN"
-d '{
"payment_instruction": {
"disbursement_mode": "INSTANT",
"platform_fees": [
{
"amount": {
"currency_code": "USD",
"value": "2.00"
}
}
]
}
}'