On this page
No Headings
Last updated: June 26, 2026
The PayPal Checkout integration supports a 2-step authorize and capture payment model.
Authorize a buyer's funds before you capture them, then settle the purchase later. An authorization places a hold on the funds and is valid for 29 days. For example, use authorize and capture to complete a task before finalizing the payment, such as verifying that you have the item in stock.
Important: Authorization and capture can incur merchant fees in some markets. For more information, see your PayPal User Agreement
Complete the steps in Get started to get your sandbox account login information and access token from the Developer Dashboard.
This feature modifies an existing PayPal Checkout integration and uses the following:
PayPal uses the following REST API credentials, which you can get from the developer dashboard:
You can use Postman to explore and test PayPal APIs. Learn more in our Postman guide.
The default approval intent of the JavaScript SDK is to both authorize the transaction and capture payment immediately. To split authorize and capture into separate actions, add &intent=authorize to the JavaScript SDK script tag, as shown in the following example:
<script
src="https://www.paypal.com/sdk/js?client-id=CLIENT_ID&intent=authorize">
</script>Before you authorize funds, you must create an order with the intent field set to AUTHORIZE.
Use the purchase_units/payee object to specify the end receiver of the funds.
After your buyer approves the order, you call the Authorize order endpoint of the Orders v2 API to authorize the buyer's funds.
Use the purchase_units/payee object to specify the end receiver of the funds.
curl -v -k -X POST https://api-m.paypal.com/v2/checkout/orders/5O190127TN364715T/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, PayPal recommends that you capture the funds within the 3-day honor period. Success of the capture is subject to risk and availability of funds on the authorized funding instrument.
Within the 29-day authorization period, you can issue multiple re-authorizations after the honor period expires. A re-authorization generates a new Authorization ID and restarts the honor period. Any subsequent capture should be performed on the new Authorization ID. If you do a re-authorization on the 27th day of the authorization, you get only 2 days of honor period.
You can capture less than the original authorization, full authorization amount, or even more than the authorization amount (up to 115% of the original authorization or $75 USD more, whichever is less).
Note: Orders can't be authorized until the status of the order is set to APPROVED. The order status is set to APPROVED when the buyer successfully completes the checkout flow.
When you are ready to capture the funds you authorized, call /v2/payments/authorizations/{authorization_id}/capture. You can retrieve the 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.
curl -v -X POST https://api-m.sandbox.paypal.com/v2/payments/authorizations/5O190127TN364715T/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"
}
}
]
}
}'payment_instruction/disbursement_mode field to specify when funds should be disbursed to the seller. To capture these funds and hold them before disbursing to the seller, see the Delay Disbursements guide.payment_instruction/platform_fees array to specify any fees you want to collect on this transaction. You must onboard your seller with the PARTNER_FEE feature to use this array.Authenticate cardholders through card issuers.
Learn more about the Payments API.
Cancel an authorized payment using the Payments API.
Hold funds before disbursement using the Orders and Payments APIs.
Refund a captured payment using the Payments API.