Automatic Fueling Payments Developer 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 use the
Visa Acceptance Solutions
REST API
and the
Fiserv RapidConnect
gateway to integrate payment services for automatic fueling and car washes.
Implementing payment services requires software development skills. You must write code that uses the API request and response fields to integrate the payment and token management services for automatic fueling.
Customer Support
For support information about any service, visit the Support Center:

Recent Revisions to This Document

25.09.01

This revision contains only editorial changes and no technical updates.

25.04.01

Initial release.

Introduction to Automatic Fueling and Car Wash Processing

Visa Acceptance Solutions
payments provide seamless and successful online and offline payment processing for automatic fueling and car washes.

Prerequisites

These actions are required before you can process payments for automatic fueling and car washes:
  • The customer adds their payment card details to their mobile app.
  • You process a zero amount authorization that creates the payment token, which is stored in the customer's mobile app wallet.

Card Types

You can process automatic fueling and car wash payments with a Visa consumer or corporate card.

Transaction Types

Visa Acceptance Solutions
offers these types of transactions for automatic fueling and car wash payments:
  • Automatic fueling
    • Authorization
    • Authorization reversal
    • Capture
    • Time-out void for an authorization, authorization reversal, or capture
  • Car wash
    • Sale
    • Void a sale
    • Time-out void for a sale

Payment Scenarios

Automatic fueling and car wash processing consists of these payment scenarios:
  • Automatic fueling with the option to add a car wash, in which you use the authorization and capture services to process the payment.
  • Car wash only, in which you use the sale service to process the payment.

Automatic Fueling and Car Wash Processing

This section describes how to process automatic fueling and car wash transactions.

Authorizing an Automatic Fueling Payment

This section provides the information you need in order to process an automatic fueling authorization with or without a car wash. Include the fuel and car wash line items when you capture the authorization.

Endpoint

Production:
POST
https://api.visaacceptance.com
/pts/v2/payments
Test:
POST
https://apitest.visaacceptance.com
/pts/v2/payments

Required Fields for an Automatic Fueling Authorization

Use these required fields to process an Automatic Fueling authorization.
clientReferenceInformation.code
clientReferenceInformation.reconciliationID
merchantInformation.categoryCode
merchantInformation.merchantDescriptor.country
merchantInformation.merchantDescriptor.customerServicePhoneNumber
merchantInformation.merchantDescriptor.name
merchantInformation.merchantDescriptor.url
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.phoneNumber
orderInformation.billTo.postalCode
paymentInformation.card.expirationMonth
paymentInformation.card.expirationYear
paymentInformation.card.number
paymentInformation.card.securityCode
paymentInformation.card.type
pointOfSaleInformation.laneNumber
pointOfSaleInformation.terminalCategory
processingInformation.actionList
Set the value to
TOKEN_CREATE
.
processingInformation.actionTokenTypes
Set to all of these values:
  • customer
  • paymnentInstrument
  • shippingAddress
processingInformation.commerceIndicator
Set the value to
internet
.

REST Example: Automatic Fueling Authorization

