---
title: "Cancel check payment"
method: POST
path: "/check/{checkId}/cancel"
tags: ["Check"]
---

# Cancel check payment

`POST /check/{checkId}/cancel`

## Request

- Base URL: `https://api.natural.com`
- URL: `https://api.natural.com/check/{checkId}/cancel`
- Auth: HTTP bearer

Cancel a check payment before submission

## Path parameters

- `checkId` string, required: Check ID (chk_*).

## Headers

- `Idempotency-Key` string, required
- `X-Instance-ID` string, nullable

## Request body

- object
  - `data` object, required
    - `attributes` object, required
      - `customerPartyId` string: Customer party to act for (pty_*). Omit to act as your own party. To act for another party, pass the ID of a party that has authorized you to act on its behalf.
      - `reason` string, required: Why the check is being canceled. Maximum 500 characters.

## Response `200`

Successful Response

- object
  - `data` object, required
    - `type` 'check', required: Resource type. Always `check`.
    - `id` string, required: Check ID (chk_*).
    - `attributes` object, required
      - `amount` integer, required: Amount in cents.
      - `currency` 'USD', required: Currency code.
      - `status` 'CREATED' | 'AWAITING_APPROVAL' | 'APPROVAL_DENIED' | 'PROCESSING' | 'COMPLETED' | 'RETURNED' | 'CANCELING' | 'CANCELED' | 'EXPIRED' | 'REJECTED' | 'FAILED', required: Check status, in lifecycle order: CREATED, AWAITING_APPROVAL, PROCESSING, COMPLETED; APPROVAL_DENIED, RETURNED, CANCELING, CANCELED, EXPIRED, REJECTED, or FAILED end it.
      - `memo` string, required: Memo printed on the check.
      - `message` string, nullable, required: Message printed on the check, or null.
      - `internalDescription` string, nullable, required: Description for your internal reference, or null. Never printed on the check or shared with the counterparty.
      - `deliveryMethod` 'USPS_FIRST_CLASS' | 'FEDEX_TWO_DAY' | 'FEDEX_OVERNIGHT', required: How the check is mailed.
      - `checkNumber` string, nullable, required: Printed check number, or null.
      - `voidDate` string, nullable, required: Date after which the check is void, or null.
      - `payee` object, required: Payee and the address the check was mailed to, captured when the check was created.
        - `name` string, required: Payee name printed on the check.
        - `line1` string, required: Payee street address line 1.
        - `line2` string, nullable, required: Payee street address line 2.
        - `city` string, required: Payee city.
        - `state` string, required: Payee state.
        - `postalCode` string, required: Payee postal code.
        - `addressVersion` integer, required: Version of the recipient address captured when the check was created.
      - `delivery` object, nullable, required: Delivery tracking for the mailed check, or null before it is rendered.
        - `status` 'CREATED' | 'RENDERED_PDF' | 'MAILED' | 'IN_TRANSIT' | 'IN_LOCAL_AREA' | 'PROCESSED_FOR_DELIVERY' | 'DELIVERED' | 'REROUTED' | 'RETURNED_TO_SENDER' | 'FAILED', required: USPS delivery status.
        - `trackingUrl` string, nullable, required: Tracking URL for the mailed check, or null.
        - `mailedAt` string, nullable, required: RFC 3339 timestamp when the check was mailed, or null.
        - `deliveredAt` string, nullable, required: RFC 3339 timestamp when the check was delivered, or null.
        - `returnedToSenderAt` string, nullable, required: RFC 3339 timestamp when the check was returned to sender, or null.
        - `updatedAt` string, nullable, required: RFC 3339 timestamp when delivery was last updated, or null.
      - `presentmentReturns` object[], required: Presentment returns observed without moving the payment status.
        - `code` string, required: Presentment return code.
        - `reason` string, required: Presentment return reason.
        - `observedAt` string, required: RFC 3339 timestamp when the presentment return was observed.
      - `return` object, nullable, required: Post-settlement return details, or null.
        - `code` string, required: Return code.
        - `reason` string, nullable, required: Return reason, or null.
        - `observedAt` string, nullable, required: RFC 3339 timestamp when the return was observed, or null.
      - `cancellation` object, nullable, required: Cancellation details when the check is canceling or canceled, or null.
        - `reason` string, nullable, required: Cancellation reason, or null.
        - `returnCode` string, nullable, required: Return code that drove the cancellation, or null.
        - `requestedAt` string, nullable, required: RFC 3339 timestamp when cancellation was requested, or null.
        - `confirmedAt` string, nullable, required: RFC 3339 timestamp when cancellation was confirmed, or null.
      - `failure` object, nullable, required: Failure details when the check failed, or null.
        - `code` string, nullable, required: Failure code, or null.
        - `reason` string, nullable, required: Failure reason, or null.
      - `canonicalReason` string, nullable, required: Canonical terminal reason, or null.
      - `submittedAt` string, nullable, required: RFC 3339 timestamp when the check was submitted, or null.
      - `issuedAt` string, nullable, required: RFC 3339 timestamp when the check was issued, or null.
      - `stopRequestedAt` string, nullable, required: RFC 3339 timestamp when a stop was requested, or null.
      - `completedAt` string, nullable, required: RFC 3339 timestamp when the check completed, or null.
      - `returnedAt` string, nullable, required: RFC 3339 timestamp when the check was returned, or null.
      - `canceledAt` string, nullable, required: RFC 3339 timestamp when the check was canceled, or null.
      - `expiredAt` string, nullable, required: RFC 3339 timestamp when the check expired, or null.
      - `rejectedAt` string, nullable, required: RFC 3339 timestamp when the check was rejected, or null.
      - `terminalAt` string, nullable, required: RFC 3339 timestamp when the check reached a terminal status, or null.
      - `createdAt` string, required: RFC 3339 timestamp when the check was created.
      - `updatedAt` string, required: RFC 3339 timestamp when the check was last updated.
    - `relationships` object, required
      - `customerParty` object, required: Party the check was created for.
        - `data` object, required: Related resource identifier.
          - `type` 'party', required: Resource type. Always `party`.
          - `id` string, required
      - `wallet` object, required: Wallet the check pays from.
        - `data` object, required: Related resource identifier.
          - `type` 'wallet', required: Resource type. Always `wallet`.
          - `id` string, required
      - `externalParty` object, required: External party paid.
        - `data` object, required: Related resource identifier.
          - `type` 'external_party', required: Resource type. Always `external_party`.
          - `id` string, required

## Other responses

- `400`: Validation Error
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found. Returned when the resource does not exist, or when it exists but is not accessible to your account. The two cases are intentionally indistinguishable, so that resource IDs cannot be enumerated by probing.
- `409`: Conflict
- `422`: Validation Error. The response contains one error object for each invalid request value.
- `428`: Precondition Required
- `429`: Too Many Requests
- `500`: Internal Server Error
- `501`: Not Implemented
- `502`: Bad Gateway
- `503`: Service Unavailable

## Changes

- **2026-10-14** `fc6e70702c11`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/natural/apis/natural-api/changes/check/:checkId/cancel/post.md)

---

[API](https://skmtc.dev/natural/apis/natural-api.md) - [All operations](https://skmtc.dev/natural/apis/natural-api/llms.txt) - [OpenAPI document](https://skmtc.dev/natural/apis/natural-api/revisions/59c1208fa5dc?raw)
