# Recuperar trocas para um link

{% admonition type="warning" name="Em Breve" %}
  Este endpoint está atualmente em desenvolvimento. Portanto, pequenas alterações ou bugs podem ocorrer. Se você encontrar algum problema, entre em contato com seu representante da Belvo.
{% /admonition %}

Recupere operações de câmbio para um link existente. Por padrão, recuperamos dados de câmbio dos últimos 365 dias.

> Nota: Quando você recupera câmbios, nós automaticamente recuperamos o histórico de câmbio para cada operação de câmbio encontrada.

Endpoint: POST /api/br/exchanges/
Version: 1.223.0
Security: basicAuth

## Query parameters:

  - `omit` (string)
    Omitir certos campos de serem retornados na resposta. Para mais informações, consulte nosso artigo Filtrando respostas no DevPortal.

  - `fields` (string)
    Retorne apenas os campos especificados na resposta. Para mais informações, consulte nosso artigo no DevPortal Filtrando respostas.

## Request fields (application/json):

  - `link` (string, required)
    O link.id para o qual você deseja recuperar informações.
    Example: "c81a1dea-6dd6-4999-8b9f-541ee8197058"

  - `date_from` (string)
    A data de início para a qual você deseja recuperar dados de câmbio, no formato YYYY-MM-DD. Se não for fornecida, recuperamos dados dos últimos 365 dias.
    Example: "2022-01-01"

  - `date_to` (string)
    A data de término para a qual você deseja recuperar dados de câmbio, no formato YYYY-MM-DD. Se não for fornecida, recuperamos dados até hoje.
    Example: "2022-12-31"

  - `save_data` (boolean)
    Indica se os dados devem ou não ser persistidos no Belvo. Por padrão, isso é definido como true e retornamos uma resposta 201 Created.

Quando definido como false, os dados não serão persistidos e retornamos uma resposta 200 OK.
    Example: true

## Response 200 fields (application/json):

  - `id` (string, required)
    Identificador único da Belvo para o item atual.
    Example: "0d3ffb69-f83b-456e-ad8e-208d0998d71d"

  - `link` (string,null, required)
    O link.id ao qual os dados pertencem.
    Example: "30cb4806-6e00-48a4-91c9-ca55968576c8"

  - `created_at` (string, required)
    O carimbo de data e hora ISO-8601 de quando o ponto de dados foi criado no banco de dados da Belvo.
    Example: "2022-02-09T08:45:50.406032Z"

  - `collected_at` (string, required)
    O carimbo de data/hora ISO-8601 quando o ponto de dados foi coletado.
    Example: "2022-02-09T08:45:50.406032Z"

  - `operation_identifier` (string, required)
    O identificador único da rede para a operação de troca.
    Example: "92792126019929240"

  - `operation_number` (string,null)
    O número de registro da operação de 12 dígitos do Banco Central do Brasil (Bacen). Isso pode ser null se a operação ainda não tiver sido registrada.
    Example: "393874649456"

  - `operation_type` (string, required)
    O tipo de operação de câmbio.

Retornamos um dos seguintes valores do enum:
  - COMPRA - Compra (o cliente está comprando moeda estrangeira)
  - VENDA - Venda (o cliente está vendendo moeda estrangeira)
    Enum: "COMPRA", "VENDA"

  - `operation_requested_at` (string, required)
    O carimbo de data e hora ISO-8601 quando a operação de câmbio foi contratada.
    Example: "2023-03-07T08:30:00Z"

  - `authorized_institution_identifier` (integer, required)
    O CNPJ da instituição autorizada a realizar a operação.
    Example: 11225860000140

  - `authorized_institution_name` (string, required)
    O nome da instituição autorizada.
    Example: "AGENCIA CORRETORA"

  - `intermediary_institution_identifier` (integer,null)
    O CNPJ da instituição intermediária, se uma foi utilizada.
    Example: 11225860000140

  - `intermediary_institution_name` (string,null)
    O nome da instituição intermediária. Deve estar presente se intermediary_institution_identifier estiver disponível.
    Example: "AGENCIA CORRETORA"

  - `operation_due_date` (string, required)
    A data de liquidação atualmente agendada para a operação, no formato YYYY-MM-DD.

