• Home
  • Merchants
  • Developers
  • Partners
  • Contact
  • Home
  • Merchants
  • Developers
  • Partners
  • Contact

HOME / Evertec Unified API Developer Guide

  • Evertec Unified API Developer Guide
  • QuickSale TapToPhone User Guide
  • Release Notes – QuickSale App
  • Valid Transaction Responses and Codes
  • QuickSale Q3 PinPAD User Guide
  • Partner Portal Processor Configuration Specification
  • Evertec Unified API Integration Specification
  • Evertec Unified API Developer Guide
  • QuickSale 1.0 App User Guide
  • QuickSale 2.0 App User Guide
  • QS-Products App User Guide
  • Text To Pay User Guide
  • Payment Form Guide
  • Virtual Terminal User Guide
  • Batch Transactions for Merchants Guide
  • Auth Only Database User Guide and Specifications
  • Device Setup Guide for QuickSale 2.0
  • Capturing Android Logs with Logcat
  • PaymentModule iOS SDK Developer Guide
  • How to Set Up and Enable TOTP within Transaction Manager for Merchants
  • How to Set Up and Enable TOTP within Transaction Manager for Channel Partners
  • Batch Processing Specifications for Merchants
  • Customer Import Specifications
  • ComsGate® Payment Form Quick Start Guide
  • Charge Anywhere RMA and Repair Procedures
  • How to maintain battery in terminal
  • QuickSale POS Retail Application User Guide
  • QuickSale POS QSR Application User Guide
  • Recurring and Installment Import Specifications
  • How to Install a Wi-Fi Repeater
  • Gift Card Service Ordering for Merchants
  • Payment Form Specifications
  • How to Retrieve Merchant ID, Terminal ID, and Identification
  • How to Retrieve Merchant ID, Terminal ID, and Secret
  • How to Retrieve Client Key and Client Secret
  • QuickSale-Tab Videos
  • Semi-Integration Application User Guide
  • How to Manually Clear Data and Cache on a QuickSale Device for Channel Partners

Evertec Unified API Developer Guide

47 views 0

1. Overview

Evertec Unified API (EVUAPI) is a Charge Anywhere cloud integration service created for Evertec payment workflows. It provides a consistent API for a merchant application to submit payment transactions, track their progress, and retrieve their final result while keeping terminal-specific communication and processor interaction behind the EVUAPI boundary.

EVUAPI supports two fundamentally different execution models. Card-not-present transactions use a payment token and normally complete within the create request. Card-present transactions require a physical terminal and therefore progress asynchronously across a terminal agent, an Evertec payment application, and the processor.

OperationMethod and pathUse
API HealthGET /api/v1/healthCheck service readiness.
CNP TransactionPOST /api/v1/transactionsSubmit a token-based Credit Sale, PreAuth/AuthOnly, Force, Return, or Void.
CP TransactionPOST /api/v1/transactionsSubmit a supported transaction to the configured physical terminal.
CP Close BatchPOST /api/v1/transactionsClose/settle the current terminal batch using transactionType=12.
Transaction StatusGET /api/v1/transactions/{RequestId}Retrieve the current or final result by RequestId.

2. Getting started

2.1 Base URL and transport

Send requests over HTTPS to the base URL assigned for the target environment.

{{BaseUrl}}/api/v1/...

BaseURL: https://webtest.chargeanywhere.com/evuapi

  • Keep test and production base URLs in separate environment configurations.
  • Use application/json for request and response bodies.
  • Apply connection, read, and overall workflow deadlines appropriate to the merchant application.

2.2 Customer identity headers

Transaction requests and status retrieval use the following identity headers. The header values must represent the same merchant-terminal relationship as the corresponding JSON fields.

HeaderRequiredDescription
Accept: application/jsonRecommendedRequests a JSON representation.
Content-Type: application/jsonPOST onlyDeclares a JSON request body.
X-Merchant-IdYesMerchant identifier issued for the integration.
X-Terminal-IdYesMerchant terminal identifier; preserve leading zeros.
X-IdentificationYesConfigured terminal/device identification value.
Do not hard-code: Store environment values in a secret manager or private runtime configuration. Do not publish them in documentation, source code, screenshots, logs, or shared collections.

2.3 First integration sequence

StepAction
1Call API Health and confirm the service is ready.
2Submit either a CNP or CP sale.
3Persist requestId with the merchant invoice or order.
4If completed=false or the outcome is uncertain, retrieve transaction status.
5Persist the final response for reconciliation.

3. Transaction model

3.1 CNP and CP

Card not present (CNP). The merchant sends a payment token with cardPresent=false. Processing normally returns a final approval or decline in the create response.

Card present (CP). The merchant sends cardPresent=true. A physical terminal completes the cardholder interaction, so the initial response can be non-final and the merchant retrieves status until completion.

3.2 Transaction types

Transaction TypeValue
SALE1
VOID2
RETURN3
FORCE4
AUTH_ONLY6
CLOSE_BATCH12

Follow-up transaction relationship

