Cancel payment
Cancels a payment that has not yet been captured. Valid for payments in processing, requires_action, or requires_capture status — cancellation voids the authorization without creating a refund. Returns 409 if the payment is already captured or in a terminal state.
Authorization
bearer In: header
Path Parameters
Response Body
application/json
curl -X POST "https://api.miracle.com/v1/payments/string/cancel"{
"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": 0
},
"amountBreakdown": {
"authorized": {
"currency": "string",
"valueMinor": 0
},
"captured": {
"currency": "string",
"valueMinor": 0
},
"refunded": {
"currency": "string",
"valueMinor": 0
},
"fee": {
"currency": "string",
"valueMinor": 0
},
"net": {
"currency": "string",
"valueMinor": 0
}
},
"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 available payment methods
Returns payment methods available to the caller for the current checkout context. Two auth flows are supported: (1) client_secret — the session derives currency, merchant, and country; query params are ignored. (2) publishable_key — the `currency` query parameter is REQUIRED and the merchant is taken from the API key owner. Use this endpoint to render payment method selection in HPP or SDK flows.
Capture payment
Captures a payment in `requires_capture` status. Only valid for payments created with `captureMethod: "manual"` that are currently in the `requires_capture` status. Captures the full authorized amount — partial captures are not currently supported. Returns 409 if the payment is not in `requires_capture` status.