Request
{ "clientReferenceInformation": { "code": "123456789010", "reconciliationId": "000000050000775" }, "pointOfSaleInformation": { "terminalCategory": "AFD", "laneNumber": "1234" }, "processingInformation": { "actionList": [ "TOKEN_CREATE" ], "actionTokenTypes": [ "customer", "paymentInstrument", "shippingAddress" ], "commerceIndicator": "INTERNET" }, "orderInformation": { "billTo": { "country": "US", "firstName": "John", "lastName": "Smith", "phoneNumber": "650-965-6111", "address1": "600 Morgan Falls Road", "postalCode": "94566-1234", "locality": "Atlanta", "administrativeArea": "MI", "email": "" }, "amountDetails": { "totalAmount": "10", "currency": "USD" } }, "merchantInformation": { "categoryCode": 1234, "merchantDescriptor": { "country": "US", "name": "Fast Gas", "customerServicePhoneNumber": "1234567890", "url": "www.example.com" } }, "paymentInformation": { "card": { "expirationYear": "2030", "number": "4111111111111111", "securityCode": "123", "expirationMonth": "2", "type": "001" } } }
Response to a Successful Request
{ "embeddedActions": { "TOKEN_CREATE": { "status": "SUCCESS" } }, "paymentInformation": { "bin": "411111", "issuer": "CONOTOXIA SP. Z O.O", "binCountry": "PL", "accountType": "Visa Classic", "cardBrand": "VISA", "cardType": "001" }, "submitTimeUtc": "2021-12-15T15:03:52Z", "processorInformation": { "approvalCode": "OK1272", "responseCodeSource": "4", "networkTransactionId": "0014239537635196CN", "responseCode": "000" }, "_links": { "capture": { "href": "/pts/v2/payments/7418004527693232235535/captures", "method": "POST" }, "reversal": { "href": "/pts/v2/payments/7418004527693232235535/reversals", "method": "POST" }, "self": { "method": "GET", "href": "/pts/v2/payments/7418004527693232235535" } }, "consumerAuthenticationResponse": { "systemTraceAuditNumber": "500041", "merchantNumber": "RCTST1000107085" }, "orderInformation": { "amountDetails": { "authorizedAmount": "10.00" } }, "message": "Successful transaction.", "clientReferenceInformation": { "code": "123456789010" }, "reconciliationId": "000000050000775", "pointOfSaleInformation": { "terminalId": "00000001" }, "id": "7418004527693232235535", "status": "AUTHORIZED", "tokenInformation": { "instrumentIdentifierNew": false, "customer": { "id": "302984DDBE8DFA5EE0634136CF0A945E" }, "instrumentIdentifier": { "id": "7018759999957811111", "state": "ACTIVE" }, "paymentInstrument": { "id": "302984DDBE96FA5EE0634136CF0A945E" }, "shippingAddress": { "id": "302984DDBE99FA5EE0634136CF0A945E" } } }

Authorization Reversal for Automatic Fueling

This section provides the information you need in order to process an authorization reversal.
Reversing an authorization releases the hold on the customer’s payment card funds that the issuing bank placed when processing the authorization.

Endpoint

Production:
POST
https://api.visaacceptance.com
/pts/v2/payments/
{id}
/reversals
Test:
POST
https://apitest.visaacceptance.com
/pts/v2/payments/
{id}
/reversals
The
{id}
is the transaction ID returned in the authorization response.

Required Fields for an Authorization Reversal

clientReferenceInformation.code
clientReferenceInformation.reconciliationId
reversalInformation.amountDetails.currency
reversalInformation.amountDetails.totalAmount

REST Example: Authorization Reversal

Request
{ "clientReferenceInformation": { "code": "TC_GSAP_AR_BASIC-2", "reconciliationId": "000000050000777" }, "reversalInformation": { "amountDetails": { "currency": "USD", "totalAmount": "10" } } }
Response to a Successful Request
{ "submitTimeUtc": "2025-03-12T17:54:37Z", "processorInformation": { "approvalCode": "OK1272", "responseCode": "000" }, "consumerAuthenticationResponse": { "systemTraceAuditNumber": "500044" }, "orderInformation": { "amountDetails": { "authorizedAmount": "10.00" } }, "message": "Successful transaction.", "clientReferenceInformation": { "code": "123456789010" }, "reconciliationId": "000000050000777", "id": "7418020779133232235535", "status": "REVERSED" }

Capturing an Automatic Fueling Payment

This section provides the information you need in order to capture an automatic fueling authorization with or without a car wash. Include separate line items for the fuel and car wash.

Endpoint

Production:
POST
https://api.visaacceptance.com
/pts/v2/payments/
{id}
/captures
Test:
POST
https://apitest.visaacceptance.com
/pts/v2/payments/
{id}
/captures
The
{id}
is the transaction ID returned in the authorization response.

Required Fields for an Automatic Fueling Capture

clientReferenceInformation.code
clientReferenceInformation.reconciliationID
orderInformation.amountDetails.currency
orderInformation.amountDetails.totalAmount
orderInformation.lineItems[].measurement
orderInformation.lineItems[].referenceDataCode
orderInformation.lineItems[].referenceDataNumber
orderInformation.lineItems[].totalAmount
orderInformation.lineItems[].unitOfMeasure
orderInformation.lineItems[].unitPrice

REST Example: Automatic Fueling Capture

