Skip to main content
POST
Cancel a payment link
Cancellation is permanent. Cancelled links cannot be reactivated — create a new link to accept payments again. Only ACTIVE links can be cancelled.
Returns the cancelled payment link with status: "CANCELLED", cancelled_at populated, and cancellation_reason if a reason was provided.

Idempotency

An Idempotency-Key header is optional here — cancel is idempotent by nature, so re-cancelling an already-cancelled link is a safe no-op. If you do send one, use a unique client-generated identifier (letters, digits, dot, hyphen, underscore; 8–64 characters). The optional reason is stored for audit purposes.

Required scope

payment_links.cancel

Authorizations

Authorization
string
header
required

API key passed as a bearer token. Use sk_live_ keys for production and sk_test_ keys for sandbox. Keys are provisioned during merchant onboarding.

Headers

Idempotency-Key
string

Optional. Cancel is idempotent by nature — re-cancelling an already-cancelled link is a safe no-op — so a key is accepted but not required. Same charset as create: letters, digits, dot (.), hyphen (-), underscore (_); 8–64 characters.

Pattern: ^[A-Za-z0-9._-]{8,64}$

Path Parameters

id
string<uuid>
required

The payment link ID (UUID v4).

Body

application/json
reason
string

Why the link is being cancelled. Stored for audit purposes.

Maximum string length: 500
Example:

"Customer requested cancellation"

Response

The cancelled payment link

data
object
required

The payment link object returned by all endpoints.