Force, Return, Void, and Reversal can carry original-transaction context using:

  • originalAmount
  • originalApprovalCode
  • originalGatewayReferenceNumber

A Void (transactionType=2) has an additional rule: send the exact same transactionHash returned by the transaction being voided. EVUAPI may generate a new transactionHash for non-Void transactions when the caller does not provide one. Force and Return do not reuse the original transaction hash.

3.3 RequestId and completion

FieldMeaningDeveloper rule
requestIdEVUAPI tracking identifier for one transaction.Persist it immediately and use it for status retrieval.
transactionHashCharge Anywhere transaction hash.Persist it. Reuse the exact value only when submitting a Void for that transaction.
statusCurrent business-processing state.Do not treat an intermediate state as approval.
completedWhether the transaction has reached a final state.Continue recovery/status handling while false.
timeOutWait/receive timeout whose behavior depends on CNP versus CP.Do not interpret expiration of the HTTP wait as cancellation of a CP terminal transaction.

3.4 Transaction statuses

StatusFinal?Customer interpretation
PendingNoEVUAPI persisted the CP request and terminal dispatch is pending/queued.
SentToTerminalNoThe CP request was accepted for delivery to the configured terminal.
ReceivedByTerminalNoThe terminal acknowledged the request.
ProcessingNoCardholder/payment processing is in progress.
ApprovedYesThe transaction was approved; verify completed=true.
DeclinedYesThe processor declined the transaction; verify completed=true.
FailedYesProcessing could not complete successfully.
TimedOutYesThe terminal workflow reached its processing deadline.
CancelledYesThe transaction was cancelled before approval.

4. Customer workflows

4.1 CNP sale workflow

Figure 1. A token-based CNP sale normally returns its final result in the create response.

  • Send cardPresent=false and a valid tokenNumber.
  • Persist requestId even when a final result is returned.
  • Use transaction status if the create response is missing, non-final, or uncertain.

4.2 CP sale workflow

Figure 2. A CP sale can return an intermediate state; the merchant retrieves status by RequestId. A configured terminal is required to complete an end-to-end CP test.

5. Common transaction contracts

5.1 Create-transaction request fields

CNP and CP use the same request model. The requirement changes for tokenNumber, cardPresent, and the expected handling of timeOut.

FieldTypeCNPCPDescription
merchantIdstringRequiredRequiredMerchant identifier; must match X-Merchant-Id.
identificationstringRequiredRequiredConfigured terminal/device identity; must match X-Identification.
terminalIdstringRequiredRequiredMerchant terminal ID; must match X-Terminal-Id and preserve leading zeros.
terminalDateTimedatetimeRequiredRequiredInitiator local date/time in YYYY-MM-DDTHH:mm:ss form.
paymentTypeintegerRequiredRequiredType of payment method used.
transactionTypeintegerRequiredRequiredType of transaction.
cardPresentbooleanfalsetrueSelects token processing or physical-terminal processing.
tokenNumberstringRequiredEmptyPayment token for CNP. Treat as sensitive.
fullNamestringOptionalOptionalCustomer/cardholder display name.
customerNumberstringOptionalOptionalMerchant customer reference.
clerkNumberstringOptionalOptionalCashier or clerk reference.
clerkNamestringOptionalOptionalCashier or clerk display name.
invoiceNumberstringRecommendedRecommendedUnique merchant correlation value for the sale.
amountOfSaledecimalRequiredRequiredBase sale amount before tax, tips, cashback, and fee.
taxdecimalCalculatedCalculatedTotal tax amount.
baseStateTaxdecimalOptionalOptionalTaxable base for applicable state/city taxes.
baseReducedTaxdecimalOptionalOptionalTaxable base for reduced tax.
stateTaxdecimalOptionalOptionalState tax amount.
cityTaxdecimalOptionalOptionalMunicipal/city tax amount.
reducedTaxdecimalOptionalOptionalReduced-rate tax amount.
subTotaldecimalCalculatedCalculatedFor a sale, set equal to amountOfSale before tax, tips, cashback, and fee.
tipsdecimalOptionalOptionalTip or gratuity amount.
cashBackdecimalOptionalOptionalCashback amount.
feedecimalOptionalOptionalAdditional fee amount.
grandTotaldecimalCalculatedCalculatedsubTotal + tax + tips + cashBack + fee.
originalAmountdecimal0 for sale0 for saleReserved for an operation referring to a prior transaction.
originalGatewayReferenceNumberstringEmptyEmptyReserved reference to a prior transaction.
appVersionstringRecommendedRecommendedCalling-application version for support and compatibility.
timeOutintegerOptionalOptionalMaximum milliseconds to wait before returning the latest state; does not cancel processing.
Money: Use fixed-precision decimal arithmetic. Before sending, validate grandTotal = subTotal + tax + tips + cashBack + fee and tax = stateTax + cityTax + reducedTax when those components are supplied.

5.2 Transaction response fields

