Skip to main content
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:

  1. Learn about how to Authorize a payment.
  2. Store the transactionId from 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 transactionId from the approved authorization response in the id path parameter.
  • Set isVoid to 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.

{
  "isVoid": true
}

Response:

{
  "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 transactionId from the approved authorization response in the id path parameter.
  • Particularly relevant for industries with estimated pre-authorizations (for example, fuel, hospitality).
{
  "captureMethod": "NOW",
  "amount": 1000
}

Response:

{
  "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"
  }
}

Payment fields 

Is this page helpful?