On This Page
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 theVisa Acceptance SolutionsREST APIand theFiserv RapidConnectgateway 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/paymentsTest:
POST
https://apitest.visaacceptance.com
/pts/v2/paymentsRequired 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 toTOKEN_CREATE.
- processingInformation.actionTokenTypes
- Set to all of these values:
- customer
- paymnentInstrument
- shippingAddress
- processingInformation.commerceIndicator
- Set the value tointernet.
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}
/reversalsTest:
POST
https://apitest.visaacceptance.com
/pts/v2/payments/{id}
/reversalsThe is the transaction ID returned in the
authorization response.
{id}
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}
/capturesTest:
POST
https://apitest.visaacceptance.com
/pts/v2/payments/{id}
/capturesThe is the transaction ID
returned in the authorization response.
{id}
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/paymentsTest:
POST
https://apitest.visaacceptance.com
/pts/v2/paymentsRequired 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 totrue.
- processingInformation.commerceIndicator
- Set the value tointernet.
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}
/voidsTest:
POST
https://apitest.visaacceptance.com
/pts/v2/payments/{id}
/voidsThe is the transaction ID returned in the
sale response.
{id}
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" }