FieldTypeDescription
requestIdstringEVUAPI correlation ID. Persist immediately.
transactionHashstring/nullCharge Anywhere transaction hash. Persist it; a later Void must reuse the exact value.
statusstringCurrent transaction lifecycle state.
completedbooleantrue only when the state/result is final.
messagestring/nullHuman-readable status or error message when available.
responseCodestring/nullGateway/application response code; preserve leading zeros.
processorResponseCodestring/nullProcessor-specific response code; preserve leading zeros.
responseTextstring/nullHuman-readable processor or application result.
EvertecResponseobject/nullProcessor-specific response container. CP contains the raw App2/Evertec final JSON; CNP is normalized into the known Evertec-compatible structure.
approvalCodestring/nullApproval reference when approved.
gatewayReferenceNumberstring/nullGateway transaction reference when available.
authorizedAmountdecimal/nullAmount authorized by the processor.
tokenNumberstring/nullReturned payment token when available; treat as sensitive.
cardTypestring/nullCard brand or type when available.
statusUrlstring/nullRelative status-retrieval URL when returned.
errorIdstring/nullSupport correlation identifier when returned.

6. API reference

6.1 Get API Health

AttributeSpecification
MethodGET
Path/api/v1/health
AudienceMerchant applications and monitoring systems
AuthenticationNone for this endpoint; environment network controls may still apply
PurposeConfirm EVUAPI readiness before sending transactions.

No request body is required. Send Accept: application/json.

GET {{BaseUrl}}/api/v1/health
Accept: application/json
HTTP statusMeaning
200EVUAPI reports a healthy/ready state.
503EVUAPI is reachable but one or more required dependencies are degraded.
{
  "status": "Healthy",
  "message": "EVUAPI is ready."
}
Usage: Use health for readiness and monitoring. Do not use it as evidence that a specific payment will be approved.

6.2 CNP Tranasctions

AttributeSpecification
MethodPOST
Path/api/v1/transactions
AudienceMerchant/POS or ecommerce application
AuthenticationX-Merchant-Id, X-Terminal-Id, X-Identification
PurposeSubmit a token-based card-not-present sale.
CNP discriminatorRequired value
cardPresentfalse
tokenNumberA valid payment token
transactionType1 for a Sale request
paymentType2 for the documented

6.2.1 CNP Sale Request example

POST {{BaseUrl}}/api/v1/transactions
Content-Type: application/json
Accept: application/json
X-Merchant-Id: {{MerchantId}}
X-Terminal-Id: {{TerminalId}}
X-Identification: {{Identification}}

{
  "merchantId": "{{MerchantId}}",
  "identification": "{{Identification}}",
  "terminalId": "{{TerminalId}}",
  "terminalDateTime": "2026-09-03T14:30:00",
  "paymentType": 2,
  "transactionType": 1,
  "cardPresent": false,
  "tokenNumber": "TOKEN_REDACTED",
  "invoiceNumber": "INV-20260903-0001",
  "amountOfSale": 25.00,
  "tax": 2.88,
  "stateTax": 2.63,
  "cityTax": 0.25,
  "reducedTax": 0.00,
  "subTotal": 25.00,
  "tips": 0.00,
  "cashBack": 0.00,
  "fee": 0.00,
  "grandTotal": 27.88,
  "originalAmount": 0.00,
  "originalGatewayReferenceNumber": "",
  "appVersion": "1.0.0",
  "timeOut": 30000
}

A CNP create response normally contains the final Approved or Declined result with completed=true. Persist requestId regardless of outcome. If the response is missing or non-final, use Get Transaction Status before deciding whether another payment attempt is appropriate.

6.2.2 CNP PreAuth / AuthOnly Request example

Use transactionType=6 to authorize funds without completing the sale. In the CNP ComsGate mapping, this operation is serialized as Auth Only.

{
  "merchantId": "{{MerchantId}}",
  "identification": "{{Identification}}",
  "terminalId": "{{TerminalId}}",
  "terminalDateTime": "2026-09-10T14:30:00",
  "paymentType": 2,
  "transactionType": 6,
  "cardPresent": false,
  "tokenNumber": "{{TokenNumber}}",
  "invoiceNumber": "INV-CNP-PREAUTH",
  "amountOfSale": {{AmountOfSale}},
  "tax": {{Tax}},
  "baseStateTax": {{BaseStateTax}},
  "baseReducedTax": {{BaseReducedTax}},
  "stateTax": {{StateTax}},
  "cityTax": {{CityTax}},
  "reducedTax": {{ReducedTax}},
  "subTotal": {{SubTotal}},
  "tips": {{Tips}},
  "cashBack": {{CashBack}},
  "fee": {{Fee}},
  "grandTotal": {{GrandTotal}},
  "originalAmount": 0.0,
  "originalGatewayReferenceNumber": "",
  "appVersion": "{{AppVersion}}",
  "timeOut": 30000
}

6.2.3 CNP Force / PreAuth Completion Request example

Use transactionType=4 to complete a prior PreAuth/AuthOnly. Supply the original authorization context.

