# Criar uma solicitação de pagamento

Crie uma nova solicitação de pagamento para um método de pagamento existente.

> 📘 Chaves de Idempotência
>
> Este método suporta chaves de idempotência.

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

## Header parameters:

  - `Idempotency-Key` (string)
    (Opcional, mas altamente recomendado.) Um identificador único para esta solicitação para suportar idempotência. Use um UUID ou identificador similar. Para mais informações, consulte nosso artigo dedicado sobre Idempotência.

## Request fields (application/json):

  - `amount` (number, required)
    O valor a debitar do cliente.
    Example: 1000

  - `currency` (string, required)
    O código de moeda de três letras ISO 4217 da transação. No momento, só oferecemos suporte a mxn.
    Enum: "mxn"

  - `reference` (string, required)
    Sua referência interna para a solicitação de pagamento.
    Example: "J-789029-PAY-3X"

  - `paymentMethodId` (string, required)
    O identificador único criado pela Belvo usado para referenciar o método de pagamento.
    Example: "0d1a377b-b4c5-4a94-9e2e-83e59d1f6a9c"

  - `loanInformation` (object)
    (Metadata opcional) Metadados sobre o empréstimo associado à solicitação de pagamento.

  - `loanInformation.reference` (string)
    Sua referência para o empréstimo associado à solicitação de pagamento.
    Example: "Camera Purchase 1432"

  - `loanInformation.disbursementDate` (string)
    A data em que o empréstimo foi desembolsado, no formato YYYY-MM-DD.
    Example: "2025-01-01"

  - `loanInformation.installmentNumber` (integer)
    O número da parcela que está sendo paga.
    Example: 1

  - `loanInformation.installmentAmount` (number)
    O valor da parcela sendo paga.
    Example: 100.02

  - `loanInformation.installmentDueDate` (string)
    A data de vencimento da parcela que está sendo paga, no formato YYYY-MM-DD.
    Example: "2025-03-01"

  - `loanInformation.totalAmount` (number)
    O valor total do empréstimo.
    Example: 12000.24

  - `loanInformation.totalInstallments` (integer)
    O número total de parcelas para o empréstimo.
    Example: 12

## Response 201 fields (application/json):

  - `paymentRequestId` (string)
    O identificador único criado pela Belvo usado para referenciar a solicitação de pagamento.
    Example: "0d1a377b-b4c5-4a94-9e2e-83e59d1f6a9c"

## 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 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"