> Nota: Este campo é atualizado se houver alterações na operação de câmbio.
    Example: "2018-02-15"

  - `local_operation_tax_amount` (number, required)
    A taxa de câmbio aplicada à operação.
    Example: 1.3

  - `local_operation_tax_currency` (string, required)
    O código de moeda de três letras (ISO-4217) para a taxa de câmbio.
    Example: "BRL"

  - `local_operation_value_amount` (number, required)
    O valor total da operação em moeda local.
    Example: 1000.04

  - `local_operation_value_currency` (string, required)
    O código de moeda de três letras (ISO-4217) para a moeda local.
    Example: "BRL"

  - `foreign_operation_value_amount` (number, required)
    O valor total da operação na moeda estrangeira.
    Example: 1000.04

  - `foreign_operation_value_currency` (string, required)
    O código de moeda de três letras (ISO-4217) para a moeda estrangeira.
    Example: "USD"

  - `operation_outstanding_balance_amount` (number,null)
    O saldo pendente a ser liquidado, na moeda estrangeira. No caso de a operação de câmbio estar programada para ser liquidada dentro de dois dias a partir de operation_requested_at, esse valor pode ser null.
    Example: 1000.04

  - `operation_outstanding_balance_currency` (string,null)
    A moeda do saldo devedor. Obrigatório se operation_outstanding_balance_amount não for null.
    Example: "USD"

  - `tev_amount_amount` (number,null)
    O "All-in Rate" (Valor Efetivo Total/Custo Efetivo Total), que representa o custo total da operação. Obrigatório quando a operação está programada para ser liquidada dentro de dois dias a partir de operation_requested_at e não excede $100,000 USD.
    Example: 1000.000004

  - `tev_amount_currency` (string,null)
    A moeda do VET (sempre BRL). Obrigatório se tev_amount_amount não for null.
    Example: "BRL"

  - `local_currency_advance_percentage` (number,null)
    A porcentagem do valor em moeda estrangeira que foi concedida ao cliente antecipadamente. No caso de a operação de câmbio estar programada para ser liquidada dentro de dois dias a partir de operation_requested_at, esse valor pode ser null.
    Example: 0.12

  - `settlement_method` (string,null, required)
    O método de entrega para a moeda estrangeira.

Retornamos um dos seguintes valores do enum:
  - CARTA_CREDITO_A_VISTA (Código 10) - Carta de crédito à vista
  - CARTA_CREDITO_A_PRAZO (Código 15) - Carta de crédito a prazo
  - CONTA_DEPOSITO (Código 20) - Conta de depósito
  - CONTA_DEPOSITO_MOEDA_ESTRANGEIRA_PAIS (Código 21) - Conta de depósito em moeda estrangeira no país
  - CONTA_DEPOSITO_EXPORTADOR_MANTIDA_NO_EXTERIOR (Código 22) - Conta de depósito do exportador mantida no exterior
  - CONTA_DEPOSITO_OU_PAGAMENTO_EXPORTADOR_INSTITUICAO_EXTERIOR (Código 23) - Conta de depósito ou pagamento ao exportador em instituição no exterior
  - CONVENIO_PAGAMENTOS_E_CREDITOS_RECIPROCOS (Código 25) - Convênio de pagamentos e créditos recíprocos
  - CHEQUE (Código 30) - Cheque
  - ESPECIE_CHEQUES_VIAGEM (Código 50) - Espécie ou cheques de viagem
  - CARTAO_PREPAGO (Código 55) - Cartão pré-pago
  - TELETRANSMISSAO (Código 65) - Transferência eletrônica
  - TITULOS_VALORES (Código 75) - Títulos/valores mobiliários
  - SIMBOLICA (Código 90) - Simbólica
  - SEM_MOVIMENTACAO_VALORES (Código 91) - Sem movimentação de valores
  - DEMAIS (Código 99) - Outros
  - OUTRO_NAO_MAPEADO_OFB - Outro não mapeado pelo Open Finance Brasil
  - null
    Enum: "CONTA_DEPOSITO_MOEDA_ESTRANGEIRA_PAIS", "CONTA_DEPOSITO_OU_PAGAMENTO_EXPORTADOR_INSTITUICAO_EXTERIOR", "ESPECIE_CHEQUES_VIAGEM", "CARTAO_PREPAGO", "TELETRANSMISSAO", "SEM_MOVIMENTACAO_VALORES", "DEMAIS", "CARTA_CREDITO_A_VISTA", "CARTA_CREDITO_A_PRAZO", "CONTA_DEPOSITO", "CHEQUE", "TITULOS_VALORES", "SIMBOLICA", "CONTA_DEPOSITO_EXPORTADOR_MANTIDA_NO_EXTERIOR", "CONVENIO_PAGAMENTOS_E_CREDITOS_RECIPROCOS", "OUTRO_NAO_MAPEADO_OFB", null

  - `operation_category_code` (string, required)
    O código de 5 dígitos do Banco Central que classifica a "natureza" da operação.

