# Crear un Consentimiento

Cree el Consentimiento inicial para un Método de Pago. Una vez que cree un Consentimiento, puede cargar documentos de respaldo que sirvan como consentimiento de su cliente para debitar su cuenta bancaria utilizando el endpoint Upload Consent Files.

Endpoint: POST /consents
Version: 1.0.0
Security: ApiKeyAuth, ApiKeySecret

## Request fields (application/json):

  - `paymentMethodId` (string, required)
    El identificador único creado por Belvo utilizado para referenciar el método de pago para el cual deseas cargar documentos de consentimiento.
    Example: "0d1a377b-b4c5-4a94-9e2e-83e59d1f6a9c"

## Response 201 fields (application/json):

  - `consentId` (string, required)
    El identificador único creado por Belvo utilizado para referenciar el consentimiento.
    Example: "0d1a377b-b4c5-4a94-9e2e-83e59d1f6a9c"

  - `status` (string, required)
    El estado del consentimiento. Puede ser uno de los siguientes:

Inicial:
- awaiting_information: El consentimiento ha sido creado y ahora se deben cargar los archivos acompañantes.

Después de cargar los archivos:
- submitted: Se han cargado todos los documentos necesarios y el consentimiento está pendiente de confirmación.
- incomplete_information: Falta uno o más archivos o son inválidos.

Estados finales:
- confirmed: Los archivos asociados han sido revisados y aceptados. El consentimiento ahora está activo y puedes realizar solicitudes de pago.
- rejected: Los documentos presentados fueron rechazados y el consentimiento no fue otorgado.
- received_chargeback: El cliente recibió un contracargo después de que el consentimiento fue confirmed.
    Enum: "awaiting_information", "submitted", "confirmed", "incomplete_information", "rejected", "received_chargeback"

  - `paymentMethodId` (string, required)
    El identificador único creado por Belvo utilizado para referenciar el método de pago.
    Example: "0d1a377b-b4c5-4a94-9e2e-83e59d1f6a9c"

  - `isBankNotified` (boolean, required)
    Indica si el banco ha sido notificado del Consent. Esto se establece en true en el caso de que se reciba una devolución de cargo y la evidencia del Consent se haya enviado al banco.

## Response 400 fields (application/json):

  - `statusCode` (integer)
    El código de estado HTTP para este error.
    Example: 400

  - `error` (string)
    La descripción del código de estado HTTP para este error.
    Example: "Bad Request"

  - `message` (any)
    Una breve descripción del error, indicando qué está mal con la solicitud.
> Nota: Devolvemos una cadena o un arreglo de cadenas, dependiendo del/los error(es) de validación.

La descripción puede ser (entre otras):

  - id must be a UUID
  - Not enough balance
  - amount is not a valid decimal number.
  - currency must be one of the following values: cop, mxn, usd
  - reference must be a string
  - Customer not found for merchant
  - documentType is a required field
    Example: "id must be a UUID"

## Response 401 fields (application/json):

  - `statusCode` (integer)
    El código de estado HTTP para este error.
    Example: 401

  - `error` (string)
    La descripción del código de estado HTTP para este error.
    Example: "Unauthorized"

  - `message` (string)
    Una breve descripción del error, indicando qué está mal con la solicitud. En el caso de un error 401 Unauthorized, el mensaje es:

  - Unauthorized credentials
    Example: "Unauthorized credentials"

## Response 404 fields (application/json):

  - `statusCode` (integer)
    El código de estado HTTP para este error.
    Example: 404

  - `error` (string)
    La descripción del código de estado HTTP para este error.
    Example: "Not Found"

  - `message` (string)
    Una breve descripción del error, indicando qué está mal con la solicitud. La descripción puede ser (entre otras):

  - Payout Target not found
  - Payment method not found
  - Customer not found
    Example: "Payout Target not found"


