In-Store Payments
Update a payment
Learn how to update an existing payment for the following use cases:
- Full reversal
- Partial reversal
Before you begin
Review the following prerequisites to update a payment:
- Learn about how to Authorize a payment.
- Store the
transactionIdfrom the approved authorization response.
Full reversal (void)
Perform full reversal when a transaction is cancelled shortly after authorization, eliminating the hold on cardholder funds by using the PATCH /payments/{id} endpoint. You must execute as soon as the transaction is voided to minimize cardholder impact.
- Send the
transactionIdfrom the approved authorization response in theidpath parameter. - Set
isVoidto true to indicate this is a full reversal/void transaction. Fully reverses an existing authorization before settlement, prior to the daily cutoff. - Behavior is unchanged from current Payments API, but in card-present flows it is more closely tied to real-time Point of Sale (POS) cancellations.
HTTP Method: PATCH
Endpoint: /payments/{id}
Scenario: Fully reversing or voiding an authorization.
Json
{
"isVoid": true
}Response:
Json
{
"transactionId": "fdaad5be-8de0-456a-82a0-e8b7a8f34b26",
"requestId": "53eb4272-a6b6-4dc1-b1da-fa1d93074f59",
"transactionState": "VOIDED",
"responseStatus": "SUCCESS",
"responseCode": "APPROVED",
"responseMessage": "Transaction approved by Issuer",
"paymentMethodType": {
"card": {
"accountNumberType": "SAFETECH_ENCRYPTION",
"cardType": "VI",
"cardTypeName": "VISA",
"maskedAccountNumber": "400129XXXXXX1488",
"networkResponse": {
"last4CardNumber": "0000",
"networkTransactionId": "123456789012345",
"networkResponseCode": "00"
},
"authentication": {
"authenticationValueResponse": {
"code": "0"
}
}
}
},
"initiatorType": "CARDHOLDER",
"accountOnFile": "NOT_STORED",
"isVoid": true,
"transactionDate": "2026-07-13T07:47:51.934Z",
"approvalCode": "286292",
"hostMessage": "00",
"isAmountFinal": true,
"amount": 2200,
"currency": "EUR",
"remainingAuthAmount": 0,
"merchant": {
"merchantId": "109151579001",
"merchantSoftware": {
"companyName": "JPMC",
"productName": "CP1",
"version": "20240600.1.6",
"softwareId": "027C"
},
"merchantCategoryCode": "4511"
},
"partialAuthorizationSupport": "SUPPORTED",
"partialAuthorization": false,
"paymentRequest": {
"paymentRequestId": "fdaad5be-8de0-456a-82a0-e8b7a8f34b26",
"paymentRequestStatus": "CANCELLED",
"authorizations": [
{
"authorizationId": "fdaad5be-8de0-456a-82a0-e8b7a8f34b26",
"amount": 2200,
"transactionStatusCode": "VOIDED",
"authorizationType": "INITIAL",
"transactionTimestamp": "2026-07-13T07:47:33.134Z",
"expirationTimestamp": "2031-03-16T00:00:00Z"
}
]
},
"invoiceNumber": "939680",
"subMerchantSupplementalData": {
"merchantIdentification": {
"subMerchantId": "39016507",
"sellerIdentifier": "123456"
}
},
"pointOfInteraction": {
"device": {
"capabilities": [
"EMV_CONTACT"
],
"pinCapability": "NO_PIN",
"location": "ON_PREMISE",
"attendance": "ATTENDED",
"applicationInfo": {
"deviceType": "IPHONE"
},
"vendorId": "0181",
"terminalDeviceSerialNumber": "P10_C467D3003",
"deviceId": "0001"
},
"inPerson": {
"isCardholderPresent": true,
"entryMethod": "EMV_CONTACT"
}
},
"merchantDefined": {
"merchantDefinedData": "HjBerA1jsrYy3eMZCZhy2H"
}
}Partial reversal
Perform partial reversal when the final amount is lower than the authorized hold; ensures the remaining hold is reduced prior to capture or completion by using the PATCH /payments/{id} endpoint.
- Send the
transactionIdfrom the approved authorization response in theidpath parameter. - Particularly relevant for industries with estimated pre-authorizations (for example, fuel, hospitality).
Json
{
"captureMethod": "NOW",
"amount": 1000
}Response:
Json
{
"transactionId": "6a67353f-4737-4bf3-ab00-f177f0a5800b",
"requestId": "ae5a9b0d-0e51-404b-848f-764c3d4540d5",
"transactionState": "CLOSED",
"responseStatus": "SUCCESS",
"responseCode": "ACCEPTED",
"responseMessage": "Transaction accepted",
"paymentMethodType": {
"card": {
"accountNumberType": "SAFETECH_ENCRYPTION",
"cardType": "VI",
"cardTypeName": "VISA",
"maskedAccountNumber": "400129XXXXXX1488",
"networkResponse": {
"last4CardNumber": "0000",
"networkTransactionId": "123456789012345",
"paymentAccountReference": "13456789012345678923452349237",
"networkResponseCode": "00"
},
"authentication": {
"authenticationValueResponse": {
"code": "0"
}
},
"paymentAccountReference": "13456789012345678923452349237"
}
},
"captureMethod": "NOW",
"captureTime": "2026-07-13T08:30:36.630Z",
"initiatorType": "CARDHOLDER",
"accountOnFile": "NOT_STORED",
"isVoid": false,
"transactionDate": "2026-07-13T08:30:36.630Z",
"approvalCode": "263712",
"hostMessage": "00",
"isAmountFinal": true,
"amount": 1000,
"currency": "EUR",
"remainingRefundableAmount": 1000,
"remainingAuthAmount": 0,
"totalAuthorizedAmount": 2200,
"merchant": {
"merchantId": "109151579001",
"merchantSoftware": {
"companyName": "JPMC",
"productName": "CP1",
"version": "20240600.1.6",
"softwareId": "027C"
},
"merchantCategoryCode": "4511",
"softMerchant": {
"name": "softmerchant",
"address": {
"line1": "18 BAYARD AVE",
"city": "Paris",
"state": "FR",
"postalCode": "068912",
"countryCode": "FRA"
}
}
},
"partialAuthorizationSupport": "SUPPORTED",
"partialAuthorization": false,
"paymentRequest": {
"paymentRequestId": "6a67353f-4737-4bf3-ab00-f177f0a5800b",
"paymentRequestStatus": "CLOSED",
"authorizations": [
{
"authorizationId": "6a67353f-4737-4bf3-ab00-f177f0a5800b",
"amount": 2200,
"transactionStatusCode": "CAPTURED",
"authorizationType": "INITIAL",
"transactionTimestamp": "2026-07-13T08:29:35.854Z",
"expirationTimestamp": "2031-03-16T00:00:00Z"
}
],
"captures": [
{
"captureId": "6a67353f-4737-4bf3-ab00-f177f0a5800b",
"amount": 1000,
"transactionStatusCode": "CLOSED",
"captureRemainingRefundableAmount": 1000,
"referencedAuthorizationIdentifier": "6a67353f-4737-4bf3-ab00-f177f0a5800b"
}
]
},
"invoiceNumber": "939680",
"subMerchantSupplementalData": {
"merchantIdentification": {
"subMerchantId": "39016507",
"sellerIdentifier": "123456"
}
},
"pointOfInteraction": {
"device": {
"capabilities": [
"EMV_CONTACT"
],
"pinCapability": "NO_PIN",
"location": "ON_PREMISE",
"attendance": "ATTENDED",
"applicationInfo": {
"deviceType": "IPHONE"
},
"vendorId": "0181",
"terminalDeviceSerialNumber": "P10_C467D3003",
"deviceId": "0001"
},
"inPerson": {
"isCardholderPresent": true,
"entryMethod": "EMV_CONTACT"
}
},
"merchantDefined": {
"merchantDefinedData": "HjBerA1jsrYy3eMZCZhy2H"
}
}