Este código deve estar em conformidade com os códigos de natureza referenciados na Resolução 277 ou na Circular 3690, conforme aplicável ao contrato de câmbio.
    Example: "90302"

## Response 201 fields (application/json):

  - `id` (string, required)
    Identificador único da Belvo para o item atual.
    Example: "0d3ffb69-f83b-456e-ad8e-208d0998d71d"

  - `link` (string,null, required)
    O link.id ao qual os dados pertencem.
    Example: "30cb4806-6e00-48a4-91c9-ca55968576c8"

  - `created_at` (string, required)
    O carimbo de data e hora ISO-8601 de quando o ponto de dados foi criado no banco de dados da Belvo.
    Example: "2022-02-09T08:45:50.406032Z"

  - `collected_at` (string, required)
    O carimbo de data/hora ISO-8601 quando o ponto de dados foi coletado.
    Example: "2022-02-09T08:45:50.406032Z"

  - `operation_identifier` (string, required)
    O identificador único da rede para a operação de troca.
    Example: "92792126019929240"

  - `operation_number` (string,null)
    O número de registro da operação de 12 dígitos do Banco Central do Brasil (Bacen). Isso pode ser null se a operação ainda não tiver sido registrada.
    Example: "393874649456"

  - `operation_type` (string, required)
    O tipo de operação de câmbio.

Retornamos um dos seguintes valores do enum:
  - COMPRA - Compra (o cliente está comprando moeda estrangeira)
  - VENDA - Venda (o cliente está vendendo moeda estrangeira)
    Enum: "COMPRA", "VENDA"

  - `operation_requested_at` (string, required)
    O carimbo de data e hora ISO-8601 quando a operação de câmbio foi contratada.
    Example: "2023-03-07T08:30:00Z"

  - `authorized_institution_identifier` (integer, required)
    O CNPJ da instituição autorizada a realizar a operação.
    Example: 11225860000140

  - `authorized_institution_name` (string, required)
    O nome da instituição autorizada.
    Example: "AGENCIA CORRETORA"

  - `intermediary_institution_identifier` (integer,null)
    O CNPJ da instituição intermediária, se uma foi utilizada.
    Example: 11225860000140

  - `intermediary_institution_name` (string,null)
    O nome da instituição intermediária. Deve estar presente se intermediary_institution_identifier estiver disponível.
    Example: "AGENCIA CORRETORA"

  - `operation_due_date` (string, required)
    A data de liquidação atualmente agendada para a operação, no formato YYYY-MM-DD.

> Nota: Este campo é atualizado se houver alterações na operação de câmbio.
    Example: "2018-02-15"

  - `local_operation_tax_amount` (number, required)
    A taxa de câmbio aplicada à operação.
    Example: 1.3

  - `local_operation_tax_currency` (string, required)
    O código de moeda de três letras (ISO-4217) para a taxa de câmbio.
    Example: "BRL"

  - `local_operation_value_amount` (number, required)
    O valor total da operação em moeda local.
    Example: 1000.04

  - `local_operation_value_currency` (string, required)
    O código de moeda de três letras (ISO-4217) para a moeda local.
    Example: "BRL"

  - `foreign_operation_value_amount` (number, required)
    O valor total da operação na moeda estrangeira.
    Example: 1000.04

  - `foreign_operation_value_currency` (string, required)
    O código de moeda de três letras (ISO-4217) para a moeda estrangeira.
    Example: "USD"

  - `operation_outstanding_balance_amount` (number,null)
    O saldo pendente a ser liquidado, na moeda estrangeira. No caso de a operação de câmbio estar programada para ser liquidada dentro de dois dias a partir de operation_requested_at, esse valor pode ser null.
    Example: 1000.04

  - `operation_outstanding_balance_currency` (string,null)
    A moeda do saldo devedor. Obrigatório se operation_outstanding_balance_amount não for null.
    Example: "USD"

  - `tev_amount_amount` (number,null)
    O "All-in Rate" (Valor Efetivo Total/Custo Efetivo Total), que representa o custo total da operação. Obrigatório quando a operação está programada para ser liquidada dentro de dois dias a partir de operation_requested_at e não excede $100,000 USD.
    Example: 1000.000004

  - `tev_amount_currency` (string,null)
    A moeda do VET (sempre BRL). Obrigatório se tev_amount_amount não for null.
    Example: "BRL"

  - `local_currency_advance_percentage` (number,null)
    A porcentagem do valor em moeda estrangeira que foi concedida ao cliente antecipadamente. No caso de a operação de câmbio estar programada para ser liquidada dentro de dois dias a partir de operation_requested_at, esse valor pode ser null.
    Example: 0.12

  - `settlement_method` (string,null, required)
    O método de entrega para a moeda estrangeira.

