Cancel a PaymentSession as a server
Use the SDK for application integration. This read-only reference covers Commerce, Customer Auth, Membership and Events.
All HTTP operationsRequires a tenant server credential with write scope. Optional initiatedBy (customer or operator) reports the initiator on behalf of that authenticated tenant server; omission defaults to operator. It grants no authority and preserves tenant and cancelability checks, including the PortOne Standard restriction. Retry with the original idempotency key preserves previously stored cancellation attribution, not the final no-capture verification method or actual customer departure cause. PortOne Hosted close alone does not confirm no capture or end the session; deferred expiry, webhook or reconcile release retains stored attribution even for omitted-field server calls and browser cancellation. Absent or null reasons keep existing expiry/provider classification without backfill. Deploy Console support before publishing the SDK and enabling callers to send this field; older Consoles reject it with 400 validation_failed without executing cancellation or releasing the slot. Older request/response shapes remain compatible, while later cancellationReason values may retain operator/customer instead of expired/provider.
publishableKeyserverSecretKeyX-Publishable-Key<token>Tenant publishable key for authentication (sent via X-Publishable-Key header)
AuthorizationBearer <token>Public integration credential: opaque sk01_ secret API key only; PAT and Customer JWT are not supported by this scheme. Requires tenant binding and the read or write scope named by the operation.
X-Idempotency-Key*stringCaller-generated retry identity. Reuse the same key only when retrying the same logical operation.
^(?:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89aAbB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|ik_[A-Za-z0-9_-]{22})$length <= 255application/json- body
paymentSessionId*string1 <= length <= 255initiatedBy?string"customer""operator"Cancel a PaymentSession as a server result
application/json- response
id*string1 <= lengthmoney*expiresAt*|date-timeprovider*"toss""toss"providerStatus*string"requires_payment_method""requires_action"sessionRole*"active""active"presentationStatus*"actionable""actionable"finalizationStatus*"not_ready""not_ready"nextAction*reconciliation*order*|nullExamples may be generated from schemas; they are illustrative, not recorded successful API calls. Example snippets may omit required authentication headers.
curl -X POST 'https://api.01.software/api/payment-sessions/server/cancel' \ -H 'X-Idempotency-Key: string' \ -H 'Content-Type: application/json' \ -d '{ "paymentSessionId": "string"}'{ "id": "string", "money": { "amountMinor": 0, "currency": "string" }, "expiresAt": "2019-08-24T14:15:22Z", "provider": "toss", "providerStatus": "requires_payment_method", "sessionRole": "active", "presentationStatus": "actionable", "finalizationStatus": "not_ready", "nextAction": { "type": "toss_widget", "clientKey": "string", "paymentMethodVariantKey": "string", "agreementVariantKey": "string", "providerOrderId": "string", "providerCustomerKey": "string", "orderName": "string", "customerName": "string", "customerEmail": "user@example.com" }, "reconciliation": { "status": "none" }, "order": null}