Card Present Connect \| Parking Developer Guide {#parking-about-guide}
======================================================================

This section describes how to use this guide and where to find further information.

Audience and Purpose
:
This guide is written for application developers who want to integrate payment processing for parking services. These API services are available using the REST API. Implementing these API services requires software development skills and knowledge of parking payment practices. You must write code that uses the REST API request and response fields to integrate the payment services into your existing parking payment system.

Conventions
:
This special statement is used in this document:

    > IMPORTANT  
    > An *Important* statement contains information essential to successfully completing a task or learning a concept.

Customer Support
:
For support information about any service, visit the Support Center:

<http://support.visaacceptance.com>

Recent Revisions to This Document {#parking-doc-revisions}
==========================================================

26.05.01
--------

Initial release.

Introduction to Parking {#home-merch}
=====================================

Card Present Connect \| Parking supports multiple payment models for the parking industry. This solution accommodates various attended and unattended parking operation models, from street meters to gated facilities, with transaction types tailored to each model.  
Use this guide to:

* Understand supported parking payment services.
* Map transaction types to your parking operations.
* Implement the payment flows that are applicable to your business.

The parking payment services described in this guide are supported by information already published in the [Card Present Connect \| Retail Integration Guide](https://developer.visaacceptance.com/docs/vas/en-us/cp-retail/integration/ctv/rest/cp-retail/cp-intro-cpc.md ""). The guide contains detailed payload examples and field‑level specifications that support the parking transaction flows discussed here.

Supported Card Types and Entry Modes for Parking {#parking-card-types-entry-modes}
==================================================================================

These card types are supported for parking transactions:

* Mastercard

* Visa  
  These card entry modes are supported for parking transactions:

* EMV contact and contactless

* Magnetic stripe swipe

Enabling a Solution on the Card Present Connect Platform {#cp-enabling-cpc-platform}
====================================================================================

Before you can implement card-present payment services, you must enable the Card Present Connect platform and complete the required account, integration, and certification activities.  
Follow these steps to complete required activities and enable the Card Present Connect platform:

1. Set up a `Visa Acceptance Solutions` merchant account. To get started, contact your sales engineer, alliance partner, or technical account manager.
2. Integrate the `Visa Acceptance Solutions` APIs for use on the Card Present Connect platform.
3. Integrate your terminal's key management encryption and decryption with the Card Present Connect platform.
4. Complete message-level validation (MLV) and Level 3 (L3) device certification. To get started, contact your sales engineer, alliance partner, or technical account manager.

Validation and Certification {#cpc-validation-certifcation-intro}
=================================================================

Work with your payment technology provider (PTP) to allocate time to complete the message-level validation (MLV) and EMV Level 3 certification with your EV charging processing system. You must pass MLV before beginning EMV Level 3 certification. You must complete validation and certification before your system can go live.

Message-Level Validation {#cpc-validation-certification-mlv}
============================================================

Message-level validation (MLV) is a script-based, field-level validation against `Visa Acceptance Solutions` specifications.  
Your PTP uses amount-based test triggers to send transactions to a test environment and the Visa Certification Management System for decryption. The test results are XML or RESTful output, `Business Center` test transactions, and log prints.  
`Visa Acceptance Solutions` uses these tests to validate the results:

* Cross-edit checks
* Data element validation
* Interchange compliance
* Data mapping validation

EMV Level 3 Certification {#cpc-validation-certification-emvl3}
===============================================================

This topic is an overview of the Level 3 certification with `Visa Acceptance Solutions` and `Visa Platform Connect`. For details on how to design an EMV Level 3 certified payment application, see EMV Book 3 on the EMVCo website: <https://www.emvco.com>.  
*Certification* is a formal process that for validating the device and application compliance with card scheme acceptance requirements. The certification team uses a brand test tool and simulator. The process includes these elements:

* Using a card simulator such as ICC or Fime.
* Failed case analysis and resolution.
* For Mastercard certification, your PTP submits results to Mastercard and pays the costs for approved partners that Mastercard uses.
* For Visa certification, `Visa Acceptance Solutions` submits results to Visa.
* Waivers from the card schemes for exceptions.
* Card scheme responses or Letter of Approval (LOA) to signify acceptance and Level 3 certification.  
  Although the processes and support for Global Card Present Connect projects and direct merchant and acquirer projects are different, the timelines are essentially the same.

Parking Payment Models {#parking-pymnts-models-intro}
=====================================================

The Parking solution supports various parking payment models on attended and unattended devices. These typical parking payment models are discussed in this guide:

* On-street parking meter
* Kiosk
* Booth
* Tap and Go
  {#parking-pymnts-models-intro_ul_edf_3g4_k3c}  
  The list does not include all types of parking payment models.

On-Street Parking Meter Payment Model {#parking-pymnt-model-street-meter}
=========================================================================

This section is an overview of a typical on-street parking meter payment model.

Terminal Types
:
Unattended payment devices.

Typical Implementation Patterns
:
Pre-authorize for the maximum parking time, capture the actual amount charged, and reverse any unused funds.
:
Request an incremental authorization when the driver extends the parking time.

Payment Services
:
For information about payment services supported for unattended devices, see [Unattended Parking Payment Services](/docs/vas/en-us/parking/developer/ctv/rest/parking/parking-svcs-intro/parking-svcs-unattend-devices-intro.md "").

Kiosk or Booth Parking Payment Model {#parking-pymnt-model-kiosk-booth}
=======================================================================

This section is an overview of a typical parking kiosk or booth payment model. Payment terminals used in this model can be attended or unattended. Typically, booths are attended and kiosks are unattended.

Terminal Types
:
Attended or unattended payment devices.

Typical Implementation Patterns
:
Process a sale transaction for the calculated parking fee.
:
Issue a refund for payment errors or cancellations.

Payment Services
:
For information about supported payment services for attended devices, see [Attended Parking Payment Services](/docs/vas/en-us/parking/developer/ctv/rest/parking/parking-svcs-intro/parking-svcs-attend-devices-intro.md ""). For information about payment services for unattended devices, see [Unattended Parking Payment Services](/docs/vas/en-us/parking/developer/ctv/rest/parking/parking-svcs-intro/parking-svcs-unattend-devices-intro.md "").

Tap and Go Parking Payment Model {#parking-pymnt-model-tap-go}
==============================================================

This section is an overview of a typical tap-and-go parking payment model.

Terminal Types
:
Unattended payment devices.

Typical Implementation Patterns
:
Pre-authorize on entry and capture the actual parking fee on exit.
:
Send an account verification request (AVR) before entry to validate the payment card.
:
Request an incremental authorization when the driver extends the parking time.

Payment Services
:
For information about payment services supported for unattended devices, see [Unattended Parking Payment Services](/docs/vas/en-us/parking/developer/ctv/rest/parking/parking-svcs-intro/parking-svcs-unattend-devices-intro.md "").

Parking Payment Services {#parking-svcs-intro}
==============================================

The Parking solution provides various REST API payment services for attended and unattended parking devices. Supported services are documented by device type first. Details about payment services that use the same request and response fields follow. Examples include [Incremental Authorization on Parking Devices](/docs/vas/en-us/parking/developer/ctv/rest/parking/parking-svcs-intro/parking-svcs-increm-auth-intro.md "") and [Capture on Parking Devices](/docs/vas/en-us/parking/developer/ctv/rest/parking/parking-svcs-intro/parking-svcs-capture-intro.md "").

> IMPORTANT  
> The parking payment services described in this guide are supported by information published in the [Card Present Connect \| Retail Integration Guide](https://developer.visaacceptance.com/docs/vas/en-us/cp-retail/integration/ctv/rest/cp-retail/cp-intro-cpc.md ""). The guide contains detailed payload examples and field‑level specifications that support the parking transaction flows discussed here.

Parking Transaction Descriptions {#parking-svcs-trxn-descriptions}
==================================================================

This table lists the valid values for the clientReferenceInformation.comments REST API field used in Parking payment services.

| Service                   | Field Value                      | Description                                                                                                                                               |
|:--------------------------|:---------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------|
| Authorization             | `Parking AVR`                    | Zero-dollar account verification request (AVR)                                                                                                            |
| Authorization             | `Parking Authorization`          | Request to place a hold on cardholder's account. Capture or reversal required.                                                                            |
| Incremental authorization | `Parking Incremental Auth`       | Request for an incremental authorization when final amount is higher than the estimated amount.                                                           |
| Reversal                  | `REVERSAL`                       | Reverse an authorization request, including incremental authorization.                                                                                    |
| Reversal                  | `REVERSAL Timeout`               | Reverse an authorization that did not receive a response. Use clientReferenceInformation.transactionId value from the original transaction.               |
| Capture                   | `Parking Capture`                | Captures final amount.                                                                                                                                    |
| Capture                   | `Parking Capture Less Than Auth` | Captures of a final amount less than the initial authorization amount. Automatic, host-generated partial reversal request is sent for the unused amount.  |
| Sale                      | `Parking Sale`                   | Combined authorization and capture. Final amount known.                                                                                                   |
| Refund                    | `REFUND Capture`                 | Credit of a previous capture transaction. Used when a capture cannot be voided.                                                                           |
| Refund                    | `REFUND Payment`                 | Credit of a previous sale transaction. Used when a sale cannot be voided.                                                                                 |
| Credit                    | `Parking Standalone Credit`      | Credit with no reference to a previous transaction.                                                                                                       |
| Void                      | `VOID Capture`                   | Void capture. Prior to merchant configured TC33 file generation time. Typically same day.                                                                 |
| Void                      | `VOID Payment`                   | Void sale. Prior to merchant configured TC33 file generation time. Typically same day.                                                                    |
| Void                      | `VOID Refund`                    | Void refund. Prior to merchant configured TC33 file generation time. Typically same day.                                                                  |
| Void                      | `VOID Credit`                    | Void credit. Prior to merchant configured TC33 file generation time. Typically same day.                                                                  |
| Void Timeout              | `VOID Timeout`                   | Void a capture, sale, refund or credit that did not receive a response. Use the clientReferenceInformation.transactionId value from original transaction. |

EMV and Card Data for Parking Payment Services {#parking-svcs-emv-card-data}
============================================================================

You can request these parking payment services with EMV and card data:

* Authorization: standard and incremental

* Capture

* Credit  
  This table shows which EMV tags are:

* M: mandatory

* P: prohibited

* O: optional

* C: conditional (Send the tag when it is present in card and terminal.)

| Data Element                                 | EMV Tag | Mastercard                   | Visa |
|:---------------------------------------------|:--------|:-----------------------------|:-----|
| Transaction Date                             | 9A      | M                            | M    |
| Transaction Type                             | 9C      | M                            | M    |
| Transaction Currency Code                    | 5F2A    | M                            | M    |
| Terminal Country Code                        | 9F1A    | M                            | M    |
| Amount Authorized                            | 9F02    | M                            | M    |
| Amount Other                                 | 9F03    | M                            | M    |
| Application PAN Sequence Number              | 5F34    | C                            | O    |
| Application Transaction Counter (ATC)        | 9F36    | M                            | M    |
| Application Interchange Profile (AIP)        | 82      | M                            | M    |
| Dedicated File (DF) Name                     | 84      | M                            | M    |
| Terminal Verification Results (TVR)          | 95      | M                            | M    |
| Issuer Application Data                      | 9F10    | M                            | M    |
| Application Cryptogram                       | 9F26    | M                            | M    |
| Cryptogram Information Data (CID)            | 9F27    | M                            | O    |
| Terminal Capabilities                        | 9F33    | M                            | M    |
| Cardholder Verification Method (CVM) Results | 9F34    | M                            | O    |
| Unpredictable Number (UN)                    | 9F37    | M                            | M    |
| Form Factor Indicator                        | 9F6E    | O (Authorization) P (Refund) | C    |
[EMV Data Elements and Tags]

Attended Parking Payment Services {#parking-svcs-attend-devices-intro}
======================================================================

This section provides information about Parking REST API payment services for attended devices, including fixed payment terminals and mobile point-of-sale (mPOS) devices. Details about payment services that use the same request and response fields for attended and unattended devices follow the device-type sections. Examples: [Incremental Authorization on Parking Devices](/docs/vas/en-us/parking/developer/ctv/rest/parking/parking-svcs-intro/parking-svcs-increm-auth-intro.md "") and [Capture on Parking Devices](/docs/vas/en-us/parking/developer/ctv/rest/parking/parking-svcs-intro/parking-svcs-capture-intro.md "").  
*Attended devices* are payment terminals operated by staff or located in environments where assistance is available. These devices support transaction types optimized for attended operations, which are discussed in this section.  
Apply these implementation considerations when configuring parking payment services for attended devices:

* Attended mPOS devices payment requests must include the pointOfSaleInformation.catLevel.
* Pre-authorization requests for EMV contact transactions must include EMV tags in follow-on capture requests.
* When the capture amount is less than the authorization amount, the host sends an automatic partial reversal for the unused amount. Automatic partial reversals are supported for attended and unattended payment services.
* Both stand-alone and linked refunds are supported for attended operations.
  {#parking-svcs-attend-devices-intro_ul_lf5_wk4_k3c}

Sale on mPOS Attended Parking Devices {#parking-svcs-attend-sale-mpos-intro}
============================================================================

This section describes how to process a mobile point-of-sale (mPOS) sale on attended parking devices.

Endpoint {#parking-svcs-attend-sale-mpos-intro_d7e16}
-----------------------------------------------------

**Production:** `POST ``https://api.visaacceptance.com``/pts/v2/payments`{#parking-svcs-attend-sale-mpos-intro_d7e25}  
**Test:** `POST ``https://apitest.visaacceptance.com``/pts/v2/payments`{#parking-svcs-attend-sale-mpos-intro_d7e35}

Required Fields for a Sale on mPOS Attended Parking Devices {#parking-svcs-attend-sale-mpos-api-reqfields}
==========================================================================================================

> IMPORTANT  
> Sale requests on mPOS attended devices must include the pointOfSaleInformation.catLevel field to identify the terminal as attended.

clientReferenceInformation.code
:

clientReferenceInformation.comments
:
Set the value to `Parking Sale`.

clientReferenceInformation.partner.developerId
:
`Visa Acceptance Solutions` provides the value for this field.

clientReferenceInformation.partner.solutionId
:
`Visa Acceptance Solutions` provides the value for this field.

clientReferenceInformation.partner.thirdPartyCertificationNumber
:
`Visa Acceptance Solutions` provides the value for this field.

clientReferenceInformation.transactionId
:

merchantInformation.transactionLocalDateTime
:

orderInformation.amountDetails.currency
:

rderInformation.amountDetails.totalAmount
:

paymentInformation.card.type
:

paymentInformation.initiationChannel
:

pointOfSaleInformation.catLevel
:
Set the value to `6`.

pointOfSaleInformation.emv.cardSequenceNumber
:

pointOfSaleInformation.emv.tags
:

pointOfSaleInformation.entryMode
:

pointOfSaleInformation.isDedicatedHardwareTerminal
:
A value is required for Mastercard transactions.

pointOfSaleInformation.serviceCode
:

pointOfSaleInformation.terminalCapability
:

pointOfSaleInformation.terminalPinCapability
:

pointOfSaleInformation.trackData
:

processingInformation.authorizationOptions.authIndicator
:
Set the value to `0`.

processingInformation.capture
:
Set the value to `true`.

processingInformation.commerceIndicator
:
Set the value to `retail`.

REST Example: Sale for Mastercard on mPOS Attended Parking Devices {#parking-svcs-attend-sale-mpos-ex-rest}
===========================================================================================================

Request

```
{
  "clientReferenceInformation": {
    "code": "test123",
    "comments": "Parking Sale",
    "partner": {
      "developerId": "prodDeveloperId",
      "thirdPartyCertificationNumber": "prodTPCN",
      "solutionId": "prodSolutionId"
    },
    "transactionId": "UniqueTranID"
  },
  "processingInformation": {
    "commerceIndicator": "retail",
    "capture": true,
    "authorizationOptions": {
      "authIndicator": 1
    }
  },
  "paymentInformation": {
    "card": {
      "type": "002"
    },
    "initiationChannel": "00"
  },
  "orderInformation": {
    "amountDetails": {
      "totalAmount": "20.00",
      "currency": "EUR"
    }
  },
  "pointOfSaleInformation": {
    "entryMode": "contactless",
    "catLevel": 6,
    "isDedicatedHardwareTerminal": "0",
    "terminalPinCapability": 0,
    "emv": {
      "cardSequenceNumber": "01",
      "tags": "9A032203259C01005F2A0206049F1A0206049F02060000000080009F03060000000000005F3401019F3602000282021B808407A0000000041010950500200080019F10120110A0000F040000000000000000000000FF9F260843C74BCF90E3126C9F2701809F33036008089F34033F00029F37044D65B4D89F6E0700560000303000"
    },
    "trackData": ";541333xx89700042=49122010123456789?",
    "terminalCapability": 4,
    "serviceCode": "201"
  },
  "merchantInformation": {
    "transactionLocalDateTime": "20260225115959"
  }
}
```

Response to a Successful Request

```
{
  "_links": {
    "void": {
      "method": "POST",
      "href": "/pts/v2/payments/7720615545406407503813/voids"
    },
    "self": {
      "method": "GET",
      "href": "/pts/v2/payments/7720615545406407503813"
    }
  },
  "clientReferenceInformation": {
    "code": "test123",
    "comments": "Parking Sale",
    "partner": {
      "developerId": "prodDeveloperId",
      "solutionId": "prodSolutionId"
    },
    "transactionId": "UniqueTranID"
  },
  "id": "7720615545406407503813",
  "issuerInformation": {
    "clearingData": "6700210103F0F7F2031AF0F0F0F0F0F0F4F0F0F9F3F0F0F8F4F0F7F3F9F4F94040404040",
    "transactionInformation": "LWkYd_0-Z4XIhyufsEssq2"
  },
  "orderInformation": {
    "amountDetails": {
      "totalAmount": "20.00",
      "authorizedAmount": "20.00",
      "currency": "EUR"
    }
  },
  "paymentAccountInformation": {
    "card": {
      "type": "002"
    }
  },
  "paymentInformation": {
    "accountFeatures": {
      "category": "M",
      "group": "0"
    },
    "tokenizedCard": {
      "type": "002"
    },
    "card": {
      "type": "002"
    }
  },
  "pointOfSaleInformation": {
    "emv": {
      "tags": "5F3401019F2701809F34033F0002"
    }
  },
  "processorInformation": {
    "systemTraceAuditNumber": "050630",
    "merchantNumber": "12345678901",
    "approvalCode": "552642",
    "networkTransactionId": "0225MCC0000OA",
    "retrievalReferenceNumber": "605623050630",
    "transactionId": "0225MCC0000OA",
    "responseCode": "00",
    "avs": {
      "code": "2"
    }
  },
  "reconciliationId": "7720615545406407503813",
  "status": "AUTHORIZED",
  "submitTimeUtc": "2026-02-25T23:19:15Z"
}
```

Pre-Authorization on Attended Parking Devices {#parking-svcs-attend-pre-auth-intro}
===================================================================================

Use this information to process a pre-authorization on attended parking devices.

Endpoint {#parking-svcs-attend-pre-auth-intro_d7e16}
----------------------------------------------------

**Production:** `POST ``https://api.visaacceptance.com``/pts/v2/payments`{#parking-svcs-attend-pre-auth-intro_d7e25}  
**Test:** `POST ``https://apitest.visaacceptance.com``/pts/v2/payments`{#parking-svcs-attend-pre-auth-intro_d7e35}

Required Fields for a Pre-Authorization on Attended Parking Devices {#parking-svcs-attend-pre-auth-reqfields}
=============================================================================================================

clientReferenceInformation.code
:

clientReferenceInformation.comments
:
Set the value to `Parking Auth`.

clientReferenceInformation.partner.developerId
:
`Visa Acceptance Solutions` provides the value for this field.

clientReferenceInformation.partner.solutionId
:
`Visa Acceptance Solutions` provides the value for this field.

clientReferenceInformation.partner.thirdPartyCertificationNumber
:
`Visa Acceptance Solutions` provides the value for this field.

clientReferenceInformation.transactionId
:

merchantInformation.transactionLocalDateTime
:

orderInformation.amountDetails.currency
:

orderInformation.amountDetails.totalAmount
:

paymentInformation.card.type
:

pointOfSaleInformation.emv.cardSequenceNumber
:

pointOfSaleInformation.emv.tags
:

pointOfSaleInformation.entryMode
:

pointOfSaleInformation.terminalCapability
:

pointOfSaleInformation.terminalPinCapability
:

pointOfSaleInformation.trackData
:

processingInformation.authorizationOptions.authIndicator
:
Set the value to `0`.

processingInformation.commerceIndicator
:
Set the value to `retail`.

REST Example: Pre-Authorization for Visa on Attended Parking Devices {#parking-svcs-attend-pre-auth-ex-rest}
============================================================================================================

Request

```
{
  "clientReferenceInformation": {
    "code": "test123",
    "comments": "Parking Auth",
    "partner": {
      "developerId": "prodDeveloperId",
      "thirdPartyCertificationNumber": "prodTPCN",
      "solutionId": "prodSolutionId"
    },
    "transactionId": "UniqueTranID"
  },
  "processingInformation": {
    "commerceIndicator": "retail",
    "authorizationOptions": {
      "authIndicator": 0
    }
  },
  "paymentInformation": {
    "card": {
      "type": "001"
    }
  },
  "orderInformation": {
    "amountDetails": {
      "totalAmount": "20.00",
      "currency": "USD"
    }
  },
  "pointOfSaleInformation": {
    "entryMode": "contactless",
    "terminalCapability": 4,
    "terminalPinCapability": 0,
    "emv": {
      "tags": "9F100706011103A000009F26089302EDF8DC3C6E519F02060000000011009F03060000000000009F1A020840950500000000005F2A0208409A031807039C01009F37043444BDD7820200009F360200019F330360B0E89F1E04123456789F2701809F6E04207000009F7C140000000000000000000000000000000000000000",
      "cardSequenceNumber": "01"
    },
    "trackData": ";4761739xx1010135=28122011758928889?"
  },
  "merchantInformation": {
    "transactionLocalDateTime": "20260225115959"
  }
}
```

Response to a Successful Request

```
{
  "_links": {
    "authReversal": {
      "method": "POST",
      "href": "/pts/v2/payments/7720595927166430303812/reversals"
    },
    "self": {
      "method": "GET",
      "href": "/pts/v2/payments/7720595927166430303812"
    },
    "capture": {
      "method": "POST",
      "href": "/pts/v2/payments/7720595927166430303812/captures"
    }
  },
  "clientReferenceInformation": {
    "code": "test123",
    "comments": "Parking Auth",
    "partner": {
      "developerId": "prodDeveloperId",
      "solutionId": "prodSolutionId"
    },
    "transactionId": "UniqueTranID"
  },
  "id": "7720595927166430303812",
  "orderInformation": {
    "amountDetails": {
      "authorizedAmount": "20.00",
      "currency": "USD"
    }
  },
  "paymentAccountInformation": {
    "card": {
      "type": "001"
    }
  },
  "paymentInformation": {
    "accountFeatures": {
      "category": "F",
      "group": "0"
    },
    "tokenizedCard": {
      "type": "001"
    },
    "card": {
      "type": "001"
    }
  },
  "pointOfSaleInformation": {
    "emv": {
      "tags": "9F36020001910A7D517A9478FA6AD53030"
    }
  },
  "processorInformation": {
    "systemTraceAuditNumber": "035730",
    "paymentAccountReferenceNumber": "V0010013018036783719331133719",
    "merchantNumber": "123456789023",
    "approvalCode": "012317",
    "networkTransactionId": "306056819920688",
    "settlementDate": "6061",
    "retrievalReferenceNumber": "605622035730",
    "transactionId": "306056819920688",
    "responseCode": "00",
    "avs": {
      "code": "2"
    }
  },
  "reconciliationId": "7720595927166430303812",
  "status": "AUTHORIZED",
  "submitTimeUtc": "2026-02-25T22:46:32Z"
}
```

Unattended Parking Payment Services {#parking-svcs-unattend-devices-intro}
==========================================================================

This section provides information about Parking REST API payment services for unattended devices. Details about payment services that use the same request and response fields for attended and unattended devices follow the device-type sections. Examples include [Incremental Authorization on Parking Devices](/docs/vas/en-us/parking/developer/ctv/rest/parking/parking-svcs-intro/parking-svcs-increm-auth-intro.md "") and [Capture on Parking Devices](/docs/vas/en-us/parking/developer/ctv/rest/parking/parking-svcs-intro/parking-svcs-capture-intro.md "").  
*Unattended devices* are payment terminals that operate without staff assistance. These devices include parking meters, automated kiosks, and entry/exit gate systems.  
Processing payments on unattended devices requires the use of specific API fields and transaction types, which are discussed in this section.  
Apply these implementation considerations when configuring parking payment services for your devices:

* Pre-authorization requests for EMV contact transactions must include EMV tags in follow-on capture requests.
* Unattended sale and pre-authorization requests must include the pointOfSaleInformation.catLevel field to identify the terminal as unattended.
* Account verification requests (AVRs) validate payment cards without authorizing funds.
* Incremental authorizations support extended parking sessions.
* When the capture amount is less than the authorization amount, the host sends an automatic partial reversal for the unused amount. Automatic partial reversals are supported for attended and unattended payment services.

Sale on Unattended Parking Devices {#parking-svcs-unattend-sale-intro}
======================================================================

Use this information to process a sale on unattended devices. A sale combines an authorization and a capture into a single transaction.

Endpoint {#parking-svcs-unattend-sale-intro_d7e16}
--------------------------------------------------

**Production:** `POST ``https://api.visaacceptance.com``/pts/v2/payments`{#parking-svcs-unattend-sale-intro_d7e25}  
**Test:** `POST ``https://apitest.visaacceptance.com``/pts/v2/payments`{#parking-svcs-unattend-sale-intro_d7e35}

Required Fields for a Sale on Unattended Parking Devices {#parking-svcs-unattend-sale-reqfields}
================================================================================================

> IMPORTANT  
> Sale requests on unattended devices must include the pointOfSaleInformation.catLevel field to identify the terminal as unattended.

clientReferenceInformation.code
:

clientReferenceInformation.comments
:
Set the value to `Parking Sale`.

clientReferenceInformation.partner.developerId
:
`Visa Acceptance Solutions` provides the value for this field.

clientReferenceInformation.partner.solutionId
:
`Visa Acceptance Solutions` provides the value for this field.

clientReferenceInformation.partner.thirdPartyCertificationNumber
:
`Visa Acceptance Solutions` provides the value for this field.

clientReferenceInformation.transactionId
:

merchantInformation.transactionLocalDateTime
:

orderInformation.amountDetails.currency
:

orderInformation.amountDetails.totalAmount
:

paymentInformation.card.type
:

pointOfSaleInformation.catLevel
:
Set this value to `2`.

pointOfSaleInformation.emv.cardSequenceNumber
:
A value is required when EMV Tag 5F34 is configured on the ICC/chip.

pointOfSaleInformation.emv.tags
:

pointOfSaleInformation.entryMode
:

pointOfSaleInformation.terminalCapability
:

pointOfSaleInformation.terminalPinCapability
:

pointOfSaleInformation.trackData
:

processingInformation.authorizationOptions.authIndicator
:
Set the value to `1`.

processingInformation.capture
:
Set this value to `true`.

processingInformation.commerceIndicator
:
Set the value to `retail`.

REST Example: Sale for Visa on Unattended Parking Devices {#parking-svcs-unattend-sale-ex-rest}
===============================================================================================

Request

```
{
  "clientReferenceInformation": {
    "code": "test123",
    "comments": "Parking Sale",
    "partner": {
      "developerId": "prodDeveloperId",
      "thirdPartyCertificationNumber": "prodTPCN",
      "solutionId": "prodSolutionId"
    },
    "transactionId": "UniqueTranID"
  },
  "processingInformation": {
    "capture": true,
    "commerceIndicator": "retail",
    "authorizationOptions": {
      "authIndicator": 1
    }
  },
  "paymentInformation": {
    "card": {
      "type": "001"
    }
  },
  "orderInformation": {
    "amountDetails": {
      "totalAmount": "20.00",
      "currency": "USD"
    }
  },
  "pointOfSaleInformation": {
    "catLevel": 2,
    "entryMode": "contact",
    "terminalCapability": 4,
    "terminalPinCapability": 0,
    "emv": {
      "tags": "9F100706011103A000009F26089302EDF8DC3C6E519F02060000000011009F03060000000000009F1A020840950500000000005F2A0208409A031807039C01009F37043444BDD7820200009F360200019F330360B0E89F1E04123456789F2701809F6E04207000009F7C140000000000000000000000000000000000000000",
      "cardSequenceNumber": "01"
    },
    "trackData": ";4761739xx1010135=28122011758928889?"
  },
  "merchantInformation": {
    "transactionLocalDateTime": "20260225115959"
  }
}
```

Response to a Successful Request

```
{
  "_links": {
    "void": {
      "method": "POST",
      "href": "/pts/v2/payments/7720609780516677203814/voids"
    },
    "self": {
      "method": "GET",
      "href": "/pts/v2/payments/7720609780516677203814"
    }
  },
  "clientReferenceInformation": {
    "code": "test123",
    "comments": "Parking Sale",
    "partner": {
      "developerId": "prodDeveloperId",
      "solutionId": "prodSolutionId"
    },
    "transactionId": "UniqueTranID"
  },
  "id": "7720609780516677203814",
  "orderInformation": {
    "amountDetails": {
      "totalAmount": "20.00",
      "authorizedAmount": "20.00",
      "currency": "USD"
    }
  },
  "paymentAccountInformation": {
    "card": {
      "type": "001"
    }
  },
  "paymentInformation": {
    "accountFeatures": {
      "category": "F",
      "group": "0"
    },
    "tokenizedCard": {
      "type": "001"
    },
    "card": {
      "type": "001"
    }
  },
  "pointOfSaleInformation": {
    "emv": {
      "tags": "9F36020001910A7D517A9478FA6AD53030"
    }
  },
  "processorInformation": {
    "systemTraceAuditNumber": "035756",
    "paymentAccountReferenceNumber": "V0010013018036783719331133719",
    "merchantNumber": "123456789023",
    "approvalCode": "073453",
    "networkTransactionId": "306056833783948",
    "settlementDate": "6061",
    "retrievalReferenceNumber": "605623035756",
    "transactionId": "306056833783948",
    "responseCode": "00",
    "avs": {
      "code": "2"
    }
  },
  "reconciliationId": "7720609780516677203814",
  "status": "AUTHORIZED",
  "submitTimeUtc": "2026-02-25T23:09:38Z"
}
```

Pre-Authorization on Unattended Parking Devices {#parking-svcs-unattend-pre-auth-intro}
=======================================================================================

Use this information to process a pre-authorization on unattended parking devices.

Endpoint {#parking-svcs-unattend-pre-auth-intro_d7e16}
------------------------------------------------------

**Production:** `POST ``https://api.visaacceptance.com``/pts/v2/payments`{#parking-svcs-unattend-pre-auth-intro_d7e25}  
**Test:** `POST ``https://apitest.visaacceptance.com``/pts/v2/payments`{#parking-svcs-unattend-pre-auth-intro_d7e35}

Required Fields for a Pre-Authorization on Unattended Parking Devices {#parking-svcs-unattend-pre-auth-reqfields}
=================================================================================================================

> IMPORTANT  
> Pre-authorization requests on unattended devices must include the pointOfSaleInformation.catLevel field to identify the terminal as unattended.

clientReferenceInformation.code
:

clientReferenceInformation.comments
:
Set the value to `Parking Auth`.

clientReferenceInformation.partner.developerId
:
`Visa Acceptance Solutions` provides the value for this field.

clientReferenceInformation.partner.solutionId
:
`Visa Acceptance Solutions` provides the value for this field.

clientReferenceInformation.partner.thirdPartyCertificationNumber
:
`Visa Acceptance Solutions` provides the value for this field.

clientReferenceInformation.transactionId
:

merchantInformation.transactionLocalDateTime
:

orderInformation.amountDetails.currency
:

orderInformation.amountDetails.totalAmount
:

paymentInformation.card.type
:

pointOfSaleInformation.catLevel
:
Set the value to `2`.

pointOfSaleInformation.emv.cardSequenceNumber
:

pointOfSaleInformation.emv.tags
:

pointOfSaleInformation.entryMode
:

pointOfSaleInformation.terminalCapability
:

pointOfSaleInformation.terminalPinCapability
:

pointOfSaleInformation.trackData
:

processingInformation.authorizationOptions.authIndicator
:
Set the value to `0`.

processingInformation.commerceIndicator
:
Set the value to `retail`.

REST Example: Pre-Authorization for Visa on Unattended Parking Devices {#parking-svcs-unattend-pre-auth-ex-rest}
================================================================================================================

Request

```
{
  "clientReferenceInformation": {
    "code": "test123",
    "comments": "Parking Auth",
    "partner": {
      "developerId": "prodDeveloperId",
      "thirdPartyCertificationNumber": "prodTPCN",
      "solutionId": "prodSolutionId"
    },
    "transactionId": "UniqueTranID3"
  },
  "processingInformation": {
    "commerceIndicator": "retail",
    "authorizationOptions": {
      "authIndicator": 0
    }
  },
  "paymentInformation": {
    "card": {
      "type": "001"
    }
  },
  "orderInformation": {
    "amountDetails": {
      "totalAmount": "20.00",
      "currency": "USD"
    }
  },
  "pointOfSaleInformation": {
    "catLevel": 2,
    "entryMode": "contact",
    "terminalCapability": 4,
    "terminalPinCapability": 0,
    "emv": {
      "tags": "9F100706011103A000009F26089302EDF8DC3C6E519F02060000000011009F03060000000000009F1A020840950500000000005F2A0208409A031807039C01009F37043444BDD7820200009F360200019F330360B0E89F1E04123456789F2701809F6E04207000009F7C140000000000000000000000000000000000000000",
      "cardSequenceNumber": "01"
    },
    "trackData": ";4761739xx1010135=28122011758928889?"
  },
  "merchantInformation": {
    "transactionLocalDateTime": "20260225115959"
  }
}
```

Response to a Successful Request

```
{
  "_links": {
    "authReversal": {
      "method": "POST",
      "href": "/pts/v2/payments/7768803589646057404807/reversals"
    },
    "self": {
      "method": "GET",
      "href": "/pts/v2/payments/7768803589646057404807"
    },
    "capture": {
      "method": "POST",
      "href": "/pts/v2/payments/7768803589646057404807/captures"
    }
  },
  "clearingInformation": {
    "accountfundingSource": "D"
  },
  "clientReferenceInformation": {
    "code": "test123",
    "comments": "Parking Auth",
    "partner": {
      "developerId": "prodDeveloperId",
      "solutionId": "prodSolutionId"
    },
    "transactionId": "UniqueTranID3"
  },
  "id": "7768803589646057404807",
  "orderInformation": {
    "amountDetails": {
      "authorizedAmount": "20.00",
      "currency": "USD"
    }
  },
  "paymentAccountInformation": {
    "card": {
      "type": "001"
    }
  },
  "paymentInformation": {
    "accountFeatures": {
      "category": "F",
      "group": "0"
    },
    "tokenizedCard": {
      "type": "001"
    },
    "card": {
      "type": "001"
    }
  },
  "pointOfSaleInformation": {
    "emv": {
      "tags": "9F36020001910A7D517A9478FA6AD53030"
    }
  },
  "processorInformation": {
    "systemTraceAuditNumber": "015657",
    "paymentAccountReferenceNumber": "V0010013018036783719331133719",
    "merchantNumber": "123456789012",
    "approvalCode": "093477",
    "networkTransactionId": "306112643598142",
    "settlementDate": "6117",
    "retrievalReferenceNumber": "611217015657",
    "transactionId": "306112643598142",
    "responseCode": "00",
    "avs": {
      "code": "2"
    }
  },
  "reconciliationId": "7768803589646057404807",
  "status": "AUTHORIZED",
  "submitTimeUtc": "2026-04-22T17:52:39Z"
}
```

Incremental Authorization on Parking Devices {#parking-svcs-increm-auth-intro}
==============================================================================

Use this information to process an incremental authorization on attended or unattended parking devices. You can process multiple incremental authorizations for a single parking session.  
Process an incremental authorization when the final transaction amount of the parking session is more than the amount of the initial authorization. When the final transaction amount is less than the total authorized amount, an automatic, host-generated partial reversal request is sent.

Endpoint {#parking-svcs-increm-auth-intro_d7e45}
------------------------------------------------

**Production:** `PATCH ``https://api.visaacceptance.com``/pts/v2/payments/`*{id}*{#parking-svcs-increm-auth-intro_d7e54}  
**Test:** `PATCH ``https://apitest.visaacceptance.com``/pts/v2/payments/`*{id}*{#parking-svcs-increm-auth-intro_d7e66}  
The *{id}* is the transaction ID returned in the original authorization response.

Required Fields for an Incremental Authorization on Parking Devices {#parking-svcs-increm-auth-reqfields}
=========================================================================================================

clientReferenceInformation.code
:

clientReferenceInformation.comments
:
Set the value to `Parking Incremental Auth`.

clientReferenceInformation.partner.developerId
:
`Visa Acceptance Solutions` provides the value for this field.

clientReferenceInformation.partner.solutionId
:
`Visa Acceptance Solutions` provides the value for this field.

clientReferenceInformation.partner.thirdPartyCertificationNumber
:
`Visa Acceptance Solutions` provides the value for this field.

merchantInformation.transactionLocalDateTime
:

orderInformation.amountDetails.currency
:

orderInformation.amountDetails.totalAmount
:

processingInformation.authorizationOptions.initiator.storedCredentialUsed
:
Set the value to `true`.

REST Example: Incremental Authorization for Visa on Parking Devices {#parking-svcs-increm-auth-ex-rest}
=======================================================================================================

Request

```
{
  "clientReferenceInformation": {
    "code": "test123",
    "comments": "Parking Incremental Auth",
    "partner": {
      "developerId": "prodDeveloperId",
      "thirdPartyCertificationNumber": "prodTPCN",
      "solutionId": "prodSolutionId"
    }
   },
  "processingInformation": {
    "authorizationOptions": {
      "initiator": {
        "storedCredentialUsed": true
      }
    }
  },
  "orderInformation": {
    "amountDetails": {
      "totalAmount": "10.00",
      "currency": "USD"
    }
  },
  "merchantInformation": {
    "transactionLocalDateTime": "20260225115959"
  }
}
```

Response to a Successful Request

```
{
  "_links": {
    "authReversal": {
      "method": "POST",
      "href": "/pts/v2/payments/7720595927166430303812/reversals"
    },
    "self": {
      "method": "GET",
      "href": "/pts/v2/payments/7720598519496636603812"
    },
    "capture": {
      "method": "POST",
      "href": "/pts/v2/payments/7720595927166430303812/captures"
    }
  },
  "clientReferenceInformation": {
    "comments": "Parking Incremental Auth",
    "code": "test123",
    "partner": {
      "developerId": "prodDeveloperId",
      "solutionId": "prodSolutionId"
    }
  },
  "id": "7720598519496636603812",
  "orderInformation": {
    "amountDetails": {
      "totalAmount": "30.00",
      "authorizedAmount": "10.00",
      "currency": "USD"
    }
  },
  "paymentInformation": {
    "accountFeatures": {
      "category": "F"
    }
  },
  "processorInformation": {
    "systemTraceAuditNumber": "035730",
    "approvalCode": "097617",
    "transactionId": "306056819920688",
    "responseCode": "00"
  },
  "reconciliationId": "7720595927166430303812",
  "status": "AUTHORIZED",
  "submitTimeUtc": "2026-02-25T22:50:52Z"
}
```

Capture on Parking Devices {#parking-svcs-capture-intro}
========================================================

Use this information to process a capture on attended or unattended parking devices.

Endpoint {#parking-svcs-capture-intro_d7e127}
---------------------------------------------

**Production:** `POST ``https://api.visaacceptance.com``/pts/v2/payments/`*{id}*`/captures`{#parking-svcs-capture-intro_d7e136}  
**Test:** `POST ``https://apitest.visaacceptance.com``/pts/v2/payments/`*{id}*`/captures`{#parking-svcs-capture-intro_d7e149}  
The *{id}* is the transaction ID returned in the authorization response.

Required Fields for a Capture on Parking Devices {#parking-svcs-capture-reqfields}
==================================================================================

> IMPORTANT  
> For pre-authorized EMV contact transactions, the follow-on capture requests must include EMV tags.

clientReferenceInformation.code
:

clientReferenceInformation.comments
:
Set the value to `Parking Capture`.

clientReferenceInformation.partner.developerId
:
`Visa Acceptance Solutions` provides the value for this field.

clientReferenceInformation.partner.solutionId
:
`Visa Acceptance Solutions` provides the value for this field.

clientReferenceInformation.partner.thirdPartyCertificationNumber
:
`Visa Acceptance Solutions` provides the value for this field.

orderInformation.amountDetails.currency
:

orderInformation.amountDetails.totalAmount
:

pointOfSaleInformation.emv.tags
:
This field is required for contact entry mode only.

REST Example: Capture for Visa on Parking Devices {#parking-svcs-capture-ex-rest}
=================================================================================

Request

```
{
  "clientReferenceInformation": {
    "code": "test123",
    "comments": "Parking Capture",
    "partner": {
      "developerId": "prodDeveloperId",
      "thirdPartyCertificationNumber": "prodTPCN",
      "solutionId": "prodSolutionId"
    }
  },
  "orderInformation": {
    "amountDetails": {
      "totalAmount": "30.00",
      "currency": "USD"
    }
  }
}
```

Response to a Successful Request

```
{
  "_links": {
    "void": {
      "method": "POST",
      "href": "/pts/v2/captures/7720607252186978303813/voids"
    },
    "self": {
      "method": "GET",
      "href": "/pts/v2/captures/7720607252186978303813"
    }
  },
  "clientReferenceInformation": {
    "comments": "Parking Capture",
    "code": "test123",
    "partner": {
      "developerId": "prodDeveloperId",
      "solutionId": "prodSolutionId"
    }
  },
  "id": "7720607252186978303813",
  "orderInformation": {
    "amountDetails": {
      "totalAmount": "30.00",
      "currency": "USD"
    }
  },
  "reconciliationId": "7720606726016948703813",
  "status": "PENDING",
  "submitTimeUtc": "2026-02-25T23:05:25Z"
}
```