Request
{ "clientReferenceInformation": { "code": "123456789012", "reconciliationId": "000000050000775" }, "orderInformation": { "lineItems": [ { "unitPrice": "20", "totalAmount": "200", "unitOfMeasure": "case", "referenceDataNumber": "01-02-00", "referenceDataCode": "nacs", "measurement": 1 }, { "unitPrice": "20", "totalAmount": "200", "unitOfMeasure": "Gallon", "referenceDataNumber": "01-03-00", "referenceDataCode": "nacs", "measurement": 1 }, { "unitPrice": "20", "totalAmount": "200", "unitOfMeasure": "Liter", "referenceDataNumber": "01-05-00", "referenceDataCode": "nacs", "measurement": 1 } ], "amountDetails": { "totalAmount": "10", "currency": "USD" } } }
Response to a Successful Request
{ "submitTimeUtc": "2025-03-12T17:30:42Z", "_links": { "refund": { "href": "/pts/v2/payments/7418006421273232235535/refunds", "method": "POST" }, "void": { "href": "/pts/v2/payments/7418006421273232235535/voids", "method": "POST" }, "self": { "method": "GET", "href": "/pts/v2/payments/7418006421273232235535" } }, "processorInformation": { "approvalCode": "OK1272", "responseCode": "000" }, "consumerAuthenticationResponse": { "systemTraceAuditNumber": "500042", "merchantNumber": "RCTST1000107085" }, "orderInformation": { "amountDetails": { "authorizedAmount": "10.00" } }, "message": "Successful transaction.", "clientReferenceInformation": { "code": "123456789010" }, "reconciliationId": "000000050000775", "pointOfSaleInformation": { "terminalId": "00000001" }, "id": "7418006421273232235535", "status": "COMPLETED" }

Sale for a Car Wash

This section provides the information you need in order to process a sale transaction.
A sale combines an authorization and a capture into a single transaction.

Endpoint

Production:
POST
https://api.visaacceptance.com
/pts/v2/payments
Test:
POST
https://apitest.visaacceptance.com
/pts/v2/payments

Required Fields for a Sale for a Car Wash

clientReferenceInformation.code
clientReferenceInformation.reconciliationId
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.phoneNumber
orderInformation.billTo.postalCode
orderInformation.lineItems[].measurement
orderInformation.lineItems[].referenceDataCode
orderInformation.lineItems[].referenceDataNumber
orderInformation.lineItems[].totalAmount
orderInformation.lineItems[].unitOfMeasure
orderInformation.lineItems[].unitPrice
paymentInformation.card.expirationMonth
paymentInformation.card.expirationYear
paymentInformation.instrumentIdentifier.id
processingInformation.capture
Set the value to
true
.
processingInformation.commerceIndicator
Set the value to
internet
.

REST Example: Sale for a Car Wash

Request
"{ "clientReferenceInformation": { "code": "123456789012". "reconciliationId": "000000050000764" }, "processingInformation": { "commerceIndicator": "INTERNET", "capture": true }, "orderInformation": { "lineItems": [ { "unitPrice": "20", "totalAmount": "200", "unitOfMeasure": "case", "referenceDataNumber": "25-03-00", "referenceDataCode": "carwash", "measurement": 1 }, { "unitPrice": "20", "totalAmount": "200", "unitOfMeasure": "Gallon", "referenceDataNumber": "01-03-00", "referenceDataCode": "nacs", "measurement": 1 } ], "billTo": { "country": "US", "firstName": "John", "lastName": "Smith", "phoneNumber": "650-965-6111", "address1": "600 Morgan Falls Road", "postalCode": "94566-1234", "locality": "Atlanta", "administrativeArea": "MI", "email": "" }, "amountDetails": { "totalAmount": "110", "currency": "USD" } }, "merchantInformation": { "merchantDescriptor": { "name": "Fast Gas" } }, "paymentInformation": { "card": { "expirationYear": "2030", "expirationMonth": "02" }, "instrumentIdentifier": { "id": "7018759999957811111" } } }"
Response to a Successful Request
{ "paymentInformation": { "bin": "411111", "issuer": "CONOTOXIA SP. Z O.O", "binCountry": "PL", "accountType": "Visa Classic", "cardBrand": "VISA", "cardType": "001", "instrumentIdentifier": { "id": "7018759999957811111", "state": "ACTIVE" } }, "submitTimeUtc": "2025-03-10T20:51:26Z", "_links": { "refund": { "href": "/pts/v2/payments/7416398860323232235535/refunds", "method": "POST" }, "void": { "href": "/pts/v2/payments/7416398860323232235535/voids", "method": "POST" }, "self": { "method": "GET", "href": "/pts/v2/payments/7416398860323232235535" } }, "processorInformation": { "approvalCode": "OK1272", "consumerAuthenticationResponse": { "code": "1", "codeRaw": "1" }, "responseCodeSource": "4", "networkTransactionId": "0014239537635196CN", "responseCode": "000" }, "consumerAuthenticationResponse": { "systemTraceAuditNumber": "500027", "merchantNumber": "RCTST1000107085" }, "clientReferenceInformation": { "code": "123456789012" }, "pointOfSaleInformation": { "terminalId": "00000001" }, "id": "7416398860323232235535", "orderInformation": { "amountDetails": { "authorizedAmount": "110.00" } }, "message": "Successful transaction.", "reconciliationId": "000000050000764", "status": "COMPLETED", "tokenInformation": { "instrumentIdentifierNew": false, "instrumentIdentifier": { "id": "7018759999957811111", "state": "ACTIVE" } }, "embeddedActions": { "TOKEN_RETRIEVE": { "status": "SUCCESS" } } }

