# /catalogs/transaction/cancel-reasons

Get available cancellation reasons
## Purpose
Returns the list of available cancellation reasons for transactions. These reasons are required when cancelling a transaction via `DELETE /transaction/cancel`.
## When to Use
Use this endpoint when you need to:
- Populate a cancellation reason dropdown when the user wants to cancel a transaction
- Obtain the `reasonId` and `reasonName` values required by the `DELETE /transaction/cancel` endpoint

## What Happens Next
Use the returned `reasonId` and `reasonName` values directly in the `DELETE /transaction/cancel` request body fields `reasonId` and `reasonName`.
## Authentication
Requires `x-client-id` and `x-secret-key` headers for partner authentication.
## Notes
- Returns only active cancellation reasons (available for agency-type cancellations)
- Results are ordered alphabetically by description

## Common Errors
- **400000** - Invalid request format
- **401000** - Invalid credentials (verify x-client-id and x-secret-key headers)
- **403001** - Partner not authorized for this endpoint
- **500000** - Internal server error

Endpoint: GET /catalogs/transaction/cancel-reasons
Version: 1.0.0

## Query parameters:

  - `validations` (string)
    Return validation schema instead of executing the request.

## Header parameters:

  - `x-client-id` (string, required)
    Unique identifier assigned to the integrating client. It determines the validation rules, allowed values, compliance policies, and operational limits applied to the request.

  - `x-secret-key` (string, required)
    Secret authentication key associated with the client. It is used to authorize the request and must be kept strictly confidential.

## Response 200 fields (application/json):

  - `reasonId` (string)
    Cancellation reason identifier. Use this value as `reasonId` in `DELETE /transaction/cancel`.
    Example: 1

  - `reasonName` (string)
    Cancellation reason description. Use this value as `reasonName` in `DELETE /transaction/cancel`.
    Example: CAMBIO DE MODALIDAD DE PAGO

## Response 400 fields (application/json):

  - `errors` (array)

  - `errors.status` (string)
    Always "failed" for errors.
    Example: failed

  - `errors.code` (integer)
    Numeric error code.
    Example: 422003

  - `errors.message` (string)
    Human-readable error description.
    Example: Inbound transaction can only be cancelled when status is I (in process) or H (on hold). Current: T

  - `errors.details` (string)
    Optional additional context or field name.
    Example: uuid

## Response 401 fields (application/json):

  - `errors` (array)

  - `errors.status` (string)
    Always "failed" for errors.
    Example: failed

  - `errors.code` (integer)
    Numeric error code.
    Example: 422003

  - `errors.message` (string)
    Human-readable error description.
    Example: Inbound transaction can only be cancelled when status is I (in process) or H (on hold). Current: T

  - `errors.details` (string)
    Optional additional context or field name.
    Example: uuid

## Response 403 fields (application/json):

  - `errors` (array)

  - `errors.status` (string)
    Always "failed" for errors.
    Example: failed

  - `errors.code` (integer)
    Numeric error code.
    Example: 422003

  - `errors.message` (string)
    Human-readable error description.
    Example: Inbound transaction can only be cancelled when status is I (in process) or H (on hold). Current: T

  - `errors.details` (string)
    Optional additional context or field name.
    Example: uuid

## Response 500 fields (application/json):

  - `errors` (array)

  - `errors.status` (string)
    Always "failed" for errors.
    Example: failed

  - `errors.code` (integer)
    Numeric error code.
    Example: 422003

  - `errors.message` (string)
    Human-readable error description.
    Example: Inbound transaction can only be cancelled when status is I (in process) or H (on hold). Current: T

  - `errors.details` (string)
    Optional additional context or field name.
    Example: uuid

