Authorize a payment
This document contains a draft guide outlining how you can process various authorization types through the Unified Payments API. The information provided below is subject to change.
The Unified Payments API is able to process a number of different authorization types:
- Final: indicates to the schemes that the amount being authorized will not change.
- Estimated: indicates to the schemes that the amount being authorized is an estimate.
- Incremental: follows an estimated authorization and either increases the authorization amount for the payment or, for Mastercard only, extends the authorization validity period.
Request a final or estimated authorization
When requesting a payment in the Unified Payments API, you can specify whether you want the authorization to be final or estimated using the authorization_type
field. If omitted, the authorization will be requested as final.
If the authorization type is estimated, we will automatically disable auto capture for the payment.
Endpoints
For the full API specification, see the API reference.
https://api.checkout.com/payments
Request example
{"source": {"type": "card","number": "4242424242424242","expiry_month": 12,"expiry_year": 2025},"amount": 100,"currency": "USD","reference": "ORD-752-814","authorization_type": "Estimated","processing_channel_id": "mer_q4dbxom5jbgudnjzjpz7j2z6uq","capture": false}
Response example
Use the approved
field to check whether or not the authorization was successful ("approved": true
). The balances
object provides an overview of the payment’s balances, which helps you determine the amount that can be used for each subsequent action on the payment.
{"id": "pay_tqgk5c6k2nnexagtcuom5ktlua","action_id": "act_tqgk5c6k2nnexagtcuom5ktlua","amount": 100,"currency": "USD","approved": true,"status": "Authorized","auth_code": "503198","expires_on": "2020-04-05T10:11:12Z","eci": "05","scheme_id": "511129554406717","response_code": "10000","response_summary": "Approved","balances": {"total_authorized": 100,"total_voided": 0,"available_to_void": 100,"total_captured": 0,"available_to_capture": 100,"total_refunded": 0,"available_to_refund": 0},"risk": {"flagged": false},"source": {"id": "src_il5ncjpijceulefzbhkm2c3di4","type": "card","expiry_month": 12,"expiry_year": 2025,"scheme": "Visa","last4": "4242","fingerprint": "71580B426F1D190D29087FF265D8F48DF1AD34EDE41C27CBFF9D23C1A14D1776","bin": "424242","card_type": "Credit","card_category": "Consumer","issuer": "JPMORGAN CHASE BANK NA","issuer_country": "US","product_id": "A","product_type": "Visa Traditional","avs_check": "S","cvv_check": "Y","payouts": true,"fast_funds": "d"},"customer": {"id": "cus_sozpnpktte5uzooigxau35uloq"},"processed_on": "2020-03-16T22:11:24Z","reference": "ORD-752-814","processing": {"acquirer_transaction_id": "8367314942","retrieval_reference_number": "162588399162"},"_links": {"self": {"href": "https://api.sandbox.checkout.com/payments/pay_tqgk5c6k2nnexagtcuom5ktlua"},"actions": {"href": "https://api.sandbox.checkout.com/payments/pay_tqgk5c6k2nnexagtcuom5ktlua/actions"},"authorize": {"href": "https://api.sandbox.checkout.com/payments/pay_tqgk5c6k2nnexagtcuom5ktlua/authorizations"},"capture": {"href": "https://api.sandbox.checkout.com/payments/pay_tqgk5c6k2nnexagtcuom5ktlua/captures"},"void": {"href": "https://api.sandbox.checkout.com/payments/pay_tqgk5c6k2nnexagtcuom5ktlua/voids"}}}
Request an incremental authorization
If a payment was requested with an estimated authorization, you can increase the authorization amount for that payment by submitting incremental authorizations, or extend the authorization validity period (Mastercard only).
Use the details below to set up your request.
Endpoints
For the full API specification, see the API reference.
https://api.checkout.com/payments/{id}/authorizations
Request example
{"amount": 50,"reference": "ORD-752-814"}
Response example
Use the approved
field to check whether or not the authorization was successful ("approved": true
). The balances
object provides an overview of the payment’s balances, which helps you determine the amount that can be used for each subsequent action on the payment.
{"action_id": "act_q4dbxom5jbgudnjzjpz7j2z6uq","amount": 50,"currency": "USD","approved": true,"status": "Authorized","auth_code": "503198","expires_on": "2020-04-20T10:11:12Z","eci": "05","scheme_id": "511129554406717","response_code": "10000","response_summary": "Approved","balances": {"total_authorized": 150,"total_voided": 0,"available_to_void": 150,"total_captured": 0,"available_to_capture": 150,"total_refunded": 0,"available_to_refund": 0,},"processed_on": "2020-03-16T22:11:24Z","reference": "ORD-752-814","processing": {"acquirer_transaction_id": "8367314942","retrieval_reference_number": "162588399162"},"_links": {"self": {"href": "https://api.sandbox.checkout.com/payments/pay_tqgk5c6k2nnexagtcuom5ktlua"},"actions": {"href": "https://api.sandbox.checkout.com/payments/pay_tqgk5c6k2nnexagtcuom5ktlua/actions"},"authorize": {"href": "https://api.sandbox.checkout.com/payments/pay_tqgk5c6k2nnexagtcuom5ktlua/authorizations"},"capture": {"href": "https://api.sandbox.checkout.com/payments/pay_tqgk5c6k2nnexagtcuom5ktlua/captures"},"void": {"href": "https://api.sandbox.checkout.com/payments/pay_tqgk5c6k2nnexagtcuom5ktlua/voids"}}}
Retrieve a payment's balances
To retrieve the balances of a payment, you can use the following endpoint.
Use the details below to set up your request.
Endpoints
For the full API specification, see the API reference.
https://api.checkout.com/payments/{id}
Response example
In the response, you will be provided with the details of your payment. This includes a balances
object containing the following fields:
Field name | Description |
---|---|
| The total amount that has been authorized. |
| The total amount that has been voided. |
| The total amount that is still available for voiding. |
| The total amount that has been captured. |
| The total amount that is still available for capture. |
| The total amount that has been refunded. |
| The total amount that is still available for refund. |
{"id": "pay_4gbjiuwysylutbdnxboxiebifq","requested_on": "2020-03-17T16:06:51Z","source": {"id": "src_sp7e7ehmsqlevaqkzso2ajilue","type": "card","expiry_month": 12,"expiry_year": 2025,"scheme": "Visa","last4": "4242","fingerprint": "71580B426F1D190D29087FF265D8F48DF1AD34EDE41C27CBFF9D23C1A14D1776","bin": "424242","card_type": "Credit","card_category": "Consumer","issuer": "JPMORGAN CHASE BANK NA","issuer_country": "US","product_id": "A","product_type": "Visa Traditional","avs_check": "S","cvv_check": "Y","payouts": true,"fast_funds": "d"},"amount": 150,"currency": "USD","payment_type": "Regular","reference": "ORD-752-814","status": "Captured","approved": true,"risk": {"flagged": false},"customer": {"id": "cus_gp6e4vr7q4bufi4tcbn7oni65u"},"billing_descriptor": {"name": "Fiona's Fashion","city": "New York"},"balances": {"total_authorized": 150,"total_voided": 0,"available_to_void": 0,"total_captured": 150,"available_to_capture": 0,"total_refunded": 0,"available_to_refund": 150},"eci": "05","scheme_id": "961268269566117","_links": {"self": {"href": "https://api.sandbox.checkout.com/payments/pay_4gbjiuwysylutbdnxboxiebifq"},"actions": {"href": "https://api.sandbox.checkout.com/payments/pay_4gbjiuwysylutbdnxboxiebifq/actions"},"refund": {"href": "https://api.sandbox.checkout.com/payments/pay_4gbjiuwysylutbdnxboxiebifq/refunds"}}}