Resolve a payment amount mismatch
Idempotently accepts the provider-confirmed amount or retains the originally requested amount, then atomically finalizes the already provider-succeeded payment. Cross-currency reviews can only retain the requested amount. Operator/owner permission only.
Authorization
bearer In: header
Path Parameters
Header Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://<api-host>/v1/payments/string/amount-mismatch" \ -H "Idempotency-Key: string" \ -H "Content-Type: application/json" \ -d '{ "decision": "approve" }'{
"data": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"tenantId": "f97df110-f4de-492e-8849-4a6af68026b0",
"livemode": true,
"status": "processing",
"merchantId": "c3073b9d-edd0-49f2-a28d-b7ded8ff9a8b",
"amount": {
"currency": "string",
"valueMinor": 9007199254740991
},
"amountBreakdown": {
"authorized": {
"currency": "string",
"valueMinor": 9007199254740991
},
"captured": {
"currency": "string",
"valueMinor": 9007199254740991
},
"refunded": {
"currency": "string",
"valueMinor": 9007199254740991
},
"fee": {
"currency": "string",
"valueMinor": 9007199254740991
},
"net": {
"currency": "string",
"valueMinor": 9007199254740991
}
},
"captureMethod": "automatic",
"merchantReference": "string",
"checkoutSessionId": "e4b3bd08-5189-40bd-bc1b-0dd256297c90",
"paymentMethodType": "string",
"action": {
"type": "redirect",
"url": "http://example.com",
"data": {
"threeDSToken": "string",
"authenticationMethod": "string",
"displayMessage": "string",
"expiresIn": 0
}
},
"errorCode": "string",
"errorMessage": "string",
"approved": true,
"providerReference": "string",
"threeDSResult": {
"version": "1.0",
"status": "authenticated",
"statusReason": "string",
"eci": "string",
"cavv": "string",
"xid": "string",
"dsTransId": "string",
"enrolled": "Y",
"liabilityShift": true,
"challengeFlow": "frictionless",
"challenged": true,
"challengeCancelled": true,
"exemptionApplied": "low_value",
"messageVersion": "string",
"serverTransId": "string",
"acsTransId": "string"
},
"metadata": {
"property1": "string",
"property2": "string"
},
"createdAt": "string",
"updatedAt": "string"
}
}List payments
Returns a paginated list of payments visible to the caller. Merchant-scoped API keys are auto-restricted to their own merchant, and test/live mode is fixed by the authenticated key rather than a query parameter. Filters: `merchantId`, `status`. Uses cursor-based pagination — pass `cursor` from a previous response to fetch the next page. Default page size is 20, maximum 100.
Create refund for payment
Creates a refund against an existing captured payment. The `paymentId` is taken from the URL path. Omit `amount` to refund the full remaining capturable amount, or specify a partial `amount` when the routed provider supports partial refunds. Provider capabilities apply: Ecommpay currently permits one lifetime full refund per payment and rejects partial or subsequent refunds. Pass an `Idempotency-Key` header to safely retry without double-refunding.