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:

  1. 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}"
}
  1. Send a POST request to the /v1/payments endpoint.
  2. 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.
  3. Store the returned id value.
  4. When ready to finalize the transaction, construct a request with the final amount to charge:
{
  "amount": 50000
}
  1. Send a POST request to /v1/payments/{authId}/capture, where {authId} is the id value you stored in step 4.
    The preauthorization is captured and the final paymentId is returned.
  2. 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:

  1. 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}"
}
  1. Send a POST request to the /v1/payments endpoint.
  2. 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.
  3. Store the returned id value.
  4. Construct a request with the amount you want to increment:
{
  "amount": 12000
}
  1. Send a POST request to the /v1/payments/{paymentId}/increment endpoint, where {paymentId} is the id value stored in step 4.
  2. 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.
  3. Construct a request with the final amount you want to capture:
{
  "amount": 62000
}
  1. Send a POST request to /v1/payments/{paymentId}/capture, where {paymentId} is the id value stored in step 4.
    The preauthorization is captured and the final paymentId is returned.
  2. To return to the welcome screen, send a POST request to the /v1/device/welcome endpoint.