{
  "merchantId": "{{MerchantId}}",
  "identification": "{{Identification}}",
  "terminalId": "{{TerminalId}}",
  "terminalDateTime": "2026-09-10T14:30:00",
  "paymentType": 2,
  "transactionType": 4,
  "cardPresent": false,
  "tokenNumber": "{{TokenNumber}}",
  "invoiceNumber": "INV-CNP-FORCE",
  "amountOfSale": {{AmountOfSale}},
  "tax": {{Tax}},
  "baseStateTax": {{BaseStateTax}},
  "baseReducedTax": {{BaseReducedTax}},
  "stateTax": {{StateTax}},
  "cityTax": {{CityTax}},
  "reducedTax": {{ReducedTax}},
  "subTotal": {{SubTotal}},
  "tips": {{Tips}},
  "cashBack": {{CashBack}},
  "fee": {{Fee}},
  "grandTotal": {{GrandTotal}},
  "originalAmount": {{OriginalAmount}},
  "originalApprovalCode": "{{OriginalApprovalCode}}",
  "originalGatewayReferenceNumber": "{{OriginalGatewayReferenceNumber}}",
  "appVersion": "{{AppVersion}}",
  "timeOut": 30000
}

6.2.4 CNP Return Request example

Use transactionType=3 to process a return/refund. When the Return references a previous transaction, supply its original authorization context.

{
  "merchantId": "{{MerchantId}}",
  "identification": "{{Identification}}",
  "terminalId": "{{TerminalId}}",
  "terminalDateTime": "2026-09-10T14:30:00",
  "paymentType": 2,
  "transactionType": 3,
  "cardPresent": false,
  "tokenNumber": "{{TokenNumber}}",
  "invoiceNumber": "INV-CNP-RETURN",
  "amountOfSale": {{AmountOfSale}},
  "tax": {{Tax}},
  "baseStateTax": {{BaseStateTax}},
  "baseReducedTax": {{BaseReducedTax}},
  "stateTax": {{StateTax}},
  "cityTax": {{CityTax}},
  "reducedTax": {{ReducedTax}},
  "subTotal": {{SubTotal}},
  "tips": {{Tips}},
  "cashBack": {{CashBack}},
  "fee": {{Fee}},
  "grandTotal": {{GrandTotal}},
  "originalAmount": {{OriginalAmount}},
  "originalApprovalCode": "{{OriginalApprovalCode}}",
  "originalGatewayReferenceNumber": "{{OriginalGatewayReferenceNumber}}",
  "appVersion": "{{AppVersion}}",
  "timeOut": 30000
}

6.2.5 CNP Void Request example

Use transactionType=2 to void a prior transaction.

A Void must send:

  • the original originalAmount
  • the original originalApprovalCode
  • the original originalGatewayReferenceNumber
  • the exact same transactionHash returned by the transaction being voided
{
  "merchantId": "{{MerchantId}}",
  "identification": "{{Identification}}",
  "terminalId": "{{TerminalId}}",
  "terminalDateTime": "2026-09-10T14:30:00",
  "paymentType": 2,
  "transactionType": 2,
  "transactionHash": "{{TransactionHash}}",
  "cardPresent": false,
  "tokenNumber": "{{TokenNumber}}",
  "invoiceNumber": "INV-CNP-VOID",
  "amountOfSale": {{AmountOfSale}},
  "tax": {{Tax}},
  "baseStateTax": {{BaseStateTax}},
  "baseReducedTax": {{BaseReducedTax}},
  "stateTax": {{StateTax}},
  "cityTax": {{CityTax}},
  "reducedTax": {{ReducedTax}},
  "subTotal": {{SubTotal}},
  "tips": {{Tips}},
  "cashBack": {{CashBack}},
  "fee": {{Fee}},
  "grandTotal": {{GrandTotal}},
  "originalAmount": {{OriginalAmount}},
  "originalApprovalCode": "{{OriginalApprovalCode}}",
  "originalGatewayReferenceNumber": "{{OriginalGatewayReferenceNumber}}",
  "appVersion": "{{AppVersion}}",
  "timeOut": 30000
}

EVUAPI rejects a Void when the required transaction hash is missing.

6.3 CP Transactions

AttributeSpecification
MethodPOST
Path/api/v1/transactions
AudienceMerchant or POS application connected to a configured payment terminal
AuthenticationX-Merchant-Id, X-Terminal-Id, X-Identification
PurposeStart a card-present sale on the configured physical terminal.
CP discriminatorRequired value
cardPresenttrue
tokenNumberEmpty string or omitted as agreed for the integration
transactionType1 for a Sale request
paymentType2 for credit tender type

6.3.1 timeOut behavior

ValueBehaviorRequired client action
0Return the current state immediately after the CP request is accepted.Persist requestId and begin status retrieval when completed=false.
30000Wait for up to 30 seconds for a later state or final result.If completed=false when returned, continue status retrieval.
Important: timeOut controls how long the HTTP request waits. It does not cancel the terminal transaction and does not guarantee completion within that period.

6.3.2 CP Sale Request example

