On This Page
Pre-Authorization
This section provides the information you need in order to process a pre-authorization.
A pre-authorization enables you to authorize a payment when the final amount is unknown. The system places the funds on hold until you request a follow-up transaction. Pre-authorizations are typically used for lodging, auto rental, e-commerce, and restaurant transactions.
IMPORTANT
Payment Services Directive 2 (PSD2) rules in the European Union (EU) and European Economic Area (EEA) require the initial pre-authorization to use strong customer authentication for merchants or customers in PSD2-applicable countries.
When you have a specific merchant category code (MCC) assigned to your account, you
are allowed to capture up to 20% more than the cumulatively authorized amount on
Visa, Diners, Discover, and JCB cards. Contact your account manager to have your
account enabled for this option.
For a pre-authorization:
- The authorization amount is greater than zero.
- Submit the authorization for capture within 30 calendar days of its request.
- When you do not capture the authorization, reverse it.In the US, Canada, Latin America, and Asia Pacific, Mastercard charges an additional fee for a pre-authorization that is not captured and not reversed.In Europe, Russia, Middle East, and Africa, Mastercard charges fees for all pre-authorizations.
- Chargeback protection is in effect for 30 days after the authorization.
All supported card types can process pre-authorizations.
Endpoint
Production:
POST
https://api.visaacceptance.com
/pts/v2/paymentsTest:
POST
https://apitest.visaacceptance.com
/pts/v2/paymentsRequired Fields for a Pre-Authorization
Use these required fields for processing a pre-authorization.
- orderInformation.amountDetails.currency
- orderInformation.amountDetails.totalAmount
- orderInformation.billTo.address1
- orderInformation.billTo.administrativeArea
- orderInformation.billTo.country
- orderInformation.billTo.email
- orderInformation.billTo.firstName
- orderInformation.billTo.lastName
- orderInformation.billTo.locality
- orderInformation.billTo.postalCode
- paymentInformation.card.expirationMonth
- paymentInformation.card.expirationYear
- paymentInformation.card.number
- processingInformation.authorizationOptions.authIndicatorprocessingInformation.authorizationOptions.authIndicator
- Set the value to0.
Country-Specific Required Fields for Processing a Pre-Authorization
Use these country-specific required fields to process a pre-authorization.
Argentina
- merchantInformation.taxId
- Required for Mastercard transactions.
- merchantInformation.transactionLocalDateTime
- Required in Argentina when the time zone is not included in your account. Otherwise, this field is optional.
Brazil
- paymentInformation.card.sourceAccountType
- Required for combo card transactions.
- paymentInformation.card.sourceAccountTypeDetails
- Required for combo card line-of-credit and prepaid-card transactions.
Chile
- merchantInformation.taxId
- Required for Mastercard transactions.
Egypt
- paymentInformation.card.cardType
- Required for Meeza transactions. Set the value to067.
- merchantInformation.merchantDescriptor.country
- Required for Meeza transactions. Set the value toEG.
Paraguay
- merchantInformation.taxId
- Required for Mastercard transactions.
Saudi Arabia
- processingInformation.authorizationOptions.transactionMode
- Required only for merchants in Saudi Arabia.
Taiwan
- paymentInformation.card.hashedNumber
- Required only for merchants in Taiwan.
REST Example: Processing a Pre-Authorization
Request
{ "clientReferenceInformation" : { "code" : "Pre-Auth" }, "orderInformation" : { "billTo" : { "country" : "US", "lastName" : "Doe", "address1" : "201 S. Division St.", "postalCode" : "48104-2201", "locality" : "Ann Arbor", "administrativeArea" : "MI", "firstName" : "Joan", "phoneNumber" : "999999999", "email" : "" }, "amountDetails" : { "totalAmount" : "100.00", "currency" : "usd" } }, "paymentInformation" : { "card" : { "expirationYear" : "2031", "number" : "4111111111111111", "securityCode" : "123", "expirationMonth" : "12", "type" : "001" } }, "processingInformation": { "authorizationOptions": { "authIndicator": "0" } } }
Response to a Successful Request
{ "_links" : { "authReversal" : { "method" : "POST", "href" : "/pts/v2/payments/7709386742016723603091/reversals" }, "self" : { "method" : "GET", "href" : "/pts/v2/payments/7709386742016723603091" }, "capture" : { "method" : "POST", "href" : "/pts/v2/payments/7709386742016723603091/captures" } }, "clientReferenceInformation" : { "code" : "Pre-Auth" }, "id" : "7709386742016723603091", "orderInformation" : { "amountDetails" : { "authorizedAmount" : "100.00", "currency" : "usd" } }, "paymentAccountInformation" : { "card" : { "type" : "001" } }, "paymentInformation" : { "tokenizedCard" : { "type" : "001" }, "card" : { "type" : "001" } }, "pointOfSaleInformation" : { "terminalId" : "04980992" }, "processorInformation" : { "paymentAccountReferenceNumber" : "V0010013018036776997406844475", "merchantNumber" : "6817027800", "approvalCode" : "100", "cardVerification" : { "resultCodeRaw" : "3", "resultCode" : "2" }, "merchantAdvice" : { "code" : "00", "codeRaw" : "0" }, "networkTransactionId" : "123456789012345", "transactionId" : "123456789012345", "responseCode" : "0", "avs" : { "code" : "U", "codeRaw" : "00" } }, "status" : "AUTHORIZED", "submitTimeUtc" : "2026-02-12T23:24:34Z" }
Response to a Declined Request
{ "clientReferenceInformation": { "code": "TC50171_3" }, "errorInformation": { "reason": "PROCESSOR_ERROR", "message": "Invalid account" }, "id": "6583553837826789303954","paymentInsightsInformation": { "responseInsights": { "categoryCode": "01", "category": "ISSUER_WILL_NEVER_APPROVE" } },"pointOfSaleInformation": { "amexCapnData": "1009S0600100" }, "processorInformation": { "systemTraceAuditNumber": "004544", "merchantNumber": "1231231222", "networkTransactionId": "431736869536459", "transactionId": "431736869536459", "responseCode": "111", "avs": { "code": "Y", "codeRaw": "Y" } }, "status": "DECLINED" }