---
title: "Cancel a Hold"
method: POST
path: "/v1/holds/{id}/cancel"
---

# Cancel a Hold

`POST /v1/holds/{id}/cancel`

Cancels the hold on a funds being held by an uncaptured Hold. 

A Hold object can be canceled when it is in the status of: `requires_capture`. Once canceled, the remaining `amount_capturable` will automatically be released and no additional charges can be created from the Hold.

## Response `200`

Example response

- Hold
  - `id` string — Unique identifier for Hold object.
  - `resource` string — String representing the resource type.
  - `amount` integer — Amount held, in minor units.
  - `amount_capturable` integer — Amount that is still captureable from the Hold, in minor units.
  - `amount_human_readable` string — Amount in human readable format.
  - `billing_details` BillingDetails — Billing information associated with the customer at the time of the session.
    - `address` Address
      - `city` string — City, district, suburb, town, or village.
      - `country` string — Two-letter country code (ISO 3166-1 alpha-2).
      - `line1` string — Address line 1 (e.g., street, PO Box, or company name).
      - `line2` string — Address line 2 (e.g., apartment, suite, unit, or building).
      - `postal_code` string — ZIP or postal code.
      - `state` string — State, county, province, or region.
    - `name` string — Full name.
    - `email` string, email — Email address.
    - `phone` string — Billing phone number.
  - `created` string — Time at which the resource was created. ISO String format.
  - `currency` string — Three-letter ISO currency code, in lowercase.
  - `canceled` boolean — Indicates that the hold on the funds was cancelled and they were released back to the customer.
  - `canceled_at` string — Populated when status is canceled and `canceled=true`. Indicates time at which the Hold was canceled, ISO String format.
  - `cancellation_reason` 'hold_on_funds_expired' | 'requested_by_merchant' — The reason the hold on the funds was canceled.
  - `charges` Charges
    - `data` object[] — List of all the successful charges created from the resource.
    - `url` string — URL where the resources can be accessed directly.
  - `customer` string — ID of the customer this Hold is for if one exists.
  - `customer_reference_id` string — A unique identifier for your customer, This is a customer ID that identifies the customer that the Hold belongs to.
  - `description` string — A string attached to the resource. Often useful for displaying to users.
  - `failure_code` string
  - `failure_message` string
  - `metadata` object — Set of key-value pairs that you can attach to the resource.
  - `payment_session` string — ID of the Payment Session that created the Hold if one exsited.
  - `payment_method` string — ID of the payment method used in this Hold.
  - `payment_method_details` PaymentMethodDetails
    - `type` string — The type of payment method.
    - `card` object — If this is a card payment, this object contains info card payment method used for the payment.
      - `bin` string — The bin of the card.
      - `brand` string — The brand of the card.
      - `country` string — Two-letter ISO code representing the country of the card.
      - `exp_month` string — Two-digit string representing the card’s expiration month.
      - `exp_year` string — Four-digit string representing the card’s expiration year.
      - `fingerprint` string — Uniquely identifies this particular card number. You can use this attribute to check whether two customers who’ve signed up with you are using the same card number.
      - `funding` string — Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`.
      - `last4` string — The last four digits of the card.
      - `network` string — Identifies which network this payment was processed on.
      - `token` string — A token that identifies the payment method in Pay.com's Tokenization Vault.
      - `security_checks` object — Result of security checks that ran on the card.
        - `address_line1_check` string
        - `address_postal_code_check` string
        - `cvc_check` string
      - `three_d_secure` object — Populated if this payment used 3D Secure authentication.
        - `authentication_flow` string — For authenticated transactions: how the customer was authenticated by the issuing bank.
        - `result` string — Indicates the outcome of 3D Secure authentication.
        - `result_reason` string — Additional information about why 3D Secure succeeded or failed based on the result.
        - `version` string — The version of 3D Secure that was used.
        - `eci` string — ECI Indicator from the 3D Secure authetication.
      - `wallet` object
        - `type` 'google_pay' | 'apple_pay'
  - `payment_method_options` PaymentMethodOptions
    - `card` PaymentMethodOptionsCard
      - `accepted_card_brands` string[] — List of card brands to accept for this payment
      - `accepted_card_categories` string[] — List of card categories to accept for this payment
      - `accepted_card_funding` string[] — List of card funding to accept for this payment
      - `accepted_card_jurisdictions` string[] — List of payment jurisdictions to accept for this payment
      - `duplicate_card_check` boolean — Whether to perform a duplicate card check and bblock (same card on more than 1 customer)
      - `enforce_customer_name_as_cardholder_name` boolean — Whether to enforce the customer name as the card holder name
      - `security_checks` PaymentMethodOptionsCardSecurityChecks
        - `address_line1_check` boolean — Indicats whether the AVS check for address line 1 should be performed
        - `address_postal_code_check` boolean — Indicats whether the AVS check for postal code should be performed
        - `cvv_check` boolean — Indicats whether CVV check should be performed
      - `request_threed_secure` 'none' | 'automatic' | 'challenge' | 'exemption' — Control the 3DS flow for the payment
    - `us_bank_account` PaymentMethodOptionsUSBankAccount
      - `ach_payment_type` 'next_day' | 'same_day' | 'rtp' — The type of ACH payment
  - `reference` string — A unique string to reference the Hold that was entered while creating the resource. Can be used to reconcile the object with your internal systems.
  - `shipping` ShippingDetails — Shipping information for the payment.
    - `address` Address
      - `city` string — City, district, suburb, town, or village.
      - `country` string — Two-letter country code (ISO 3166-1 alpha-2).
      - `line1` string — Address line 1 (e.g., street, PO Box, or company name).
      - `line2` string — Address line 2 (e.g., apartment, suite, unit, or building).
      - `postal_code` string — ZIP or postal code.
      - `state` string — State, county, province, or region.
    - `name` string — Full name.
    - `phone` string — Recipient phone.
  - `statement_descriptor_suffix` string — Provides information about the payment that customers can see on their charge statements. Concatenated with the statement descriptor that’s set on the account during onboarding the complete statement descriptor, maximum of 22 characters for the concatenated descriptor.
  - `status` 'requires_capture' | 'succeeded' | 'failed' | 'requires_authentication' | 'requires_confirmation' — Status of the Hold.

---

[API](https://skmtc.net/pay/apis/pay-com-api.md) · [All operations](https://skmtc.net/pay/apis/pay-com-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pay/pay-com-api/versions/53cd74fc31e3/schema)
