# Criar um instantâneo de empréstimo

Crie uma nova captura de empréstimo para um cliente. Cada solicitação bem-sucedida registra a captura com uma data de coleta alvo, definida para o mesmo dia ou para o próximo dia útil no México, e a Belvo tenta a coleta nessa data. A resposta retorna o id da captura recém-criada.

O valor coletado não é retirado desta solicitação. Ele é calculado pela estratégia de coleta que a Belvo aplica aos seus empréstimos, com base no totalBalance que você envia, e um único empréstimo pode resultar em mais de uma tentativa de coleta. Quando uma tentativa de coleta é concluída, a Belvo envia uma notificação webhook com o resultado.

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

## Request fields (application/json):

  - `paymentMethodId` (string, required)
    O paymentMethod.id associado a este empréstimo. O método de pagamento deve existir e pertencer ao comerciante.

  - `merchantCustomerId` (string, required)
    Seu identificador único para o cliente. Máximo de 50 caracteres, apenas alfanuméricos.

  - `daysOverdue` (integer, required)
    O número de dias em que o empréstimo está em atraso. Deve ser 0 ou maior.

  - `totalBalance` (number, required)
    O valor ainda devido no empréstimo. A estratégia de cobrança da Belvo usa esse valor como base para calcular quanto cobrar, portanto, envie o valor pendente em vez do valor original do empréstimo. Deve ser positivo e não exceder 9999999999.99.

  - `principalAmount` (number, required)
    O valor principal do empréstimo. Este valor não é usado para determinar quanto a Belvo coleta; o valor coletado é calculado a partir de totalBalance. Deve ser positivo e não exceder 9999999999.99.

  - `defaultDate` (string, required)
    A data em que o cliente inadimpliu este empréstimo, no formato YYYY-MM-DD.

  - `issueDate` (string, required)
    A data em que o empréstimo foi originalmente emitido, no formato YYYY-MM-DD.

  - `loanAmount` (number)
    O valor original do empréstimo. Deve ser maior que 0.

  - `interestAmount` (number)
    O valor do juros acumulado. Deve ser 0 ou maior.

  - `feesAmount` (number)
    Quaisquer taxas associadas ao empréstimo. Deve ser 0 ou maior.

  - `latePaymentInterestAmount` (number)
    Juros acumulados devido ao pagamento atrasado. Deve ser 0 ou maior.

  - `openingCommissionAmount` (number)
    Comissão de abertura cobrada pelo empréstimo. Deve ser 0 ou maior.

  - `yearlyOrdinalInterestRate` (number)
    A taxa de juros anual com até 4 casas decimais.

  - `customerSalary` (number)
    O salário do cliente. Deve ser positivo e não exceder 99999999.99.

  - `customerAddress` (string)
    O endereço do cliente. Máximo de 200 caracteres.

  - `creditStatus` (string)
    O status de crédito do empréstimo. Pode ser:

  - past_due
    O pagamento está atrasado.
  - restructured
    O empréstimo foi reestruturado.
  - canceled
    O empréstimo foi cancelado.
  - in_arrears
    O empréstimo está em atraso.
    Enum: "past_due", "restructured", "canceled", "in_arrears"

  - `paidInstallments` (integer)
    O número de parcelas já pagas. Deve ser 0 ou maior.

  - `paidAmount` (number)
    O valor total já pago em relação ao empréstimo. Este valor não reduz totalBalance; envie o valor ainda devido em totalBalance. Deve ser 0 ou maior.

  - `lastPaymentDate` (string)
    A data do último pagamento no formato YYYY-MM-DD.

  - `lastPaymentAmount` (number)
    O valor do último pagamento. Deve ser 0 ou maior.

  - `mainPhoneNumber` (string)
    O número de telefone principal do cliente com prefixo do código do país.

  - `reference` (string)
    Sua referência para este empréstimo. Máximo de 50 caracteres.

## Response 201 fields (application/json):

  - `id` (string)
    O identificador único do registro de histórico de empréstimo recém-criado.
    Example: "7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d"

## Response 400 fields (application/json):

  - `statusCode` (integer)
    O código de status HTTP para este erro.
    Example: 400

  - `error` (string)
    A descrição do código de status HTTP para este erro.
    Example: "Bad Request"

  - `message` (any)
    Uma breve descrição do erro, indicando o que está errado com a solicitação.
> Nota: Retornamos uma string ou um array de strings, dependendo do(s) erro(s) de validação.

A descrição pode ser (entre outras):

  - 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)
    O código de status HTTP para este erro.
    Example: 401

  - `error` (string)
    A descrição do código de status HTTP para este erro.
    Example: "Unauthorized"

  - `message` (string)
    Uma breve descrição do erro, indicando o que está errado com a solicitação. No caso de um erro 401 Unauthorized, a mensagem é:

  - Unauthorized credentials
    Example: "Unauthorized credentials"

## Response 403 fields (application/json):

  - `statusCode` (integer)
    O código de status HTTP para este erro.
    Example: 403

  - `error` (string)
    A descrição do código de status HTTP para este erro.
    Example: "Forbidden"

  - `message` (string)
    Uma breve descrição do erro, indicando por que a solicitação é proibida.
    Example: "Forbidden"

## Response 404 fields (application/json):

  - `statusCode` (integer)
    O código de status HTTP para este erro.
    Example: 404

  - `error` (string)
    A descrição do código de status HTTP para este erro.
    Example: "Not Found"

  - `message` (string)
    Uma breve descrição do erro, indicando o que está errado com a solicitação. A descrição pode ser (entre outras):

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

## Response 409 fields (application/json):

  - `statusCode` (integer)
    O código de status HTTP para este erro.
    Example: 409

  - `error` (string)
    A descrição do código de status HTTP para este erro.
    Example: "Conflict"

  - `message` (string)
    Uma breve descrição do erro, indicando a natureza do conflito. A descrição pode ser (entre outras):

  - A loan snapshot with this merchantCustomerId and defaultDate already exists
    Example: "A loan snapshot with this merchantCustomerId and defaultDate already exists"