Retornamos um dos seguintes valores do enum:
  - CARTA_CREDITO_A_VISTA (Código 10) - Carta de crédito à vista
  - CARTA_CREDITO_A_PRAZO (Código 15) - Carta de crédito a prazo
  - CONTA_DEPOSITO (Código 20) - Conta de depósito
  - CONTA_DEPOSITO_MOEDA_ESTRANGEIRA_PAIS (Código 21) - Conta de depósito em moeda estrangeira no país
  - CONTA_DEPOSITO_EXPORTADOR_MANTIDA_NO_EXTERIOR (Código 22) - Conta de depósito do exportador mantida no exterior
  - CONTA_DEPOSITO_OU_PAGAMENTO_EXPORTADOR_INSTITUICAO_EXTERIOR (Código 23) - Conta de depósito ou pagamento ao exportador em instituição no exterior
  - CONVENIO_PAGAMENTOS_E_CREDITOS_RECIPROCOS (Código 25) - Convênio de pagamentos e créditos recíprocos
  - CHEQUE (Código 30) - Cheque
  - ESPECIE_CHEQUES_VIAGEM (Código 50) - Espécie ou cheques de viagem
  - CARTAO_PREPAGO (Código 55) - Cartão pré-pago
  - TELETRANSMISSAO (Código 65) - Transferência eletrônica
  - TITULOS_VALORES (Código 75) - Títulos/valores mobiliários
  - SIMBOLICA (Código 90) - Simbólica
  - SEM_MOVIMENTACAO_VALORES (Código 91) - Sem movimentação de valores
  - DEMAIS (Código 99) - Outros
  - OUTRO_NAO_MAPEADO_OFB - Outro não mapeado pelo Open Finance Brasil
  - null
    Enum: "CONTA_DEPOSITO_MOEDA_ESTRANGEIRA_PAIS", "CONTA_DEPOSITO_OU_PAGAMENTO_EXPORTADOR_INSTITUICAO_EXTERIOR", "ESPECIE_CHEQUES_VIAGEM", "CARTAO_PREPAGO", "TELETRANSMISSAO", "SEM_MOVIMENTACAO_VALORES", "DEMAIS", "CARTA_CREDITO_A_VISTA", "CARTA_CREDITO_A_PRAZO", "CONTA_DEPOSITO", "CHEQUE", "TITULOS_VALORES", "SIMBOLICA", "CONTA_DEPOSITO_EXPORTADOR_MANTIDA_NO_EXTERIOR", "CONVENIO_PAGAMENTOS_E_CREDITOS_RECIPROCOS", "OUTRO_NAO_MAPEADO_OFB", null

  - `operation_category_code` (string, required)
    O código de 5 dígitos do Banco Central que classifica a "natureza" da operação.

Este código deve estar em conformidade com os códigos de natureza referenciados na Resolução 277 ou na Circular 3690, conforme aplicável ao contrato de câmbio.
    Example: "90302"

## Response 403 fields (application/json):

  - `code` (string)
    Um código de erro único (access_to_resource_denied) que permite classificar e tratar o erro programaticamente.

ℹ️ Consulte nosso DevPortal para mais informações sobre como lidar com 403 access_to_resource_denied.
    Example: "access_to_resource_denied"

  - `message` (string)
    Uma breve descrição do erro.