POST {{BaseUrl}}/api/v1/transactions
Content-Type: application/json
Accept: application/json
X-Merchant-Id: {{MerchantId}}
X-Terminal-Id: {{TerminalId}}
X-Identification: {{Identification}}

{
  "merchantId": "{{MerchantId}}",
  "identification": "{{Identification}}",
  "terminalId": "{{TerminalId}}",
  "terminalDateTime": "2026-09-03T14:35:00",
  "paymentType": 2,
  "transactionType": 1,
  "cardPresent": true,
  "tokenNumber": "",
  "invoiceNumber": "INV-20260903-0002",
  "amountOfSale": 25.00,
  "tax": 2.88,
  "stateTax": 2.63,
  "cityTax": 0.25,
  "reducedTax": 0.00,
  "subTotal": 25.00,
  "tips": 0.00,
  "cashBack": 0.00,
  "fee": 0.00,
  "grandTotal": 27.88,
  "originalAmount": 0.00,
  "originalGatewayReferenceNumber": "",
  "appVersion": "1.0.0",
  "timeOut": 0
}

The response may be intermediate or final. When completed=false, processor fields can be null and the merchant application must continue with Get Transaction Status. Do not create another sale solely because the first response is pending.

6.3.3 CP PreAuth / AuthOnly

Use transactionType=6 to request authorization without completing the sale.

{
  "merchantId": "{{MerchantId}}",
  "identification": "{{Identification}}",
  "terminalId": "{{TerminalId}}",
  "terminalDateTime": "2026-09-10T14:35:00",
  "paymentType": 2,
  "transactionType": 6,
  "cardPresent": true,
  "tokenNumber": "",
  "invoiceNumber": "INV-CP-PREAUTH",
  "amountOfSale": {{AmountOfSale}},
  "tax": {{Tax}},
  "baseStateTax": {{BaseStateTax}},
  "baseReducedTax": {{BaseReducedTax}},
  "stateTax": {{StateTax}},
  "cityTax": {{CityTax}},
  "reducedTax": {{ReducedTax}},
  "subTotal": {{SubTotal}},
  "tips": {{Tips}},
  "cashBack": {{CashBack}},
  "fee": {{Fee}},
  "grandTotal": {{GrandTotal}},
  "originalAmount": 0.0,
  "originalGatewayReferenceNumber": "",
  "appVersion": "{{AppVersion}}",
  "timeOut": 30000
}

6.3.4 CP Force / PreAuth Completion

Use transactionType=4 to complete a prior CP PreAuth/AuthOnly and send the original authorization context.

{
  "merchantId": "{{MerchantId}}",
  "identification": "{{Identification}}",
  "terminalId": "{{TerminalId}}",
  "terminalDateTime": "2026-09-10T14:35:00",
  "paymentType": 2,
  "transactionType": 4,
  "cardPresent": true,
  "tokenNumber": "",
  "invoiceNumber": "INV-CP-FORCE",
  "amountOfSale": {{AmountOfSale}},
  "tax": {{Tax}},
  "baseStateTax": {{BaseStateTax}},
  "baseReducedTax": {{BaseReducedTax}},
  "stateTax": {{StateTax}},
  "cityTax": {{CityTax}},
  "reducedTax": {{ReducedTax}},
  "subTotal": {{SubTotal}},
  "tips": {{Tips}},
  "cashBack": {{CashBack}},
  "fee": {{Fee}},
  "grandTotal": {{GrandTotal}},
  "originalAmount": {{OriginalAmount}},
  "originalApprovalCode": "{{OriginalApprovalCode}}",
  "originalGatewayReferenceNumber": "{{OriginalGatewayReferenceNumber}}",
  "appVersion": "{{AppVersion}}",
  "timeOut": 30000
}

6.3.5 CP Return

Use transactionType=3 for a card-present return/refund. When it references a prior transaction, send the original authorization context.

{
  "merchantId": "{{MerchantId}}",
  "identification": "{{Identification}}",
  "terminalId": "{{TerminalId}}",
  "terminalDateTime": "2026-09-10T14:35:00",
  "paymentType": 2,
  "transactionType": 3,
  "cardPresent": true,
  "tokenNumber": "",
  "invoiceNumber": "INV-CP-RETURN",
  "amountOfSale": {{AmountOfSale}},
  "tax": {{Tax}},
  "baseStateTax": {{BaseStateTax}},
  "baseReducedTax": {{BaseReducedTax}},
  "stateTax": {{StateTax}},
  "cityTax": {{CityTax}},
  "reducedTax": {{ReducedTax}},
  "subTotal": {{SubTotal}},
  "tips": {{Tips}},
  "cashBack": {{CashBack}},
  "fee": {{Fee}},
  "grandTotal": {{GrandTotal}},
  "originalAmount": {{OriginalAmount}},
  "originalApprovalCode": "{{OriginalApprovalCode}}",
  "originalGatewayReferenceNumber": "{{OriginalGatewayReferenceNumber}}",
  "appVersion": "{{AppVersion}}",
  "timeOut": 30000
}