Void for a Car Wash Sale

This section describes how to void a sale that was submitted but not yet processed by the processor.

Endpoint

Production:
POST
https://api.visaacceptance.com
/pts/v2/payments/
{id}
/voids
Test:
POST
https://apitest.visaacceptance.com
/pts/v2/payments/
{id}
/voids
The
{id}
is the transaction ID returned in the sale response.

Required Fields for Voiding a Sale for a Car Wash

clientReferenceInformation.code
clientReferenceInformation.reconciliationId
orderInformation.amountDetails.currency
orderInformation.amountDetails.totalAmount

REST Example: Voiding a Sale for a Car Wash

Request
{ "clientReferenceInformation": { "code": "123456789012", "reconciliationId": "000000050000771" }, "orderInformation": { "amountDetails": { "totalAmount": "110", "currency": "USD" } } }
Response to a Successful Request
{ "submitTimeUtc": "2025-03-11T16:39:30Z", "processorInformation": { "approvalCode": "OK1272", "responseCode": "000" }, "consumerAuthenticationResponse": { "systemTraceAuditNumber": "500036" }, "orderInformation": { "amountDetails": { "authorizedAmount": "110.00" } }, "message": "Successful transaction.", "clientReferenceInformation": { "code": "123456789012" }, "reconciliationId": "000000050000771", "id": "7417111702443232235535", "_links": { "self": { "method": "GET", "href": "/pts/v2/voids/7417111702443232235535" } }, "status": "VOIDED" }

Time-Out Void for an Authorization, Authorization Reversal, Capture, or Sale

When you do not receive a response message after requesting an authorization, authorization reversal, capture, or sale, this feature enables you to void the transaction that you requested.
Include the
clientReferenceInformation.transactionId
field in the original request for an authorization, authorization reversal, capture, or sale. The value of the merchant transaction ID must be unique for 180 days.
When the original transaction fails, the response message for the reversal request includes these fields:
  • voidAmountDetails.originalTransactionAmount
  • processorInformation.responseCode

Endpoint

Production:
POST
https://api.visaacceptance.com
/pts/v2/voids/
Test:
POST
https://apitest.visaacceptance.com
/pts/v2/voids/

Required Fields for a Time-Out Void for an Authorization, Authorization Reversal, or Capture

clientReferenceInformation.code
clientReferenceInformation.reconciliationId
clientReferenceInformation.transactionId
orderInformation.amountDetails.currency
orderInformation.amountDetails.totalAmount

REST Example: Time-Out Void for an Authorization, Authorization Reversal, or Capture

Request
{ "clientReferenceInformation": { "code": "123456789012", "reconciliationId": "000000050000772" "transactionId": "987654321" }, "orderInformation": { "amountDetails": { "totalAmount": "100", "currency": "USD" } } }
Response to a Successful Request
{ "submitTimeUtc": "2025-03-11T16:57:19Z", "processorInformation": { "approvalCode": "OK1272", "responseCode": "000" }, "consumerAuthenticationResponse": { "systemTraceAuditNumber": "500039" }, "orderInformation": { "amountDetails": { "authorizedAmount": "110.00" } }, "message": "Successful transaction.", "clientReferenceInformation": { "code": "123456789012" }, "reconciliationId": "000000050000772", "id": "7417122396283232235535", "_links": { "self": { "method": "GET", "href": "/pts/v2/voids/7417122396283232235535" } }, "status": "VOIDED" }