Para erros access_to_resource_denied, a descrição é:

  - You don't have access to this resource..
    Example: "You don't have access to this resource."

  - `request_id` (string)
    Um ID único de 32 caracteres da solicitação (correspondente a um padrão regex de: [a-f0-9]{32}). Forneça este ID ao entrar em contato com a equipe de suporte da Belvo para acelerar as investigações.
    Example: "9e7b283c6efa449c9c028a16b5c249fb"

## Response 408 fields (application/json):

  - `code` (string)
    Um código de erro único (request_timeout) que permite classificar e lidar com o erro programaticamente.

ℹ️ Consulte nosso DevPortal para mais informações sobre como lidar com erros 408 request_timeout.
    Example: "request_timeout"

  - `message` (string)
    Uma breve descrição do erro.

Para erros de request_timeout, a descrição é:

  - The request timed out, you can retry asking for less data by changing your query parameters.
    Example: "The request timed out, you can retry asking for less data by changing your query parameters"

  - `request_id` (string)
    Um ID único de 32 caracteres da solicitação (correspondente a um padrão regex de: [a-f0-9]{32}). Forneça este ID ao entrar em contato com a equipe de suporte da Belvo para acelerar as investigações.
    Example: "9e7b283c6efa449c9c028a16b5c249fb"

## Response 428 fields (application/json):

  - `code` (string)
    Um código de erro único (token_required) que permite classificar e lidar com o erro programaticamente.
ℹ️ Consulte nosso DevPortal para mais informações sobre como lidar com erros 428 token_required.
    Example: "token_required"

  - `message` (string)
    Uma breve descrição do erro. Para erros token_required, a descrição é:

- A instituição requer um token MFA para fazer login.
    Example: "A MFA token is required by the institution to login"

  - `request_id` (string)
    Um ID único de 32 caracteres da solicitação (correspondente a um padrão regex de: [a-f0-9]{32}). Forneça este ID ao entrar em contato com a equipe de suporte da Belvo para acelerar as investigações.
    Example: "9e7b283c6efa449c9c028a16b5c249fb"

  - `session` (string)
    Um ID único de 32 caracteres da sessão de login (correspondente a um padrão regex de: [a-f0-9]{32}).
    Example: "2675b703b9d4451f8d4861a3eee54449"

  - `expiry` (integer)
    Tempo de duração da sessão em segundos.
    Example: 9600

  - `link` (string)
    Identificador único criado pela Belvo, usado para referenciar o Link atual.
    Example: "30cb4806-6e00-48a4-91c9-ca55968576c8"

  - `token_generation_data` (object)
    Detalhes sobre como gerar o token.

  - `token_generation_data.instructions` (string)
    Instruções para geração de token.
    Example: "Use this code to generate the token"

  - `token_generation_data.type` (string)
    Tipo de dados para gerar o token (QR code, desafio numérico).
    Example: "numeric"

  - `token_generation_data.value` (string)
    Valor a ser usado para gerar o token.
    Example: "12345"

  - `token_generation_data.expects_user_input` (boolean)
    Indica se o usuário precisa fornecer entrada para concluir a autenticação. Quando definido como false, seu usuário pode precisar:
- confirmar o login em outro dispositivo
- escanear um código QR
Você ainda precisará fazer uma chamada PATCH para concluir a solicitação.
    Example: true

## Response 500 fields (application/json):

  - `code` (string)
    Um código de erro único (unexpected_error) que permite classificar e tratar o erro de forma programática.

ℹ️ Consulte nosso DevPortal para mais informações sobre como lidar com erros 500 unexpected_error.
    Example: "unexpected_error"

  - `message` (string)
    Uma breve descrição do erro.

Para erros unexpected_error, a descrição é:

  - Belvo não consegue processar a solicitação devido a um problema interno do sistema ou a uma resposta não suportada de uma instituição.
    Example: "Belvo is unable to process the request due to an internal system issue or to an unsupported response from an institution"

  - `request_id` (string)
    Um ID único de 32 caracteres da solicitação (correspondente a um padrão regex de: [a-f0-9]{32}). Forneça este ID ao entrar em contato com a equipe de suporte da Belvo para acelerar as investigações.
    Example: "9e7b283c6efa449c9c028a16b5c249fb"