6.3.6 CP Void / Reversal

Use transactionType=2 for Void or transactionType=11 for Reversal.

For Void, reuse the exact transactionHash from the transaction being voided.

{
  "merchantId": "{{MerchantId}}",
  "identification": "{{Identification}}",
  "terminalId": "{{TerminalId}}",
  "terminalDateTime": "2026-09-10T14:35:00",
  "paymentType": 2,
  "transactionType": {{OriginalTransactionType}},
  "transactionHash": "{{TransactionHash}}",
  "cardPresent": true,
  "tokenNumber": "",
  "invoiceNumber": "INV-CP-VOID-REVERSAL",
  "amountOfSale": {{AmountOfSale}},
  "tax": {{Tax}},
  "baseStateTax": {{BaseStateTax}},
  "baseReducedTax": {{BaseReducedTax}},
  "stateTax": {{StateTax}},
  "cityTax": {{CityTax}},
  "reducedTax": {{ReducedTax}},
  "subTotal": {{SubTotal}},
  "tips": {{Tips}},
  "cashBack": {{CashBack}},
  "fee": {{Fee}},
  "grandTotal": {{GrandTotal}},
  "originalAmount": {{OriginalAmount}},
  "originalApprovalCode": "{{OriginalApprovalCode}}",
  "originalGatewayReferenceNumber": "{{OriginalGatewayReferenceNumber}}",
  "appVersion": "{{AppVersion}}",
  "timeOut": 30000
}

6.3.7 CP Cash Sale

Use paymentType=5, transactionType=1, and cardPresent=true to submit a Cash sale through the terminal path. Sale does not include original-transaction fields.

{

  "merchantId": "{{MerchantId}}",

  "identification": "{{Identification}}",

  "terminalId": "{{TerminalId}}",

  "terminalDateTime": "2026-08-14T18:30:00",

  "paymentType": 5,

  "transactionType": 1,

  "stationNumber": {{StationNumber}},

  "cashierId": {{CashierId}},

  "cardPresent": true,

  "tokenNumber": "",

  "fullName": "John Smith",

  "amountOfSale": {{AmountOfSale}},

  "tax": {{Tax}},

  "baseStateTax": {{BaseStateTax}},

  "baseReducedTax": {{BaseReducedTax}},

  "stateTax": {{StateTax}},

  "cityTax": {{CityTax}},

  "reducedTax": {{ReducedTax}},

  "subTotal": {{SubTotal}},

  "tips": {{Tips}},

  "cashBack": {{CashBack}},

  "fee": {{Fee}},

  "grandTotal": {{GrandTotal}},

  "appVersion": "{{AppVersion}}",

  "timeOut": 30000

}

6.3.8 CP Cash Return

Use paymentType=5, transactionType=3, and cardPresent=true for a Cash return/refund through the terminal path. The collection includes original-transaction fields for a linked Return.

{

  "merchantId": "{{MerchantId}}",

  "identification": "{{Identification}}",

  "terminalId": "{{TerminalId}}",

  "terminalDateTime": "2026-08-14T18:30:00",

  "paymentType": 5,

  "transactionType": 3,

  "stationNumber": {{StationNumber}},

  "cashierId": {{CashierId}},

  "cardPresent": true,

  "tokenNumber": "",

  "fullName": "John Smith",

  "amountOfSale": {{AmountOfSale}},

  "tax": {{Tax}},

  "baseStateTax": {{BaseStateTax}},

  "baseReducedTax": {{BaseReducedTax}},

  "stateTax": {{StateTax}},

  "cityTax": {{CityTax}},

  "reducedTax": {{ReducedTax}},

  "subTotal": {{SubTotal}},

  "tips": {{Tips}},

  "cashBack": {{CashBack}},

  "fee": {{Fee}},

  "grandTotal": {{GrandTotal}},

  "originalAmount": {{OriginalAmount}},

  "originalApprovalCode": "{{OriginalApprovalCode}}",

  "originalGatewayReferenceNumber": "{{OriginalGatewayReferenceNumber}}",

  "appVersion": "{{AppVersion}}",

  "timeOut": 30000

}

6.3.9 CP ATH Movil Sale

Use paymentType=13, transactionType=1, and cardPresent=true for an ATH Movil sale through the terminal path. Sale does not include original-transaction fields.

{

  "merchantId": "{{MerchantId}}",

  "identification": "{{Identification}}",

  "terminalId": "{{TerminalId}}",

  "terminalDateTime": "2026-08-14T18:30:00",

  "paymentType": 13,

  "transactionType": 1,

  "stationNumber": {{StationNumber}},

  "cashierId": {{CashierId}},

  "cardPresent": true,

  "tokenNumber": "",

  "fullName": "John Smith",

  "amountOfSale": {{AmountOfSale}},

  "tax": {{Tax}},

  "baseStateTax": {{BaseStateTax}},

  "baseReducedTax": {{BaseReducedTax}},

  "stateTax": {{StateTax}},

  "cityTax": {{CityTax}},

  "reducedTax": {{ReducedTax}},

  "subTotal": {{SubTotal}},

  "tips": {{Tips}},

  "cashBack": {{CashBack}},

  "fee": {{Fee}},

  "grandTotal": {{GrandTotal}},

  "appVersion": "{{AppVersion}}",

  "timeOut": 30000

}

