Capturing preauth payments

Some transactions, like hotels and car rental companies may authorize the initial cost of the service and then capture a different amount later if additional charges are required (for example, use of the hotel mini bar by a guest or damage done to a rental car by the driver). First, a card is preauthorized for an initial amount. Later, the initial authorization can be incremented for additional amounts. The 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 Visa, Mastercard, and Discover cards and for the following 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

  • The POS is connected to the device using a network or cloud connection
  • The Clover device is in an idle state (that is, no payment is being taken)

Preauthorization without incremented amounts

For a preauthorization without incremented amounts, do the following:

  1. Construct a request with the minimum required data (the amount to be charged in cents, a flag to indicate the charge should not be captured, and an externalPaymentId).
{
  "amount": 50000,
  "capture": false,
  "externalPaymentId": "{externalPaymentId}"
}
  1. Send a POST request to the /v1/payments endpoint. Be sure to include the required headers for the request you are making.

The payment flow is started for the specified amount. After the authorization is complete, a success message is returned.

  1. Store the returned id value.

  2. When ready to finalize the transaction, construct a request with the final amount to be charged:

{
  "amount": 50000
}
  1. Send a POST request to /v1/payments/{authId}/capture, where {authId} is the id value stored in step 3.

_The preauthorization is captured and the final paymentId is returned.

  1. To return to the welcome screen, send a POST request to the /v1/device/welcome endpoint.

Preauthorization with incremented amounts

For a preauthorization with incremental amounts, do the following:

  1. Construct a request with the minimum required data (the amount to be charged in cents, a flag to indicate the charge should not be captured, and an externalPaymentId).
{
  "amount": 50000,
  "capture": false
  "externalPaymentId": "{externalPaymentId}"
}
  1. Send a POST request to the /v1/payments endpoint. Be sure to include the required headers for the request you are making.

The payment flow is started for the specified amount. After the authorization is complete, a success message is returned.

  1. Store the returned id value.

  2. Construct a request with the amount to be incremented:

{
  "amount": 12000
}
  1. Send a POST request to the /v1/payments/{paymentId}/increment endpoint, where {paymentId} is the id value stored in step 3. Be sure to include the required headers for the request you are making.

The incremented amount is added to the initial authorization amount. After the authorization is complete, a success message is returned.

  1. Construct a request with the final amount to be captured:
{
  "amount": 62000
}
  1. Send a POST request to /v1/payments/{paymentId}/capture, where {paymentId} is the id value stored in step 3.

_The preauthorization is captured and the final paymentId is returned.

  1. To return to the welcome screen, send a POST request to the /v1/device/welcome endpoint.

Did this page help you?