Authorization Adjustment

Adjust a previously authorized card payment amount before capture.

Authorization adjustment lets you modify the amount on a previously authorized card transaction before it’s captured. This is especially useful when the final charge isn’t known at the time of the initial authorization, like in hospitality, fuel, or car rental scenarios.

By adjusting the authorization instead of creating new ones, you can reduce declines at capture time and avoid multiple holds on the cardholder’s funds.

You can only adjust an authorization before it’s captured, and the new amount must respect issuer and processor limits for that card and currency.


When to Use Authorization Adjustment

Use authorization adjustment when:

  • Order Modifications: The order value changes after authorization but before fulfillment.
  • Inventory Issues: Items become unavailable after authorization but before shipment.
  • Service Changes: A customer downgrades a service package prior to delivery.

Note: You need to specify the entire new authorization amountnot just the difference.

Industry Example: Gas Station (Pay-at-the-Pump)

A gas station places a $200 authorization when a customer inserts their card at the pump. The customer finishes fueling with a total of $170. The authorization is adjusted to $170 before capture, and the remaining $30 is released back to the cardholder.

📘

Authorization can not be adjusted once it has moved to SETTLED status. The Authorization must be in APPROVED status and its associated Batch is in OPEN status. So, before attempting an adjustment -


How it Works

  1. To adjust an authorization, make a PUT request to /checkout/v3/payment/{id} endpoint with a request body that includes:

    ParameterDescription
    tenderTypeSet to CARD for card transactions.
    paymentTokenSecure payment token for the authorization you want to adjust.
    amountNew total amount for the authorization. Can be higher or lower than the previously authorized sum.
    merchantIdMerchant’s unique identifier.
  2. Once the payment request is submitted, our system performs a series of system-level validations before sending the transaction to the card network. These validations check for:

    1. Missing or invalid required fields
    2. Incorrect parameter formats or values
    3. Merchant configuration or permission issues. If any validation fails, the request is rejected immediately, and an error response is returned. You must correct the issue and resubmit the request. For a complete list of validation errors and how to resolve them, refer to the System Error Codes guide.
  3. If all system-level validations pass, our system sends the updated amount to the issuer and re-authorizes the payment. Use the GET /checkout/v3/payment/{id} endpoint to confirm the outcome. The response will include:

    1. amount: The new amount as specified in the adjust request.
    2. status: The current status of the payment. You’ll also receive the result in a webhook.
  4. Monitor the Adjust Authorization webhook to track the final outcome of the adjustment request. You can store the id and paymentToken to:

    1. Retrieve updated payment details later.
    2. Void the payment, if needed.
    3. Initiate captures.
    4. Issue partial or full refunds.

If the card has insufficient funds, the network returns a Declined status with the response:

"responseStatus": "Decline - Insufficient funds"