6.3.10 CP ATH Movil Return

Use paymentType=13, transactionType=3, and cardPresent=true for an ATH Movil return/refund through the terminal path. The collection includes original-transaction fields for a linked Return.

{

  "merchantId": "{{MerchantId}}",

  "identification": "{{Identification}}",

  "terminalId": "{{TerminalId}}",

  "terminalDateTime": "2026-08-14T18:30:00",

  "paymentType": 13,

  "transactionType": 3,

  "stationNumber": {{StationNumber}},

  "cashierId": {{CashierId}},

  "cardPresent": true,

  "tokenNumber": "",

  "fullName": "John Smith",

  "amountOfSale": {{AmountOfSale}},

  "tax": {{Tax}},

  "baseStateTax": {{BaseStateTax}},

  "baseReducedTax": {{BaseReducedTax}},

  "stateTax": {{StateTax}},

  "cityTax": {{CityTax}},

  "reducedTax": {{ReducedTax}},

  "subTotal": {{SubTotal}},

  "tips": {{Tips}},

  "cashBack": {{CashBack}},

  "fee": {{Fee}},

  "grandTotal": {{GrandTotal}},

  "originalAmount": {{OriginalAmount}},

  "originalApprovalCode": "{{OriginalApprovalCode}}",

  "originalGatewayReferenceNumber": "{{OriginalGatewayReferenceNumber}}",

  "appVersion": "{{AppVersion}}",

  "timeOut": 30000

}

6.3.11 CP Close Batch

Use transactionType=12 and cardPresent=true to close/settle the current terminal batch. This is a batch operation, not a tender-specific purchase. The example uses paymentType=2 to satisfy the current positive-paymentType requirement; App1 selects the Close Batch route independently of payment type.

{

  "merchantId": "{{MerchantId}}",

  "identification": "{{Identification}}",

  "terminalId": "{{TerminalId}}",

  "terminalDateTime": "2026-08-14T18:30:00",

  "paymentType": 2,

  "transactionType": 12,

  "stationNumber": {{StationNumber}},

  "cashierId": {{CashierId}},

  "cardPresent": true,

  "tokenNumber": "",

  "amountOfSale": 0.0,

  "tax": 0.0,

  "baseStateTax": 0.0,

  "baseReducedTax": 0.0,

  "stateTax": 0.0,

  "cityTax": 0.0,

  "reducedTax": 0.0,

  "subTotal": 0.0,

  "tips": 0.0,

  "cashBack": 0.0,

  "fee": 0.0,

  "grandTotal": 0.0,

  "appVersion": "{{AppVersion}}",

  "timeOut": 30000

}

All monetary fields in the App3 Close Batch example are literal zero values. Do not include original-transaction fields.

App1 performs its normal App2 logon and sends the settlement request to /startSettle. That internal request contains terminal/station/cashier identity, reference, session_id, receipt_output, and last_reference. It does not send amount, tip, tax, cashback, receipt_email, or manual_entry_indicator fields to /startSettle.

Evertec initially returns approval_code=ST with an internal transaction identifier. App1 polls /getTrxStatus and reports the final result to EVUAPI. App3 retrieves the result through the same Get Transaction Status endpoint used for other CP operations. The internal App2 correlation fields are not exposed in the public EvertecResponse.

6.4 Get Transaction Status

AttributeSpecification
MethodGET
Path/api/v1/transactions/{RequestId}
AudienceMerchant/POS or ecommerce application
AuthenticationSame X-Merchant-Id, X-Terminal-Id, and X-Identification used for creation
PurposeRetrieve the latest state and available result for an existing transaction.

Path parameters

ParameterTypeRequiredDescription
RequestIdstringYesThe requestId returned by Create Transaction.

Query parameters

ParameterRequiredDescription
merchantIdYesMerchant identity used to authorize access to the transaction.
terminalIdYesMerchant terminal identifier used to authorize access to the transaction.
identificationYesPhysical terminal identity; same logical identity as SerialNumber/ManNumber.
GET {{BaseUrl}}/api/v1/transactions/{{RequestId}}
Accept: application/json
X-Merchant-Id: {{MerchantId}}
X-Terminal-Id: {{TerminalId}}
X-Identification: {{Identification}}
Observed resultDeveloper action
completed=falsePersist the latest state and poll again using the agreed integration cadence.
completed=truePersist the final response and stop polling.
Status request times outRetry this GET with bounded backoff; do not submit a replacement sale.
Transaction not foundVerify environment, RequestId, and merchant-terminal identity before escalating.
Polling: Use the polling cadence and rate limits agreed for your integration profile. Do not busy-loop. Apply bounded backoff, jitter, and an overall reconciliation deadline.

