Capture preauth payments
United States
Canada
Some transactions, like hotels and car rental companies, may authorize the initial cost of the service, and capture a different amount later, if additional charges are required, example: a guest uses the hotel mini bar, or a driver damages a rental car.
- First, a card is preauthorized for an initial amount.
- Later, the initial authorization can be incremented for additional amounts.
- Final amount—original plus any incremental amounts—is then captured at a later time.
Use the /v1/payments
endpoint to start the transaction on the Clover device.
NOTE
Incremental authorizations are only available for:
- Mastercard©, Discover©, and Visa© cards, and
- Merchant types—aircraft rentals, amusement parks, bicycle rentals, boat rentals, car rentals, cruise lines, drinking places, eating places, equipment rentals, lodgings, motor home rentals, motorcycle rentals, trailer parks/campgrounds, and truck rentals.
Prerequisites
- POS is connected to the device using a network or cloud connection.
- Clover device is in an idle state, that is, no payment is being taken.
Preauthorize without incremented amounts
For a preauthorization without incremented amounts:
- Construct a request with the minimum required data:
- The
amount
to be charged in cents. - The flag that indicates to not capture the charge.
- An
externalPaymentId
.
{
"amount": 50000,
"capture": false,
"externalPaymentId": "{externalPaymentId}"
}
- Send a POST request to the
/v1/payments
endpoint. - Required. Include the required headers for your request.
The payment flow is started for the specified amount. After the authorization is complete, a success message appears. - Store the returned
id
value. - When ready to finalize the transaction, construct a request with the final
amount
to charge:
{
"amount": 50000
}
- Send a POST request to
/v1/payments/{authId}/capture
, where{authId}
is theid
value you stored in step 4.
The preauthorization is captured and the finalpaymentId
is returned. - To return to the welcome screen, send a POST request to the
/v1/device/welcome
endpoint.
Preauthorize with incremented amounts
For a preauthorization with incremental amounts:
- Construct a request with the minimum required data:
- The
amount
to be charged in cents. - The flag that indicates not to capture the charge.
- An
externalPaymentId
.
{
"amount": 50000,
"capture": false
"externalPaymentId": "{externalPaymentId}"
}
- Send a POST request to the
/v1/payments
endpoint. - Required. Include the required headers for your request.
The payment flow is started for the specified amount. After the authorization is complete, a success message appears. - Store the returned
id
value. - Construct a request with the
amount
you want to increment:
{
"amount": 12000
}
- Send a POST request to the
/v1/payments/{paymentId}/increment
endpoint, where{paymentId}
is theid
value stored in step 4. - Required. Include the required headers for your request.
The incremented amount is added to the initial authorization amount. After the authorization is complete, a success message appears. - Construct a request with the final
amount
you want to capture:
{
"amount": 62000
}
- Send a POST request to
/v1/payments/{paymentId}/capture
, where{paymentId}
is theid
value stored in step 4.
The preauthorization is captured and the finalpaymentId
is returned. - To return to the welcome screen, send a POST request to the
/v1/device/welcome
endpoint.
Updated 2 months ago