7. Error handling and reconciliation

ConditionRequired handling
HTTP success; completed=falseThe request was served but the payment is not final. Retrieve status.
HTTP success; completed=trueUse status and processor fields to determine the final payment result.
Create request times out after requestId was receivedRetrieve status; do not create a replacement sale.
Create request outcome is unknownUse invoice/order correlation and status/support procedures before retrying.
Status GET fails transientlyRetry the GET with bounded exponential backoff and jitter.
Authorization or validation failureCorrect configuration or request data; do not retry unchanged.
Service failureRecheck health, preserve correlation data, and follow the agreed support path.

7.1 What to retain

  • Merchant invoice/order reference and requestId.
  • Status transitions and timestamps.
  • Final responseCode, processorResponseCode, approvalCode, and gatewayReferenceNumber when present.
  • Calling application version and environment name.
Never log: Payment tokens, live identity-header values, raw credentials, or unnecessary personal data.

Appendix A. Sanitized response examples

Examples: Values are sanitized illustrations of the documented response model.

A.1 Final CNP response

{
  "requestId": "6f6ad0b5-6e6d-4b8e-a863-bcc1b61e5f3a",
  "status": "Approved",
  "completed": true,
  "responseCode": "000",
  "processorResponseCode": "000",
  "responseText": "APPROVED",
  "approvalCode": "ABC123",
  "gatewayReferenceNumber": "00004577564",
  "authorizedAmount": 27.88,
  "tokenNumber": "TOKEN_REDACTED",
  "cardType": "VISA",
  "statusUrl": "/api/v1/transactions/6f6ad0b5-6e6d-4b8e-a863-bcc1b61e5f3a",
  "errorId": null
}

A.2 Intermediate CP response

{
  "requestId": "8c3983f2-e4e7-4f9c-9d41-0a0bbaf8f7e2",
  "status": "SentToTerminal",
  "completed": false,
  "responseCode": null,
  "processorResponseCode": null,
  "responseText": "Transaction accepted for terminal processing.",
  "approvalCode": null,
  "gatewayReferenceNumber": null,
  "authorizedAmount": null,
  "tokenNumber": null,
  "cardType": null,
  "statusUrl": "/api/v1/transactions/8c3983f2-e4e7-4f9c-9d41-0a0bbaf8f7e2",
  "errorId": null
}

A.3 Final status response

{
  "requestId": "8c3983f2-e4e7-4f9c-9d41-0a0bbaf8f7e2",
  "status": "Approved",
  "completed": true,
  "responseCode": "00",
  "processorResponseCode": "00",
  "responseText": "Approved",
  "approvalCode": "DEF456",
  "gatewayReferenceNumber": "987654321",
  "authorizedAmount": 27.88,
  "tokenNumber": "TOKEN_REDACTED",
  "cardType": "VISA",
  "statusUrl": "/api/v1/transactions/8c3983f2-e4e7-4f9c-9d41-0a0bbaf8f7e2",
  "errorId": null
}

Appendix B. Glossary

TermDefinition
CNPCard not present; a token-based transaction without physical card interaction at a terminal.
CPCard present; a transaction completed through the configured physical payment terminal.
EVUAPIEvertec Unified API customer integration service.
RequestIdCorrelation identifier used to retrieve the state and result of a transaction.
TokenNumberSensitive payment token used for a CNP transaction.
IdentificationConfigured terminal/device identification value used in customer requests.
completedBoolean indicating whether a transaction has reached a final state.

Subscribe to Documentation Updates

Receive a monthly summary of new and updated technical documents.

Was this helpful?

Yes  No
Previously
Evertec Unified API Integration Specification
Up Next
QuickSale 1.0 App User Guide

This website and content contains confidential, trade secret information, which is proprietary to Charge Anywhere, LLC, and its subsidiaries (collectively “Charge Anywhere®”) and is provided solely for the recipient's use in connection with the recipient’s participation in one of the Charge Anywhere’s Payment Gateway Programs. Charge Anywhere reserves the right to make changes to the specifications at any time and without notice. The information furnished by Charge Anywhere in this publication is believed to be accurate and reliable as of the date of its release; however, no responsibility is assumed by Charge Anywhere for its use, nor for infringements of patents or other rights of third parties resulting from its use, nor for the violation, misinterpretation, or misapplication of any laws, or any regulation of any credit card association including Visa USA, Visa International, or MasterCard International. No general license is granted under any patents, copyrights, or other intellectual property rights owned by Charge Anywhere and the recipient is only granted an end user license to use this information for the purpose of participating in one of Charge Anywhere’s Payment Gateway Programs, pursuant to an agreement with Charge Anywhere or one of its authorized Program partners. All modifications or improvements to any of the information and specifications in this document shall belong exclusively to Charge Anywhere, LLC. No unauthorized copying, disclosure, or use of this document is permitted without the express written consent of the Charge Anywhere, LLC.

  • Privacy Policy
  • Terms of Use
  • Copyright 2024 Charge Anywhere. All Rights Reserved

×