# QI Tech — Banking-as-a-Service

Documentação da QI Tech em texto corrido, para colar em um LLM.
Fonte: https://docs.qitech.com.br
427 página(s).

Índice:
- Realizar agendamento de pagamento de boleto (/documentation/agendamentos/agendamento_boleto)
- Agendar transferência Pix (/documentation/agendamentos/agendamento_pix)
- Realizar transferência (/documentation/agendamentos/agendamento_ted)
- Cancelar agendamento (/documentation/agendamentos/cancelar_agendamento)
- Consulta de transações agendadas (/documentation/agendamentos/consulta_agendamentos)
- Confirmar Abertura de Conta de Pessoa Física (/documentation/baas/account/abrir_conta_pf)
- Confirmar Abertura de Conta de Pessoa Jurídica (/documentation/baas/account/abrir_conta_pj)
- Introdução (/documentation/baas/account/introducao)
- Solicitar Abertura de Conta de Pessoa Física (/documentation/baas/account/reservar_conta_pf)
- Abertura de Conta de Pessoa Jurídica (/documentation/baas/account/reservar_conta_pj)
- Webhooks de abertura de conta (/documentation/baas/account/webhooks)
- Catálogo de Erros - Banking-as-a-Service (/documentation/baas/catalogo_de_erros_baas)
- Cancelar agendamento em lote de pagamento (/documentation/baas/cobranca/2fa_v2/agendamento/cancelar_agendamento_em_lote_de_pagamento)
- Confirmar Agendamento de Boleto Bancário (/documentation/baas/cobranca/2fa_v2/agendamento/confirmar_agendamento_de_boleto_bancario)
- Confirmação de Pagamento de Fatura de Recolhimento (/documentation/baas/cobranca/2fa_v2/agendamento/confirmar_agendamento_de_fatura_de_recolhimento)
- Confirmar agendamento em lote de boleto bancário (/documentation/baas/cobranca/2fa_v2/agendamento/confirmar_agendamento_em_lote_de_boleto_bancario)
- Confirmar agendamento em lote de fatura de recolhimento (/documentation/baas/cobranca/2fa_v2/agendamento/confirmar_agendamento_em_lote_de_fatura_de_recolhimento)
- Consultar lote de agendamento de pagamento (/documentation/baas/cobranca/2fa_v2/agendamento/consultar_lote_de_agendamento_de_pagamento)
- Listar lotes de agendamento de pagamento (/documentation/baas/cobranca/2fa_v2/agendamento/listar_lotes_de_agendamento_de_pagamento)
- Reenviar Token Autenticação de Dois Fatores de Agendamento de Boleto Bancário (/documentation/baas/cobranca/2fa_v2/agendamento/reenviar_token_de_agendamento_boleto_bancario)
- Reenviar Token Autenticação de Dois Fatores de Agendamento de Fatura de Recolhimento (/documentation/baas/cobranca/2fa_v2/agendamento/reenviar_token_de_agendamento_de_fatura_de_recolhimento)
- Reenviar token de autenticação de dois fatores de agendamento em lote de boleto bancário (/documentation/baas/cobranca/2fa_v2/agendamento/reenviar_token_de_agendamento_em_lote_de_boleto_bancario)
- Reenviar token de autenticação de dois fatores de agendamento em lote de fatura de recolhimento (/documentation/baas/cobranca/2fa_v2/agendamento/reenviar_token_de_agendamento_em_lote_de_fatura_de_recolhimento)
- Solicitar Agendamento de Pagamento de Boleto Bancário com Autenticação de Dois Fatores (2FA) (/documentation/baas/cobranca/2fa_v2/agendamento/solicitar_agendamento_de_boleto_bancario)
- Solicitar Agendamento de Pagamento de Facutara de Recolhimento com Autenticação de Dois Fatores (2FA) (/documentation/baas/cobranca/2fa_v2/agendamento/solicitar_agendamento_de_pagamento_de_fatura_de_recolhimento)
- Solicitar agendamento em lote de boleto bancário com autenticação de dois fatores (2FA) (/documentation/baas/cobranca/2fa_v2/agendamento/solicitar_agendamento_em_lote_de_boleto_bancario)
- Solicitar agendamento em lote de fatura de recolhimento com autenticação de dois fatores (2FA) (/documentation/baas/cobranca/2fa_v2/agendamento/solicitar_agendamento_em_lote_de_fatura_de_recolhimento)
- Confirmação de lote de pagamento de boleto bancário (/documentation/baas/cobranca/2fa_v2/confirmacao_de_lote_de_boleto_bancario)
- Confirmação de lote de pagamento de fatura de recolhimento (convênio/tributo) (/documentation/baas/cobranca/2fa_v2/confirmacao_de_lote_de_fatura_de_recolhimento)
- Confirmação de Pagamento de Boleto Bancário (/documentation/baas/cobranca/2fa_v2/confirmacao_de_pagamento_de_boleto_bancario)
- Confirmação de Pagamento de Fatura de Recolhimento (/documentation/baas/cobranca/2fa_v2/confirmacao_de_pagamento_de_fatura_de_recolhimento)
- Introdução a Autenticação de Dois Fatores (/documentation/baas/cobranca/2fa_v2/introducao_ao_pagamento_2fa)
- Solicitação de pagamento de Boleto Bancário com Autenticação de Dois Fatores (/documentation/baas/cobranca/2fa_v2/solicitacao_de_pagamento_de_boleto_bancario)
- Solicitação de Pagamento de Fatura de Recolhimento com Autenticação de Dois Fatores (/documentation/baas/cobranca/2fa_v2/solicitacao_de_pagamento_de_fatura_de_recolhimento)
- Reenviar Token Autenticação de Dois Fatores de Pagamentos de Boleto Bancário (/documentation/baas/cobranca/2fa_v2/solicitacao_de_reenvio_de_token_de_boleto_bancario)
- Reenviar Token de Autenticação de Dois Fatores para Pagamentos de Fatura de Recolhimento (/documentation/baas/cobranca/2fa_v2/solicitacao_de_reenvio_de_token_de_fatura_de_recolhimento)
- Reenviar token de confirmação de lote de pagamento de boleto bancário (/documentation/baas/cobranca/2fa_v2/solicitacao_de_reenvio_de_token_de_lote_de_boleto_bancario)
- Reenviar token de confirmação de lote de pagamento de fatura de recolhimento (convênio/tributo) (/documentation/baas/cobranca/2fa_v2/solicitacao_de_reenvio_de_token_de_lote_de_fatura_de_recolhimento)
- Solicitar pagamento em lote de boleto bancário com autenticação de dois fatores (/documentation/baas/cobranca/2fa_v2/solicitar_pagamento_lote_de_boleto_bancario_com_confirmacao_de_lote)
- Solicitar pagamento em lote de boleto bancário com autenticação de dois fatores (/documentation/baas/cobranca/2fa_v2/solicitar_pagamento_lote_de_boleto_bancario_sem_confirmacao_de_lote)
- Solicitar pagamento em lote de fatura de recolhimento (convênio/tributo) com autenticação de dois fatores (/documentation/baas/cobranca/2fa_v2/solicitar_pagamento_lote_de_fatura_de_recolhimento_com_confirmacao_de_lote)
- Solicitar pagamento em lote de fatura de recolhimento (convênio/tributo) com autenticação de dois fatores (/documentation/baas/cobranca/2fa_v2/solicitar_pagamento_lote_de_fatura_de_recolhimento_sem_confirmacao_de_lote)
- Validação de token de lote de pagamento de boleto bancário (/documentation/baas/cobranca/2fa_v2/validacao_de_token_de_lote_de_boleto_bancario)
- Validação de token de lote de pagamento de fatura de recolhimento (convênio/tributo) (/documentation/baas/cobranca/2fa_v2/validacao_de_token_de_lote_de_fatura_de_recolhimento)
- Agendar Pagamento de Boleto Bancário (/documentation/baas/cobranca/agendamento/agendar_pagamento_de_boleto_bancario)
- Agendar Pagamento de Fatura de Recolhimento (convênio/tributo) (/documentation/baas/cobranca/agendamento/agendar_pagamento_de_fatura_de_recolhimento)
- Cancelar Agendamento (/documentation/baas/cobranca/agendamento/cancelar_agendamento)
- Consultar Agendamento (/documentation/baas/cobranca/agendamento/consultar_agendamento)
- Listar Agendamentos (/documentation/baas/cobranca/agendamento/listar_agendamentos)
- Solicitar agendamento em lote de boleto bancário (/documentation/baas/cobranca/agendamento/solicitar_agendamento_em_lote_de_boleto_bancario)
- Solicitar agendamento em lote de fatura de recolhimento (/documentation/baas/cobranca/agendamento/solicitar_agendamento_em_lote_de_fatura_de_recolhimento)
- Confirmação de lote de pagamento de boleto bancário (/documentation/baas/cobranca/confirmacao_de_lote_de_boleto_bancario)
- Confirmação de lote de pagamento de fatura de recolhimento (convênio/tributo) (/documentation/baas/cobranca/confirmacao_de_lote_de_fatura_de_recolhimento)
- Consulta de Boleto Bancário (/documentation/baas/cobranca/consultar_boleto_bancario)
- Consulta de Fatura de Recolhimento (/documentation/baas/cobranca/consultar_fatura_de_recolhimento)
- Consultar lote de pagamento (/documentation/baas/cobranca/consultar_lote_de_pagamento)
- Listar lotes de pagamento (/documentation/baas/cobranca/listar_lotes_de_pagamento)
- Listar Pagamentos (/documentation/baas/cobranca/listar_pagamentos)
- Realizar Pagamento de Boleto Bancário (/documentation/baas/cobranca/pagar_boleto_bancario)
- Realizar Pagamento de Fatura de Recolhimento (convênio/tributo) (/documentation/baas/cobranca/pagar_fatura_de_recolhimento)
- Simulação de cenários (/documentation/baas/cobranca/simulacao_de_cenarios)
- Solicitar Pagamento em Lote de Boleto Bancário (/documentation/baas/cobranca/solicitar_pagamento_lote_de_boleto_bancario_com_confirmacao_de_lote)
- Solicitar Pagamento em Lote de Boleto Bancário (/documentation/baas/cobranca/solicitar_pagamento_lote_de_boleto_bancario_sem_confirmacao_de_lote)
- Solicitar Pagamento em Lote de Fatura de Recolhimento (convênio/tributo) (/documentation/baas/cobranca/solicitar_pagamento_lote_de_fatura_de_recolhimento_com_confirmacao_de_lote)
- Solicitar Pagamento em Lote de Fatura de Recolhimento (convênio/tributo) (/documentation/baas/cobranca/solicitar_pagamento_lote_de_fatura_de_recolhimento_sem_confirmacao_de_lote)
- Webhooks (/documentation/baas/cobranca/webhooks)
- Consultar dispositivo (/documentation/baas/dispositivo/consultar_dispositivo)
- Aprovar criação de dispositivo (/documentation/baas/dispositivo/create/aprovar_cadastro_dispositivo)
- Solicitar Criação de Dispositivo (/documentation/baas/dispositivo/create/solicitacao_cadastro_dispositivo)
- Solicitar reenvio de token (/documentation/baas/dispositivo/create/solicitacao_reenvio_token)
- Desativar dispositivo (/documentation/baas/dispositivo/delete/desativar_dispositivo)
- Introdução (/documentation/baas/dispositivo/introducao)
- Confirmar Abertura de Conta de Pessoa Física (/documentation/baas/escrow/abrir_conta_pf)
- Confirmar Abertura de Conta de Pessoa Jurídica (/documentation/baas/escrow/abrir_conta_pj)
- Abertura de Conta de Pessoa Física (/documentation/baas/escrow/reservar_conta_pf)
- Abertura de Conta de Pessoa Jurídica (/documentation/baas/escrow/reservar_conta_pj)
- baas_consulta_de_instituicoes_financeiras (/documentation/baas/lista_de_instituicoes_financeiras/baas_consulta_de_instituicoes_financeiras)
- baas_configuracao_de_notificacao (/documentation/baas/notificacoes/baas_configuracao_de_notificacao)
- baas_configuracao_template (/documentation/baas/notificacoes/baas_configuracao_template)
- baas_introducao (/documentation/baas/notificacoes/baas_introducao)
- baas_reenvio_de_notificacoes (/documentation/baas/notificacoes/baas_reenvio_de_notificacoes)
- baas_template (/documentation/baas/notificacoes/baas_template)
- baas_tipos_de_evento (/documentation/baas/notificacoes/baas_tipos_de_evento)
- Consultar Dados de um Lote de Pagamentos por conta (/documentation/baas/pix_automatico/conciliacao/consultar_lote_por_conta)
- Consultar Lotes de Pagamentos por Requester (/documentation/baas/pix_automatico/conciliacao/consultar_lote_requester)
- Listagem de Pagamentos de uma Conta (/documentation/baas/pix_automatico/conciliacao/listar_payment_orders)
- Webhook de Criação de Lote de Conciliação de Ordens de Pagamento (/documentation/baas/pix_automatico/conciliacao/webhooks)
- FAQ - Pix Automático (/documentation/baas/pix_automatico/faq)
- Introdução ao Pix Automático (/documentation/baas/pix_automatico/introducao)
- Aceitar recorrência de pagamento (/documentation/baas/pix_automatico/movimentacoes/aceitar_recorrencia)
- Cancelar a recorrência (/documentation/baas/pix_automatico/movimentacoes/cancelar_recorrencia)
- Consultar Recorrência (/documentation/baas/pix_automatico/movimentacoes/consultar_recorrencia)
- Listagem de Recorrências (/documentation/baas/pix_automatico/movimentacoes/listar_recorrencias)
- Simulação de cenários (/documentation/baas/pix_automatico/movimentacoes/simulacao)
- Webhooks (/documentation/baas/pix_automatico/movimentacoes/webhooks)
- Atualizar Valor da Ordem de Pagamento (/documentation/baas/pix_automatico/pagamentos/atualizar_payment_order)
- Cancelar uma Ordem de Pagamento (/documentation/baas/pix_automatico/pagamentos/cancelar_payment_order)
- Consultar Payment Order (/documentation/baas/pix_automatico/pagamentos/consultar_payment_order)
- Listar Payment Orders por Conta (/documentation/baas/pix_automatico/pagamentos/listar_account_payment_orders)
- Decodificar QR Code para Pix Automático (/documentation/baas/pix_automatico/qr_code/decodificar_qr_code)
- Cancelar recorrência de pagamento (/documentation/baas/pix_automatico/recebedor/cancelar_recorrencia)
- Consultar dados de uma recorrência por outgoing_recurrence_key (/documentation/baas/pix_automatico/recebedor/consultar_recorrencia)
- Consulta de Dados de Recorrência Automática Pix pelo QRCode (/documentation/baas/pix_automatico/recebedor/consultar_recorrencia_receiver)
- Conciliação e Liquidação de Pagamentos (/documentation/baas/pix_automatico/recebedor/introducao)
- Criar uma Recorrência (Jornada 4) (/documentation/baas/pix_automatico/recebedor/journey_four)
- Criar uma Recorrência (Jornada 1) (/documentation/baas/pix_automatico/recebedor/journey_one)
- Criar uma Recorrência (Jornada 3) (/documentation/baas/pix_automatico/recebedor/journey_three)
- Criar uma Recorrência (Jornada 2) (/documentation/baas/pix_automatico/recebedor/journey_two)
- Listagem de Recorrências de um Requester (/documentation/baas/pix_automatico/recebedor/listar_recorrencias_de_um_requester)
- Listagem de Recorrências de uma Conta (/documentation/baas/pix_automatico/recebedor/listar_recorrencias_de_uma_conta)
- Simulação de cenários (/documentation/baas/pix_automatico/recebedor/simulacao)
- Webhooks Pix Automático (/documentation/baas/pix_automatico/recebedor/webhooks)
- Aprovar Transação com Autenticação de Dois Fatores (/documentation/baas/pix/2fa_v2/aprovar_transacao_pix_2fa)
- Introdução a Autenticação de Dois Fatores (/documentation/baas/pix/2fa_v2/introducao_a_transacao_pix_2fa)
- Solicitar a devolução de um Pix recebido (/documentation/baas/pix/2fa_v2/solicitacao_de_devolucao_pix)
- Solicitar reenvio de token para uma transação (/documentation/baas/pix/2fa_v2/solicitacao_de_reenvio_de_token)
- Solicitar Transação com Autenticação de Dois Fatores (/documentation/baas/pix/2fa_v2/solicitacao_de_transacao_pix_2fa)
- Aprovar Agendamento de Transação Pix com Autenticação de Dois Fatores (/documentation/baas/pix/agendamento/aprovacao_de_agendamento_2fa)
- Aprovar Agendamento em Lote de Transação Pix com Autenticação de Dois Fatores (/documentation/baas/pix/agendamento/batch/aprovacao_de_agendamento_em_lote_2fa)
- Cancelar Agendamento de Transação Pix em Lote (/documentation/baas/pix/agendamento/batch/cancelamento_de_agendamento_em_lote)
- Listar Agendamentos de um Lote de Agendamento (/documentation/baas/pix/agendamento/batch/consulta_de_agendamentos_de_um_lote)
- Listar Lotes de Agendamento de uma conta (/documentation/baas/pix/agendamento/batch/consulta_de_agendamentos_em_lote_de_uma_conta)
- Solicitar Agendamento de Transação Pix em Lote (/documentation/baas/pix/agendamento/batch/solicitacao_de_agendamento_em_lote)
- Solicitar Agendamento de Transação Pix em Lote (/documentation/baas/pix/agendamento/batch/solicitacao_de_agendamento_em_lote_2fa)
- Solicitar reenvio de token para um agendamento em lote (/documentation/baas/pix/agendamento/batch/solicitacao_de_reenvio_de_token_para_agendamento_em_lote_2fa)
- Cancelar Agendamento de Transação Pix (/documentation/baas/pix/agendamento/cancelamento_de_agendamento)
- Consultar Agendamento de Transação Pix (/documentation/baas/pix/agendamento/consulta_de_agendamento)
- Consultar Agendamentos de Transação Pix de uma conta (/documentation/baas/pix/agendamento/consulta_de_agendamentos_de_uma_conta)
- Introdução (/documentation/baas/pix/agendamento/introducao)
- Introdução a Autenticação de Dois Fatores (/documentation/baas/pix/agendamento/introducao_a_agendamento_2fa)
- Solicitar Agendamento de Transação Pix (/documentation/baas/pix/agendamento/solicitacao_de_agendamento)
- Solicitar Agendamento de Transação Pix com Autenticação de Dois Fatores (/documentation/baas/pix/agendamento/solicitacao_de_agendamento_2fa)
- Solicitar reenvio de token para um agendamento (/documentation/baas/pix/agendamento/solicitacao_de_reenvio_de_token_para_agendamento_2fa)
- Webhook de conclusão de Agendamento Pix (/documentation/baas/pix/agendamento/webhook_de_conclusao_de_agendamento)
- Aprovar Transação em Lote com Autenticação de Dois Fatores (/documentation/baas/pix/batch/aprovar_transacao_em_lote_pix_2fa)
- Introdução a Transação em Lote Pix (/documentation/baas/pix/batch/introducao_a_transacao_em_lote_pix)
- Listar Transações de um lote de uma conta (/documentation/baas/pix/batch/listar_transacoes_de_um_lote_de_transacoes_pix)
- Listar Transações em Lote de uma conta (/documentation/baas/pix/batch/listar_transacoes_em_lote_pix_de_uma_conta)
- Solicitar reenvio de token para uma Transação Pix em Lote (/documentation/baas/pix/batch/solicitacao_de_reenvio_de_token_para_lote)
- Realizar Transação Pix em Lote (/documentation/baas/pix/batch/solicitacao_de_transacao_em_lote_pix)
- Realizar Transação Pix em Lote com Autenticação de Dois Fatores (/documentation/baas/pix/batch/solicitacao_de_transacao_em_lote_pix_2fa)
- Consulta de Dados de Chave Pix no Banco Central (/documentation/baas/pix/consultar_chave_pix)
- Consultar Transferências (/documentation/baas/pix/consultar_transferencias)
- Listar Transferências de uma Conta (/documentation/baas/pix/listar_transferencias)
- Realizar Transação Pix (/documentation/baas/pix/realizar_transferencia)
- Solicitar a devolução de um Pix recebido (/documentation/baas/pix/solicitar_devolucao)
- Webhooks (/documentation/baas/pix/webhooks)
- baas_configurando_webhooks (/documentation/baas/primeiros_passos/baas_configurando_webhooks)
- Configurar IP de Integração (/documentation/baas/primeiros_passos/baas_configurar_ip_de_integracao)
- baas_inicio (/documentation/baas/primeiros_passos/baas_inicio)
- baas_troca_de_chaves (/documentation/baas/primeiros_passos/baas_troca_de_chaves)
- baas_endpoints_de_teste (/documentation/baas/primeiros_passos/teste_de_autenticacao/baas_endpoints_de_teste)
- baas_possiveis_erros (/documentation/baas/primeiros_passos/teste_de_autenticacao/baas_possiveis_erros)
- baas_teste_de_autenticacao_completo (/documentation/baas/primeiros_passos/teste_de_autenticacao/baas_teste_de_autenticacao_completo)
- baas_teste_de_autenticacao_v2 (/documentation/baas/primeiros_passos/teste_de_autenticacao/baas_teste_de_autenticacao_v2)
- baas_webhook_v2 (/documentation/baas/primeiros_passos/teste_de_autenticacao/baas_webhook_v2)
- Aprovar TED com Autenticação de Dois Fatores (/documentation/baas/ted/2fa/aprovar_transacao_ted_2fa)
- Realizar TED com Autenticação de Dois Fatores (/documentation/baas/ted/2fa/realizar_transferencia_2fa)
- Solicitar Reenvio de Token para uma Transação Ted (/documentation/baas/ted/2fa/solicitacao_de_reenvio_de_token)
- Aprovar Transação em Lote com Autenticação de Dois Fatores (/documentation/baas/ted/batch_2fa/aprovar_transacao_em_lote_ted_2fa)
- Solicitar Reenvio de Token para uma Transação Ted em Lote (/documentation/baas/ted/batch_2fa/solicitacao_de_reenvio_de_token_para_lote_ted)
- Realizar Transação Ted em Lote com Autenticação de Dois Fatores (/documentation/baas/ted/batch_2fa/solicitacao_de_transacao_em_lote_ted_2fa)
- Listar Transações Ted de um lote de uma conta (/documentation/baas/ted/batch/listar_transacoes_de_um_lote_de_transacoes_ted)
- Listar Transações em Lote de uma conta (/documentation/baas/ted/batch/listar_transacoes_em_lote_ted_de_uma_conta)
- Realizar Transação Ted em Lote (/documentation/baas/ted/batch/solicitacao_de_transacao_em_lote_ted)
- Consultar TED (/documentation/baas/ted/consultar_ted)
- Listar TEDs (/documentation/baas/ted/listar_teds)
- Realizar TED (/documentation/baas/ted/realizar_transferencia)
- Aprovar Agendamento de Transação Ted com Autenticação de Dois Fatores (/documentation/baas/ted/schedule_2fa/aprovacao_de_agendamento_2fa)
- Introdução a Autenticação de Dois Fatores (/documentation/baas/ted/schedule_2fa/introducao_a_agendamento_2fa)
- Solicitar Agendamento de Transação Ted com Autenticação de Dois Fatores (/documentation/baas/ted/schedule_2fa/solicitacao_de_agendamento_2fa)
- Solicitar reenvio de token para um agendamento (/documentation/baas/ted/schedule_2fa/solicitacao_de_reenvio_de_token_para_agendamento_2fa)
- Aprovar Agendamento de Transação Ted em Lote com Autenticação de Dois Fatores (/documentation/baas/ted/schedule_batch_2fa/aprovacao_de_agendamento_em_lote_2fa)
- Solicitar Agendamento de Transação Ted em Lote (/documentation/baas/ted/schedule_batch_2fa/solicitacao_de_agendamento_em_lote_2fa)
- Solicitar Reenvio de Token para um Agendamento de Transação Ted em Lote (/documentation/baas/ted/schedule_batch_2fa/solicitacao_de_reenvio_de_token_para_agendamento_em_lote_2fa)
- Cancelar Agendamento de Transação Ted em Lote (/documentation/baas/ted/schedule_batch/cancelamento_de_agendamento_em_lote)
- Listar Agendamentos de um Lote de Agendamento (/documentation/baas/ted/schedule_batch/listar_agendamentos_de_um_lote)
- Listar Lotes de Agendamento de uma conta (/documentation/baas/ted/schedule_batch/listar_agendamentos_em_lote_de_uma_conta)
- Solicitar Agendamento de Transação Ted em Lote (/documentation/baas/ted/schedule_batch/solicitacao_de_agendamento_em_lote)
- Cancelar Agendamento de Transação Ted (/documentation/baas/ted/schedule/cancelamento_de_agendamento)
- Consultar Agendamento de Transação Ted (/documentation/baas/ted/schedule/consulta_de_agendamento)
- Introdução (/documentation/baas/ted/schedule/introducao)
- Listar Agendamentos de Transação Ted de uma conta (/documentation/baas/ted/schedule/listar_agendamentos_de_uma_conta)
- Solicitar Agendamento de Transação Ted (/documentation/baas/ted/schedule/solicitacao_de_agendamento)
- Webhook de conclusão de Agendamento Ted (/documentation/baas/ted/schedule/webhook_de_conclusao_de_agendamento)
- Webhook após finalização de envio de TED (/documentation/baas/ted/webhooks)
- baas_consulta_documents (/documentation/baas/upload_de_documentos/baas_consulta_documents)
- baas_upload_de_documentos (/documentation/baas/upload_de_documentos/)
- Criar carteira (/documentation/boletos/carteira/criar_carteira)
- Editar carteira (/documentation/boletos/carteira/editar_carteira)
- Listar carteiras da conta (/documentation/boletos/carteira/listar_carteiras)
- Consultar arquivo temporário (/documentation/boletos/cnab/consulta_por_chave)
- Arquivos remessa (CNAB) - Introdução (/documentation/boletos/cnab/introducao)
- Listar arquivos remessa temporários (/documentation/boletos/cnab/listar_arquivos_temporarios)
- Listar ocorrências temporárias (/documentation/boletos/cnab/listar_ocorrencias_temporarias)
- Upload de arquivo remessa (CNAB) (/documentation/boletos/cnab/upload_de_arquivo_remessa)
- Consulta de boleto por chave (/documentation/boletos/consulta/consulta_por_chave)
- Listar boletos (/documentation/boletos/consulta/listar_boletos)
- Relatório de posição diária em Excel (/documentation/boletos/consultar_v1/posicao_diaria_excel)
- Relatório de posição diária em JSON (/documentation/boletos/consultar_v1/posicao_diaria_json)
- Solicitar 2ª via de boleto (/documentation/boletos/consultar_v1/segunda_via_de_boleto)
- Emissão de boleto único (instantânea) (/documentation/boletos/emissao/emissao_boleto_unico_instantanea)
- Emissão de boleto único (padrão) (/documentation/boletos/emissao/emissao_boleto_unico_padrao)
- Emissão de boletos em lote (/documentation/boletos/emissao/emissao_em_lote)
- Cancelamento de abatimento (/documentation/boletos/instrucoes/abatimento/cancelar_abatimento)
- Criar abatimento (/documentation/boletos/instrucoes/abatimento/criar_abatimento)
- Baixa (/documentation/boletos/instrucoes/baixa)
- Desconto (/documentation/boletos/instrucoes/desconto)
- Edição (/documentation/boletos/instrucoes/edicao)
- Prorrogação (/documentation/boletos/instrucoes/extensao)
- Juros (/documentation/boletos/instrucoes/juros)
- Consultar lote de instruções (/documentation/boletos/instrucoes/lote/consultar_lote_de_instrucoes)
- Criar lote de instruções (/documentation/boletos/instrucoes/lote/criar_lote_de_instrucoes)
- Listar lotes de instruções (/documentation/boletos/instrucoes/lote/listar_lotes_de_instrucoes)
- Multa (/documentation/boletos/instrucoes/multa)
- Pagamento Parcial (/documentation/boletos/instrucoes/pagamento_parcial)
- Consulta de instrumento de protesto (/documentation/boletos/instrucoes/protesto/consulta_instrumento_de_protesto)
- Consulta de protesto por chave (/documentation/boletos/instrucoes/protesto/consulta_por_chave)
- Desistência (sustação) de protesto (/documentation/boletos/instrucoes/protesto/desistencia_de_protesto)
- Desistência (sustação) de protesto e baixa do boleto (/documentation/boletos/instrucoes/protesto/desistencia_de_protesto_e_baixa_do_boleto)
- Introdução (/documentation/boletos/instrucoes/protesto/introducao)
- Listar protestos (/documentation/boletos/instrucoes/protesto/listar_protestos)
- Pedido de protesto (/documentation/boletos/instrucoes/protesto/pedido_de_protesto)
- Sustação de protesto (/documentation/boletos/instrucoes/protesto/sustacao_de_protesto)
- Atualização de Rateio de Crédito (/documentation/boletos/instrucoes/rateio_de_credito)
- Valor (/documentation/boletos/instrucoes/valor)
- Introdução (/documentation/boletos/introducao)
- Listar grupos de liquidação (/documentation/boletos/liquidacao/listar_grupos_de_liquidacao)
- Listar liquidações (/documentation/boletos/liquidacao/listar_liquidacoes)
- Simulação de cenários (/documentation/boletos/liquidacao/simulacao_de_cenarios_de_liquidacao)
- Listar arquivos retorno (/documentation/boletos/retorno/listar_arquivos_retorno)
- Webhooks de boletos (/documentation/boletos/webhooks/boleto)
- Webhooks de carteiras de boletos (/documentation/boletos/webhooks/carteira)
- Webhooks de liquidação (/documentation/boletos/webhooks/liquidacao)
- Webhooks de arquivos retorno (/documentation/boletos/webhooks/retorno)
- Requisição de Autorização (Opcional) (/documentation/cards/autorizacao/)
- Simulação de autorização (/documentation/cards/autorizacao/simular_autorizacao)
- Gerar cartão físico (/documentation/cards/create/gerar_cartao_fisico)
- Criar cartão virtual (/documentation/cards/create/gerar_cartao_virtual)
- Introdução (/documentation/cards/introducao)
- Buscar autorização pela Chave da Autorização (/documentation/cards/search/buscar_autorizacao)
- Buscar Authorizações (/documentation/cards/search/buscar_autorizacoes)
- Buscar cartão por chave (/documentation/cards/search/buscar_cartao_by_key)
- Buscar dados PCI (/documentation/cards/search/buscar_dados_pci)
- Buscar entrega por chave de cartão (/documentation/cards/search/buscar_entrega_by_key)
- Buscar Senha PCI (/documentation/cards/search/buscar_senha)
- Listar cartões (/documentation/cards/search/listar_cartoes)
- Ativar cartão físico (/documentation/cards/status/ativar_cartao)
- Atualizar status (/documentation/cards/status/update_status_cartao)
- Configuração do contactless (/documentation/cards/update/contactless_cartao)
- Alterar senha cartão físico (/documentation/cards/update/password_cartao)
- Atualizar endereço de entrega (/documentation/cards/update/update_delivery_address)
- Configuração do contactless (/documentation/cartao_pos_pago/cartao/atualizar/atualizar_contactless)
- Atualizar endereço de entrega (/documentation/cartao_pos_pago/cartao/atualizar/atualizar_endereco_entrega)
- Alterar senha cartão físico (/documentation/cartao_pos_pago/cartao/atualizar/atualizar_senha)
- Simulação de cenários (/documentation/cartao_pos_pago/cartao/atualizar/simulacao_de_cenarios)
- Buscar cartão por chave (/documentation/cartao_pos_pago/cartao/busca/buscar_cartao_por_chave)
- Buscar entrega por chave de cartão (/documentation/cartao_pos_pago/cartao/busca/buscar_dados_entrega_por_chave)
- Buscar dados PCI (/documentation/cartao_pos_pago/cartao/busca/buscar_dados_pci)
- Buscar Senha PCI (/documentation/cartao_pos_pago/cartao/busca/buscar_senha)
- Ativar cartão físico (/documentation/cartao_pos_pago/cartao/status/ativar_cartao)
- Atualizar status (/documentation/cartao_pos_pago/cartao/status/atualizar_status_cartao)
- Alteração de Limite de Carteira (/documentation/cartao_pos_pago/faturas/carteira/alteracao_de_limite)
- Buscar Entrada de Carteira por Chave (/documentation/cartao_pos_pago/faturas/carteira/consulta_entrada_por_chave)
- Consulta de Carteira por Chave (/documentation/cartao_pos_pago/faturas/carteira/consulta_por_chave)
- Criação de Carteira (Wallet) (/documentation/cartao_pos_pago/faturas/carteira/criacao_de_carteira)
- Listar de Carteiras (Wallets) (/documentation/cartao_pos_pago/faturas/carteira/listar_carteiras)
- Listar Entradas de Carteira (/documentation/cartao_pos_pago/faturas/carteira/listar_entradas_da_carteira)
- Buscar Boleto da Carteira (/documentation/cartao_pos_pago/faturas/fatura/boleto_de_pagamento_da_fatura)
- Buscar Fatura por Chave (/documentation/cartao_pos_pago/faturas/fatura/consulta_por_chave)
- Listar Faturas (/documentation/cartao_pos_pago/faturas/fatura/listar_faturas)
- Simulação de cenários - Fechamento e Vencimento de Faturas (/documentation/cartao_pos_pago/faturas/fatura/simulacao_de_cenarios)
- Alteração de Limite de Instrumento de Pagamento (/documentation/cartao_pos_pago/faturas/instrumento_de_pagamento/alteracao_de_limite)
- Cancelamento de Instrumento de Pagamento (/documentation/cartao_pos_pago/faturas/instrumento_de_pagamento/cancelamento_de_instrumento_de_pagamento)
- Buscar Entrada de Instrumento de Pagamento por Chave (/documentation/cartao_pos_pago/faturas/instrumento_de_pagamento/consulta_entrada_por_chave)
- Criação de Instrumento de Pagamento (/documentation/cartao_pos_pago/faturas/instrumento_de_pagamento/criacao_de_instrumento_de_pagamento)
- Listar Entradas de Instrumentos de Pagamento (/documentation/cartao_pos_pago/faturas/instrumento_de_pagamento/listar_entradas_do_instrumento_de_pagamento)
- Listar Instrumentos de Pagamento (/documentation/cartao_pos_pago/faturas/instrumento_de_pagamento/listar_instrumentos_de_pagamento)
- Simulação de cenários (/documentation/cartao_pos_pago/faturas/instrumento_de_pagamento/simulacao_de_cenarios)
- Webhooks de Carteira (/documentation/cartao_pos_pago/faturas/webhooks/carteira)
- Webhooks de Entradas de Carteira (/documentation/cartao_pos_pago/faturas/webhooks/entrada_da_carteira)
- Webhooks de Entradas de Instrumento de Pagamento (/documentation/cartao_pos_pago/faturas/webhooks/entrada_do_instrumento_de_pagamento)
- Webhooks de Fatura (/documentation/cartao_pos_pago/faturas/webhooks/fatura)
- Webhooks de Pagamento de Fatura (/documentation/cartao_pos_pago/faturas/webhooks/pagamento_da_fatura)
- Introdução (/documentation/cartao_pos_pago/introducao)
- Emitir Carta Bancária (/documentation/contas/carta_bancaria)
- Emitir Carta de Circularização (/documentation/contas/carta_circularizacao)
- Consulta de tarifas (/documentation/contas/consulta_de_tarifas)
- Consultar conta (/documentation/contas/consultar_conta)
- Listar contas (/documentation/contas/consultar_contas)
- Consultar detalhes de pedido de conta (/documentation/contas/consultar_detalhes_pedido_conta)
- Encerramento de conta (/documentation/contas/encerramento_de_conta)
- Extrato de tarifas (/documentation/contas/extrato_de_tarifas)
- Gestão de tarifas (/documentation/contas/gestao_de_tarifas)
- Informe de rendimentos (/documentation/contas/informe_rendimentos)
- Consultar Bloqueios em Conta (/documentation/contas/ordens_de_bloqueio)
- Simulação de cenários (/documentation/contas/simulacao)
- Cadastrar conta no DDA (/documentation/dda/cadastro_dda)
- Remover conta do DDA (/documentation/dda/cancelamento_dda)
- Consultar conta cadastrada no DDA (/documentation/dda/consultar_dados_conta)
- Erros retornados na api (/documentation/dda/erros)
- Introdução (/documentation/dda/introducao)
- Listar contas cadastradas no DDA (/documentation/dda/lista_contas_cadastradas)
- Lista de boletos registrados no DDA (bank slip notification) com filtros (/documentation/dda/lista_notificacoes_de_boletos)
- Simulação de cenários de registro e alteração de boletos (/documentation/dda/simulacoes)
- Formato dos Webhooks (/documentation/dda/webhooks)
- Alteração de contato de pessoa (/documentation/gestao_de_usuarios/alteracao_de_contato_de_pessoa)
- Alteração de contato de vínculo (/documentation/gestao_de_usuarios/alteracao_de_contato_de_vinculo)
- Editar dados de uma pessoa (/documentation/gestao_de_usuarios/alteracao_de_dados_pessoais)
- Editar endereço de uma pessoa (/documentation/gestao_de_usuarios/alteracao_de_endereco)
- Consultar partes relacionadas a uma conta PJ (/documentation/gestao_de_usuarios/consulta_partes_relacionadas)
- Criação de pessoa (/documentation/gestao_de_usuarios/criacao_de_pessoa)
- Exclusão de vínculo (/documentation/gestao_de_usuarios/exclusao_de_vinculo)
- Inclusão de vínculo (/documentation/gestao_de_usuarios/inclusao_de_vinculo)
- Introdução (/documentation/gestao_de_usuarios/tfa_introducao)
- Comprovante de transferência (/documentation/movimentacao_de_contas/comprovante_de_transferencia)
- Consulta de Transações (/documentation/movimentacao_de_contas/consulta_de_transacoes)
- Simulação de cenários (/documentation/movimentacao_de_contas/transacao)
- Webhooks (/documentation/movimentacao_de_contas/webhook_movimentacoes)
- Realizando uma transação Peer To Peer (/documentation/peer_to_peer)
- Criação de uma chave pix para um Alias (/documentation/pix_indireto/chaves_pix/criacao_de_chaves)
- Deleção de chave Pix de um Alias (/documentation/pix_indireto/chaves_pix/deletar_chaves)
- Introdução a gestao de chaves PIX para um Alias (/documentation/pix_indireto/chaves_pix/introducao_chaves_pix)
- Listagem de chaves Pix de um Alias (/documentation/pix_indireto/chaves_pix/listar_chaves)
- Cancelar Solicitação de Devolução (/documentation/pix_indireto/devolucao/cancelar_devolucao)
- Consultar Solicitação de Devolução (/documentation/pix_indireto/devolucao/consultar_devolucao)
- Abrir Solicitação de Devolução (/documentation/pix_indireto/devolucao/criar_devolucao)
- Fechar Solicitação de Devolução (/documentation/pix_indireto/devolucao/fechar_devolucao)
- Listar Solicitações de Devolução (/documentation/pix_indireto/devolucao/listar_solicitacoes)
- Introdução ao fluxo de Devolução (/documentation/pix_indireto/devolucao/maquina_estados)
- Simulação de Cenários (/documentation/pix_indireto/devolucao/simulacao_de_cenarios)
- Receber Solicitação de Devolução (/documentation/pix_indireto/devolucao/webhooks_devolucao)
- Consulta de uma entidade Alias (/documentation/pix_indireto/gerenciamento_de_alias/consultar_alias)
- Consulta de Alias por Request Control Key (/documentation/pix_indireto/gerenciamento_de_alias/consultar_request_control_key)
- Criação de uma entidade Alias (/documentation/pix_indireto/gerenciamento_de_alias/criacao_de_alias)
- Deleção de uma entidade Alias (/documentation/pix_indireto/gerenciamento_de_alias/deletar_alias)
- Introdução à entidade de Alias (/documentation/pix_indireto/gerenciamento_de_alias/introducao_alias)
- Listagem de Alias (/documentation/pix_indireto/gerenciamento_de_alias/listagem_de_alias)
- Introdução (/documentation/pix_indireto/introducao)
- Chaves PIX mockadas em ambiente de sandbox (/documentation/pix_indireto/movimentacoes/chaves_pix_mockadas)
- Consulta de Dados de Chave Pix no Banco Central (/documentation/pix_indireto/movimentacoes/consultar_chave_pix)
- Consultar Transação Pix (/documentation/pix_indireto/movimentacoes/consultar_pix)
- Efetuar devolução de um Pix (/documentation/pix_indireto/movimentacoes/devolucao_pix)
- Introdução à movimentações no âmbito do PIX (/documentation/pix_indireto/movimentacoes/introducao_movimentacoes)
- Simulação de cenários (/documentation/pix_indireto/movimentacoes/simulacao)
- Efetuar Transferencia Assíncrona para Pix Manual (/documentation/pix_indireto/movimentacoes/transacao_async/transacao_pix_manual)
- Efetuar Transferencia Assíncrona via Chave Pix (/documentation/pix_indireto/movimentacoes/transacao_async/transacao_pix_normal)
- Efetuar Transferencia Assíncrona para Pix Qr Code (/documentation/pix_indireto/movimentacoes/transacao_async/transacao_pix_qr_code)
- Transação Pix por Chave Pix (/documentation/pix_indireto/movimentacoes/transacao/transacao_pix_chave_sync)
- Transação Pix Manual (/documentation/pix_indireto/movimentacoes/transacao/transacao_pix_manual_sync)
- Transação Pix por QR Code (/documentation/pix_indireto/movimentacoes/transacao/transacao_pix_qr_code_sync)
- Webhook para Devoluções de Pix (/documentation/pix_indireto/movimentacoes/webhook/webhook_devolucao_outgoing_pix)
- Webhook para Pix de Entrada (/documentation/pix_indireto/movimentacoes/webhook/webhook_incoming_pix)
- Webhook para Transações Pendentes (/documentation/pix_indireto/movimentacoes/webhook/webhook_transacao)
- Cancelar um Pedido de Portabilidade (/documentation/pix_indireto/portabilidade/cancelar_pedido_de_portabilidade)
- Completa um Pedido de Portabilidade (/documentation/pix_indireto/portabilidade/completar_pedido_de_portabilidade)
- Confirmar um Pedido de Portabilidade (/documentation/pix_indireto/portabilidade/confirmar_pedido_de_portabilidade)
- Consultar Pedidos de Portabilidade (/documentation/pix_indireto/portabilidade/consultar_pedido_de_portabilidade)
- Criação de um Pedido de Portabilidade (/documentation/pix_indireto/portabilidade/criar_pedido_de_portabilidade)
- Introdução a Pedidos de Portabilidade (/documentation/pix_indireto/portabilidade/introducao_portabilidade)
- Consultar Pedidos de Portabilidade de um Alias (/documentation/pix_indireto/portabilidade/listar_pedidos_de_portabilidade_de_um_alias)
- Webhook Atualização de Portabilidade (/documentation/pix_indireto/portabilidade/webhook/webhook_atualizacao_do_pedido_de_portabilidade)
- Webhook Registro Externo de Portabilidade (/documentation/pix_indireto/portabilidade/webhook/webhook_receber_registro_externo_de_portabilidade)
- Consultar um QR Code Pix (/documentation/pix_indireto/qr_code/consultar_qr_code)
- Criar QR Code Pix dinâmico com vencimento (/documentation/pix_indireto/qr_code/Criar QR Code/criar_qr_code_dinamico_com_vencimento)
- Criar QR Code Pix dinâmico pagamento imediato (/documentation/pix_indireto/qr_code/Criar QR Code/criar_qr_code_dinamico_imediato)
- Criar QR Code Pix Estático (/documentation/pix_indireto/qr_code/Criar QR Code/criar_qr_code_estatico)
- Listar QR Codes de um alias (/documentation/pix_indireto/qr_code/decodificar_qr_code)
- Alterar um QR Code Pix (/documentation/pix_indireto/qr_code/desativar_qr_code)
- Introdução QR Code pix (/documentation/pix_indireto/qr_code/introducao_qr_code)
- Listar QR Codes de um alias (/documentation/pix_indireto/qr_code/listar_alias_qr_codes)
- Webhook para Pix de Entrada de pagamento de QR Code (/documentation/pix_indireto/qr_code/webhook_incoming_pix)
- Cancelar Relato de Infração (/documentation/pix_indireto/relato_de_infracao/cancelar_relato_infracao)
- Consultar Relato de Infração (/documentation/pix_indireto/relato_de_infracao/consultar_relato_infracao)
- Abrir Relato de Infração (/documentation/pix_indireto/relato_de_infracao/criar_relato_infracao)
- Fechar Relato de Infração (/documentation/pix_indireto/relato_de_infracao/fechar_relato_infracao)
- Listar Relatos de Infração (/documentation/pix_indireto/relato_de_infracao/listar_relatos)
- Introdução ao fluxo de Relato de Infração (/documentation/pix_indireto/relato_de_infracao/maquina_estados)
- Simulação de Cenários (/documentation/pix_indireto/relato_de_infracao/simulacao_de_cenarios)
- Receber Relato de Infração (/documentation/pix_indireto/relato_de_infracao/webhooks_relato_infracao)
- Baixar QR Code Pix dinâmico (/documentation/pix/baixar_qr_code_dinamico)
- Busca por solicitação de limite Pix (/documentation/pix/busca_por_solicitacao_de_limite_pix)
- Busca por uso de limite Pix (/documentation/pix/busca_por_uso_de_limite_pix)
- Chaves PIX mockadas em ambiente de sandbox (/documentation/pix/chaves_pix_mockadas)
- Comprovante de transação (/documentation/pix/comprovante_de_transferencia)
- Criar Chave Pix (/documentation/pix/criar_chave)
- Criar QR Code Pix dinâmico (/documentation/pix/criar_qr_code_dinamico)
- Criar QR Code Estático (/documentation/pix/criar_qr_code_estatico)
- Decodificar QR Code Pix (/documentation/pix/decodificar_qr_code)
- Excluir chave Pix (/documentation/pix/excluir_chave)
- Introdução (/documentation/pix/introducao)
- Listar chaves Pix de uma conta (/documentation/pix/listar_chaves_pix)
- MED 2.0 — Consultar Recuperações de Valores (/documentation/pix/med/consultar_recuperacao_de_valores)
- Mecanismo Especial de Devolução do PIX (MED) (/documentation/pix/med/introducao)
- Recebimento de Pedidos de Devolução (/documentation/pix/med/recebimento_pedidos_de_devolucao)
- MED 2.0 — Recebimento de Recuperação de Valores (/documentation/pix/med/recebimento_recuperacao_de_valores)
- Recebimento de Relatos de Infração (/documentation/pix/med/recebimento_relatos_de_infracao)
- MED 2.0 — Responder Recuperação de Valores (/documentation/pix/med/responder_recuperacao_de_valores)
- Responder Relatos de Infração (/documentation/pix/med/resposta_relatos_de_infracao)
- Pesquisar por QR Code Pix dinâmico próprio (/documentation/pix/pesquisar_por_qr_code_dinamico)
- Conclusão da portabilidade (/documentation/pix/portabilidade/conclusao_de_portabilidade)
- Consulta de portabilidade por conta (/documentation/pix/portabilidade/consulta_de_portabilidade_por_conta)
- Criando um pedido de portabilidade (/documentation/pix/portabilidade/criando_um_pedido_de_portabilidade)
- Deletando um pedido de portabilidade (/documentation/pix/portabilidade/deletando_um_pedido_de_portabilidade)
- Portabilidade (/documentation/pix/portabilidade/recebendo_pedido_de_portabilidade)
- Reenviando a validação de dois fatores (/documentation/pix/portabilidade/reenviando_a_2fa)
- Portabilidade (/documentation/pix/portabilidade/respondendo_pedido_de_portabilidade)
- Simular alteração de status de portabilidade (/documentation/pix/portabilidade/simular_alteracao_de_status_de_portabilidade)
- Simular webhook de conclusão do pedido de portabilidade (/documentation/pix/portabilidade/simular_webhook_de_conclusao)
- Simular webhook de recebimento de um pedido de portabilidade (/documentation/pix/portabilidade/simular_webhook_recebimento)
- Validação de dois fatores (/documentation/pix/portabilidade/validacao_de_dois_fatores)
- Simulação de cenários (/documentation/pix/simulacao)
- Solicitar alteração de limite Pix (/documentation/pix/solicitar_alteracao_de_limite_pix)
- Webhook por QR Code Pix dinâmico expirado (/documentation/pix/webhook_por_qr_code_expirado)
- Atualizar regra de movimentação automática (/documentation/regras_de_movimentacao/atualizar_regra_movimentacao)
- Criar regra de movimentação automática (/documentation/regras_de_movimentacao/criar_regra_de_movimentacao)
- Regras de movimentação (/documentation/regras_de_movimentacao/)
- Abrir lote de tombamento de boletos (/documentation/troca_de_titularidade/abrir_lote)
- Aprovar lote de tombamento de boletos (/documentation/troca_de_titularidade/aprovar_lote)
- Cancelar lote de tombamento de boletos (/documentation/troca_de_titularidade/cancelar_lote)
- Incluir boletos em um lote de tombamento (/documentation/troca_de_titularidade/incluir_boletos)
- Introdução (/documentation/troca_de_titularidade/introducao)
- Listar boletos de um lote de tombamento (/documentation/troca_de_titularidade/listar_boletos_lote)
- Listar lotes de tombamento de boletos - destino (/documentation/troca_de_titularidade/listar_lotes_destino)
- Listar lotes de tombamento de boletos - origem (/documentation/troca_de_titularidade/listar_lotes_origem)
- Remover boletos em um lote de tombamento (/documentation/troca_de_titularidade/remover_boletos)
- Enviar lote de tombamento de boletos (/documentation/troca_de_titularidade/validar_lote_e_enviar)

---

# Realizar agendamento de pagamento de boleto

URL: /documentation/agendamentos/agendamento_boleto

Segue o mesmo príncipio do pagamento em outros fluxos, tendo como principal diferença que deve ser enviado o schedule_date e nesse caso você receberá a schedule_key.

## Request

ENDPOINT /bank_slip/payment
MÉTODO POST

Request Body

```json
{
    "digitable_line": "32990001031000000001708001075103794890000015000",
    "source_account_key": "6d30a0b1-cb90-4ceb-b1ea-5bd600cdf3c8",
    "payment_date": "2023-09-25",
    "transaction_amount": 150.00
}

```

### Body params

| Campo                    | Tipo   | Descrição                                                         | Caracteres |
|--------------------------|--------|-------------------------------------------------------------------|------------|
| `digitable_line` *       | string | Linha digitável do boleto.                                        | -          |
| `resource_account_key` * | string | Chave da conta que será utilizada.                                | -          |
| `payment_date` *         | date   | Data para a realização do pagamento. Se não enviada a data será hoje. | -          |
| `transaction_amount`           | float  | Valor a ser pago.                                                 | -          |

:::info Informação

Para visualizar os convênios de pagamentos aceitos, [clique aqui](https://storage.googleapis.com/live-doc-api/public_samples/convenios_qi_tech.xlsx) .

:::

## Response

STATUS 200

Response Body: Pagamento através de uma conta livre

```json
{
    "data": {
        "digitable_line": "09990001029100010009895007444201283400000001000",
        "resource_account_key": "21af482f-b8ac-48dd-8f9a-ea23429d28be"
    },
    "event_datetime": "2020-08-06 19:22:06",
    "key": "e7719f95-a31d-4171-ae83-2d8b3d419dc2",
    "status": "waiting_approval",
    "webhook_type": "bank_slip_payment"
    "schedule_key": "e7719f95-a31d-4171-ae83-2d8b3d419dc2"
}

```

STATUS 200

Response Body: Pagamento através de uma conta escrow

```json
{
    "data": {
        "digitable_line": "09990001029100010009895007444201283400000001000",
        "resource_account_key": "21af482f-b8ac-48dd-8f9a-ea23429d28be"
    },
    "event_datetime": "2020-08-06 19:22:06",
    "key": "e7719f95-a31d-4171-ae83-2d8b3d419dc2",
    "status": "waiting_approval",
    "webhook_type": "bank_slip_payment",
    "schedule_key": "e7719f95-a31d-4171-ae83-2d8b3d419dc2"
}

```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}
```

---

# Agendar transferência Pix

URL: /documentation/agendamentos/agendamento_pix

Segue o mesmo princípio da transferência pix, tendo como principal diferença que deve ser enviado o schedule_date e nesse caso você receberá a schedule_key.

## Request

ENDPOINT /baas/pix_transfer
MÉTODO POST

**Manual**
Request Body: Transferência Manual

```json
    {
        "pix_transfer_type": "manual",
        "source_account": {
            "account_branch": "0001",
            "account_digit": "2",
            "account_number": "2359934",
            "owner_document_number": "09080702000105"
        },
        "schedule_date": "2023-08-24",
        "target_account": {
              "bank_code": "104",
              "account_branch": "0001",
              "account_digit": "4",
              "account_number": "6717606",
              "owner_document_number": "60744463000190",
              "owner_name": "Qi Tech",
              "account_type": "checking",
              "ispb": "32402502"
         },
        "transaction_amount": 15
    }

```

## Response

STATUS 200
Response Body: Transferência manual

```json

{
  "data": {
      "operation_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "status": "pending",
      "event_datetime": "2021-08-04 20:05:54",
      "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "pix_transaction": {
        "pix_message": "",
        "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
        "transaction_amount": 1891268.97,
        "source_account": {
          "account_branch": "0001",
          "account_digit": "3",
          "account_number": "24339",
          "owner_document_number": "32402502000135",
          "owner_name": "Qi Tech",
          "account_type": "checking"
        },
        "target_account": {
          "target_account": "78340-6",
          "financial_institution_code": "329",
          "owner_document_number": "32402502000135",
          "owner_name": "QI Tech",
          "target_account_type": "checking_account",
          "owner_person_type": "legal",
          "trading_name": "QITech"
        },
        "fee_amount": 0,
        "schedule_date": "2020-08-04"
      }
    }
}

```
**Chave**
Request Body: Transferência Chave

```json
        {
            "pix_transfer_type": "key",
            "source_account": {
                "account_branch": "0001",
                "account_digit": "2",
                "account_number": "2359934",
                "owner_document_number": "09080702000105"
            },
            "schedule_date": "2023-08-24",
            "end_to_end_id":	"E32402502202308231745g1goFJ577mp",
            "pix_key":"52720072800",
            "target_account": {
                  "bank_code": "104",
                  "account_branch": "0001",
                  "account_digit": "4",
                  "account_number": "6717606",
                  "owner_document_number": "60744463000190",
                  "owner_name": "Qi Tech",
                  "ispb": "32402502"
             },
            "transaction_amount": 15
        }

```

## Response

STATUS 200
Response Body: Transferência chave

```json
{
  "data": {
    "end_to_end_id": "E32402502202308231825nkKhXiA9DEA",
    "fee_amount": 1,
    "pix_message": "",
    "pix_transfer_key": "c32ad14a-6bfe-43f4-b5a1-4f335dcdd543",
    "source_account": {
      "account_brach": "0001",
      "account_digit": "2",
      "account_number": "2359934",
      "account_type": "checking",
      "owner_document_number": "09080702000105",
      "owner_name": "VOVO LUCIA CONVENIENCIA LTDA"
    },
    "target_account": {
      "document_number": "***.951.18*-**",
      "financial_institution": "CAIXA ECONOMICA FEDERAL"
    },
    "transaction_amount": 15,
    "transfer_purpose": "transfer"
  },
  "event_datetime": "2023-08-23 15:25:36",
  "operation_key": "b37224f2-9a8c-4816-b446-acb213bfe5f0",
  "schedule_key": "c32ad14a-6bfe-43f4-b5a1-4f335dcdd543",
  "status": "pending_approval"
}

```

### Body Params

| Campo | Tipo | Descrição | Caracteres |
|---|---| ---| ---|
| `pix_transfer_type` * | string | O Pix possui diferentes tipos de iniciação, o "manual" onde o usuário deve enviar os campos da conta de destino e conta de origem e o "key" onde o usuário deve enviar os campos da chave Pix do recebedor (conta de destino) e os dados da conta de origem. | 10 |
| `source_account` * | Object | Conta de origem. | **[Objeto source_account](#objeto-source_account)** | 
| `target_account` | Object | Conta destino - Só deve ser enviada em transações do tipo "manual". | **[Objeto target_account](#objeto-target_account)** | 10 |
| `transaction_amount` * | string | Valor da transferencia. | 10 | 
| `schedule_date` | date | Data de agendamento da transação (caso não seja enviado a transferência é realizada no momento da aprovação).  | 10 |
| `receiver_conciliation_id` | string | Identicação de conciliação do recebedor. | 10 |
| `is_chargeback` | string | Flag de identificação de uma devolução de transação Pix (booleano True ou False). | 10 |
| `requester_document_identification` * | string | CPF do usuário quem está solicitando a transferência. | 10 |
| `pix_transfer_key` | string | Chave de idempotência de uma transação Pix - só deve ser enviado se o tipo de transferência for "key". | 10 |
| `chargeback_amount` | string | Valor da devolução - Este campo deve ser enviado apenas em caso de chargeback e exclui a obrigatoriedade do campo "transaction_amount". |  10 |
| `chargeback_other_reason` | string | Motivo de devolução ( Este campo deve ser enviado apenas em caso de chargeback). | 10 |
| `chargeback_message` | string | Campo para usuário inserir mensagem durante a devolução ( Este campo deve ser enviado apenas em caso de chargeback). | 10 |
 
### Objeto source_account

| Campo | Tipo | Descrição | Caracteres |
|---|---| ---| ---|
| `account_branch` * | string | Número Agência. | 0 |
| `branch_digit` |string | Dígito da Agência.| 0 |
| `account_digit` * | string | Dígito da conta.| 0 |
| `account_number` * | string | Número da conta.| 0 | 
| `owner_document_number` * | string | CPF ou CNPJ (apenas números) do titular da conta.| 0 |

### Objeto target_account

| Campo | Tipo | Descrição | Caracteres |
|---|---| ---| ---|
| `account_branch` * | string | Agência. | 10 |
| `account_digit` * | string | Dígito da conta | 10 |
| `account_number` * | string | Número da conta. | 10 |
| `owner_document_number` * | string | CPF ou CNPJ (apenas números) do titular da conta. | 10 |
| `owner_name` * | string | Nome do titular da conta. | 10 |
| `account_type` * |string |  CPF ou CNPJ (apenas números) do titular da conta.| 10 |
| `trading_name` | string |  Nome fantasia para pessoa jurídica.| 10 |
| `ispb` | string |  Código de oito dígitos que identifica os bancos no sistema de transferência de reserva do Banco Central.| 10 |

## Response

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}

```

---

# Realizar transferência

URL: /documentation/agendamentos/agendamento_ted

Segue o mesmo príncipio da transferência comum, tendo como principal diferença que deve ser enviado o schedule_date e nesse caso você receberá a schedule_key.

## Request

ENDPOINT /wire_transfer
MÉTODO POST

Request Body

```json
{
    "source_account": {
        "account_branch": "0001",
        "account_number": "9477323",
        "account_digit": "0",
        "owner_document_number": "38299588000107"
    },
    "target_account": {
        "financial_institution_code": "341",
        "account_branch": "0001",
        "account_number": "92796",
        "account_digit": "1",
        "owner_document_number": "23599885000192",
        "owner_name": "plugify"
    },
    "schedule_date": "2023-10-10",
    "transaction_amount": 8.86
}

```

### Body Params

| Campo | Tipo | Descrição | Caracteres |
|---|---| ---| ---|
| `source_account` * | object | Conta de origem. | **[Objeto source_account](#objeto-source_account)** | 
| `target_account` * |  object | Conta de destino. | **[Objeto target_account](#objeto-target_account)** | 
| `transaction_amount` * | double | Valor da transferência. | 10 |
| `schedule_date` * | date |  Data de agendamento da transação, se não especificado a transação será realizada no momento do envio ou assim que aprovada. | 10 |

### Objeto source_account

| Campo | Tipo | Descrição | Caracteres |
|---|---| ---| ---|
| `account_branch` * |  string | Agência. | 10 |
| `account_digit` * |  string | Dígito da conta | 10 |
| `account_number` * | string | Número da conta. | 10 |
| `owner_document_number` * | string | CPF ou CNPJ (apenas números) do titular da conta. | 10 |
| `target_account_type` * |  string | Tipo da conta destino |  **[Enumeradores](#enumeradores-ted_account_type)** |

### Objeto target_account

| Campo | Tipo | Descrição | Caracteres |
|---|---| ---| ---|
| `account_branch` * | string | Agência. | 10 |
| `account_digit` * | string | Dígito da conta | 10 |
| `account_number` * | string | Número da conta. | 10 |
| `owner_document_number` * | string | CPF ou CNPJ (apenas números) do titular da conta. | 10 |
| `owner_name` * | string | Nome do titular da conta. | 10 |

### Enumeradores target_account_type

| Enumerador | Tradução |
|---|---|
|  checking_account  | conta corrente |
|  deposit_account  |  conta depósito  |
|  guaranteed_account  |  conta de garantia  |
|  investment_account  |  conta de investimento |
|  payment_account  | conta de pagamento |
|  saving_account  | conta poupança  |

## Response
### Transferência a partir de uma conta de livre movimentação

STATUS 200

Response Body

```json
{
  "data": {
    "outgoing_ted_key": null,
    "schedule_date": "2023-10-10",
    "schedule_key": "3be3e5ef-5e43-4d04-b987-be80ae983529",
    "source_account": {
      "account_branch": "0001",
      "account_digit": "0",
      "account_number": "9477323",
      "owner_document_number": "38299588000107"
    },
    "target_account": {
      "account_branch": "0001",
      "account_digit": "1",
      "account_number": "92796",
      "financial_institution_code": "341",
      "owner_document_number": "23599885000192",
      "owner_name": "plugify"
    },
    "transaction_amount": 8.86
  },
  "event_datetime": "2023-08-23 19:40:54",
  "key": "2b198f4d-1b1d-4116-8cd6-ec3da64e6b96",
  "status": "success",
  "webhook_type": "wire_transfer"
}

```

### Transferência a partir de uma conta de escrow

STATUS 200

Response Body

```json
{
  "data": {
    "source_account": {
      "account_branch": "0001",
      "account_digit": "3",
      "account_number": "24339",
      "owner_document_number": "32402502000135"
    },
    "target_account": {
      "account_branch": "0001",
      "account_digit": "6",
      "account_number": "78340",
      "financial_institution_code": "329",
      "owner_document_number": "32402502000135",
      "owner_name": "QI Tech"
    },
    "transaction_key": "7986dcc7-4331-478f-af47-adfbdf7f4a36",
    "transaction_amount": 1891268.97
  },
  "event_datetime": "2019-11-28 19:22:04",
  "key": "fa80723e-4f9a-42b1-9410-d5fa3c183fa8",
  "status": "success",
  "webhook_type": "wire_transfer"
}

```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}

```

---

# Cancelar agendamento

URL: /documentation/agendamentos/cancelar_agendamento

## Request

ENDPOINT /account/transaction/schedule/SCHEDULED_TRANSACTION_KEY/cancel
MÉTODO PATCH

Request Body

```json
{
            "reason": "reason (opcional)"
}

```

### Path Params

| Campo         | Tipo   | Descrição                          |
|---------------|--------|------------------------------------|
| `SCHEDULED_TRANSACTION_KEY` | string | Chave que identifica o agendamento |

Response Body

```json
{}
```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}

```

:::danger Observações Gerais:
Apenas são passíveis de cancelamento os agendamentos aprovados quando a aprovação for aplicável!
:::

---

# Consulta de transações agendadas

URL: /documentation/agendamentos/consulta_agendamentos

## Request

ENDPOINT /account/ACCOUNT_KEY/scheduled_transactions
MÉTODO GET

### QUERY PARAMS

| Campo                | Descrição                                  |
|----------------------|--------------------------------------------|
| `status`             | status de um boleto                        |
| `date`               | Data do agendamento.         |
| `page_number`        | Página atual que está sendo consultada     |
| `page_size`          | Quantidade de resultados por página        |

### Path Params

| Campo                | Descrição                                  |
|----------------------|--------------------------------------------|
| `ACCOUNT_KEY`        | account_key da conta de origem das transações|

## Response

STATUS 200

Response Body

```json
{
  "data": [{
    "outgoing_pix_key": "chave da schedule",
    "outgoing_ted_key": "chave da schedule",
    "schedule_date": "iso date string",
    "source_account_key": "chave da conta de origem da transação",
    "target_account_bank_code": "banco destino (opcional)",
    "target_account_bank_ispb": "ispb destino (opcional)",
    "target_account_branch": "agencia destino",
    "target_account_number": "conta de destino",
    "target_account_digit": "digito conta destino",
    "target_account_type": "tipo de conta destino (opcional)",
    "beneficiary_name": "nomoe do beneficiario",
    "beneficiary_document_number": "documento do beneficiario (cpf/cnpj)",
    "scheduled_amount": "valor agendadp",
    "beneficiary_person_type": "tipo de beneficiario",
    "target_account_key": "chave da conta destino (opcional)",
    "source_subtype": "tipo de transação (enum)",
    "created_at": "data em que o agendamento foi feito",
    "status": "status do agendamento",
    "pix_key": "chave pix destino (opcional)",
    "cancellation_requester": "identificação do requisitor do cancelamento",
    "cancellation_reason": "origem do cancelamento (enum)",
    "updated_at": "data de atualização"
  }],
  "pagination": {
    "current_page": 1,
    "next_page": null,
    "rows_per_page": 10
  }
}
```

:::danger Observações Gerais:
Apenas serão listados os agendamentos aprovados quando a aprovação for aplicável!
:::

---

# Confirmar Abertura de Conta de Pessoa Física

URL: /documentation/baas/account/abrir_conta_pf

Como segunda etapa da abertura de conta pessoa física, [após a reserva de conta](/documentation/baas/account/abrir_conta_pf), devem ser enviados os dados cadastrais completos do titular e evidências do aceite nos termos de abertura da conta.

## Request
ENDPOINT /account_request/ ACCOUNT_REQUEST_KEY /checking
MÉTODO PATCH

## Path Params
| Campo         | Tipo   | Descrição                              | Caracteres |
|---------------|--------|----------------------------------------|------------|
| `account_request_key` | uuidv4 | Chave única de identificação solicitação de reserva da conta. | 36         |

Request Body

```json
{
    "account_owner": {
        "address": {
            "street": "Av. Brigadeiro Faria Lima",
            "state": "SP",
            "city": "São Paulo",
            "neighborhood": "Jardim Paulistano",
            "number": "2391",
            "postal_code": "01452905",
            "complement": "Complemento"
        },
        "birth_date": "1990-05-06",
        "document_identification": "3884579b-9810-4fa6-9b08-fe67d237160a",
        "email": "teste@gmail.com",
        "individual_document_number": "99999999999",
        "is_pep": false,
        "mother_name": "Dona Maria Mariane",
        "name": "Nome do Titular da Conta",
        "nationality": "nationality",
        "person_type": "natural",
        "phone": {
            "country_code": "055",
            "area_code": "11",
            "number": "999999999"
        },
        "proof_of_residence": "4d7f4e-1eec-4e5f-82c0-d8c3921497ea",
        "monthly_income": 1000
    },
    "signed_contract": {
        "document_key": "48a8f4g9-4b58-4905-9a69-b1f9215263f5",
        "signatures": [
            {
                "authenticity": {
                    "timestamp": "1970-01-01T00:00:01.080100Z",
                    "facial_recognition_key": "79003de0-2590-455d-9b73-426b8ca284eb",
                    "lang": "-35.8916627",
                    "lat": "-7.2226067",
                    "ip_address": "177.51.1.186",
                    "session_id": "jdifj329842"
                },
                "signer": {
                    "name": "Nome do Titular da Conta",
                    "email": "teste@gmail.com",
                    "phone": {
                        "country_code": "055",
                        "area_code": "11",
                        "number": "999999999"
                    },
                    "document_number": "999999999"
                },
                "authentication_type": "opt-in"
            }
        ]
    },
    "additional_documents": ["b12c8807-8f3f-4083-9cb1-7cce641f3786"]
}
```

### Request Body Params

| Campo | Tipo | Descrição                                                                                  | Caracteres |
|---|---|--------------------------------------------------------------------------------------------|---|
| `account_owner` * | object  | Objeto contendo as informações do Titular da Conta                                         | **[Objeto account_owner](#objeto-account_owner)** |
| `signed_contract` * | object  | Objeto contendo as evidências do aceito do Titular quanto aos termos de abertura da conta. | **[Objeto signed_contract](#objeto-signed_contract)** |

### Objeto account_owner

| Campo | Tipo | Descrição | Caracteres                            |
|---| ---| ---|---------------------------------------| 
| `address` * | string | Endereço do cliente. | **[Objeto address](#objeto-address)** |  |
| `birth_date` | string |  Data de nascimento da pessoa (formato "AAAA-MM-DD") |                                       |
| `document_identification` * | string |  DOCUMENT_KEY do PDF do documento de identificação da pessoa com foto (RG ou CNH) (enviado previamente) |                                       |                                   |
| `email` * | string |  Email do cliente. |                                       |
| `individual_document_number`* | string | CPF da pessoa (apenas números). Limitado a 11 caracteres. |                                       |
| `is_pep` * | string |  Declaração se a pessoa é PEP (http://www.portaldatransparencia.gov.br/download-de-dados/pep).|                                       |
| `mother_name` | string |  Nome da mãe do cliente em caso de PF. | 100                                   |
| `name` * | string |  Razão social em caso de operações PJ ou Nome da pessoa em caso de operações PF. | 100                                   |
| `nationality` * | string |  Nacionalidade do cliente. | 50                                    |
| `person_type` * | string | Identificador de que o objeto enviado é uma pessoa física ou jurídica.|                                       |
| `phone` * | string | Objeto com dados do telefone | **[Objeto phone](#objeto-phone)**     |
| `proof_of_residence` | string |  DOCUMENT_KEY do PDF do comprovante de endereço do endereço enviado (enviado previamente).|                                       |
|`monthly_income`* | number | Renda mensal do titular da conta | | 

### Objeto address 

Este objeto, presente tanto no objeto PF quanto no objeto PJ, é um simples objeto para representar um endereço.

| Campo | Descrição | Exemplo |  Máx. Caracteres | 
|---|---|---|---| 
| `street` *| string | Rua do endereço  | 100 |
| `state` *| enum | Estado do endereço (com dois caracteres maiúsculos) | 2 |
| `city` *| string | Cidade do endereço | 100 |
| `neighborhood` *| string |Bairro do endereço | 100 |
| `number` *| string | Número da rua | 10 |
| `postal_code` *| string |CEP do endereço (http://www.buscacep.correios.com.br/sistemas/buscacep/) (apenas números) |  8 |
| `complement` *| string |Complemento do endereço (texto livre) | 100 |

### Objeto signed_contract 
| Campo | Tipo   | Descrição        | Caracteres                                |
|-------|--------|------------------|-------------------------------------------|
| `document_key` * | uuidv4 | Chave única de identificação do documento do **Termo de Abertura de Conta** ou **Contrato de Conta Escrow**. (A DOCUMENT_KEY é retornada na resposta do endpoint de [Upload de documentos](./upload_de_documentos)) | 36                                        |
| `signatures` *   | list   | Dados de assinatura do documento enviado. Cada item da lista, corresponde a um assinante do documento.      | **[Objeto signatures](#objeto-signatures)** |

### Objeto signatures
| Campo | Tipo       | Descrição         | Caracteres                                      |
|-------|------------|-------------------|-------------------------------------------------|
| `authenticity` * | object     | Conjunto de dados que evidenciam a assinatura eletrônica realizada pelo assinante. | **[Objeto authenticity](#objeto-authenticity)** |
| `signer` * | object     | Objeto contendo os dados de um dos assinantes do documento.           | **[Objeto signer](#objeto-signer)**             |
| `authentication_type` * | enumerator | Tipo de assinatura. Sempre será "**opt-in**"| "**opt-in**"                                    |

### Objeto authenticity
| Campo | Tipo   | Descrição               | Caracteres |
|-------|--------|-------------------------|------------|
| `timestamp` *            | string | Data e hora do momento da assinatura do documento.                | 27         |
| `facial_recognition_key`* | uuidv4 | Chave única de identificação da foto da selfie do titular da conta. | 36         |
| `lang`                  | string | Coordenada de longitude da geolocalização do assinante capturada no momento da assinatura.                  | -          |
| `lat`                    | string | Coordenada de latitude da geolocalização do assinante capturada no momento da assinatura.                   | -          |
| `ip_address`             | string | Endereço IP do dispositivo do assinante.     | -          |
| `session_id`  *           | string | ID da seção do assinante no momento da assinatura.                | -          |

### Objeto signer
| Campo                 | Tipo   | Descrição                                 | Caracteres                        |
|-----------------------|--------|-------------------------------------------|-----------------------------------|
| `name` *            | string | Nome do assinante.                        | -                                 |
| `email` *           | string | Email do assinante.                       | -                                 |
| `phone` *           | object | Objeto com dados do telefone do assinante | **[Objeto phone](#objeto-phone)** |
| `document_number` * | string | CPF do assinante.                         | 11                                |

### Objeto phone 

| Campo | Descrição | Exemplo |  Máx. Caracteres | 
| --- | --- | --- | --- | 
|`country_code` *| string | Código DDI do telefone (https://ddi.guiamais.com.br/) | 3 | 
| `area_code` *| string | Código DDD do telefone (https://ddd.guiamais.com.br/) | 2 |
| `number` *| string |Número de telefone (apenas números) |  10 |

## Response

STATUS 201

Response Body

```json
 { "account_key": "78ea0fa6-8ea6-46ff-b66b-d2bc36fc8869" }
```

:::warning Atenção
 O campo `account_request_key` deve ser armazenado e será utilizado para a confirmação da abertura da conta.
:::

### Response Body Params

| Campo | Tipo | Descrição | Caracteres                                      |
|---|---| ---|-------------------------------------------------|
| `account_key` * | string  | Chave de única de identificação da conta| -                                               | - |

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`  | Descrição (eng)<br/>`description` | Descrição(ptbr) <br></br>`translation`|
|---| --- | --- | --- | --- | 
| 400 | QIT000001 | Bad Request | Schema Error | Erro de Schema|
| 404 | QIT000404 | Not Found | Resource could not be found | Recurso não encontrado|

---

# Confirmar Abertura de Conta de Pessoa Jurídica

URL: /documentation/baas/account/abrir_conta_pj

A abertura de conta ocorre em duas etapas obrigatórias. Primeiro, uma requisição POST envia dados preliminares para reservar a conta. Em seguida, um webhook do tipo `account_request.status_change` com o status `pending_additional_data` é disparado. Na segunda etapa, uma requisição PATCH finaliza a abertura, oficializando a conta com as informações complementares. 

## Request
ENDPOINT /account_request/ ACCOUNT_REQUEST_KEY /checking
MÉTODO PATCH

## Path Params
| Campo         | Tipo   | Descrição                              | Caracteres |
|---------------|--------|----------------------------------------|------------|
| `account_request_key` | uuidv4 | Chave única de identificação solicitação de reserva da conta. | 36         |

## Abertura da Conta de Livre Movimentação

Request Body

```json
{
    "account_owner": {
        "phone": {
            "country_code": "55",
            "area_code": "11",
            "number": "999999999"
        },
        "email": "email@teste.com.br",
        "person_type": "legal",
        "name": "Empresa de Teste",
        "address": {
            "street": "Rua Abrahão Calux",
            "state": "SP",
            "city": "São Paulo",
            "neighborhood": "Vila Teste",
            "number": "116",
            "postal_code": "04286100",
            "complement": "Complemento"
        },
        "trading_name": "Nome fantasia",
        "company_document_number": "99999999000130",
        "cnae_code": "4721102",
        "foundation_date": "1980-07-11",
        "company_statute": "99999999-01c9-4cf5-a0fa-1d2a96f4b34d",
        "monthly_revenue": 100000,
        "company_representatives": [
            {
                "name": "Nome do Socio",
                "individual_document_number": "99999999999",
                "document_identification_number": "999999999",
                "birth_date": "1989-09-01",
                "mother_name": "Maria da Silva",
                "email": "teste@gmail.com",
                "is_pep": false,
                "final_beneficiary": true,
                "person_type": "natural",
                "nationality": "brasileiro(a)",
                "marital_status": "single",
                "document_identification": "88888-0ddf-4932-874f-9231794963da",
                "phone": {
                    "country_code": "055",
                    "area_code": "19",
                    "number": "999999999"
                },
                "address": {
                    "street": "Rua dos Limões",
                    "neighborhood": "Vila Moinho Velho",
                    "city": "São Paulo",
                    "state": "SP",
                    "postal_code": "04286100",
                    "number": "116",
                    "complement": "complemento"
                },
                "representative_relationship": "ceo"
            }
        ],
        "company_type": "ltda"
    },
    "signed_contract": {
        "document_key": "57cda530-d469-4427-a9d4-2523a510dee1",
        "signatures": [
            {
                "authenticity": {
                    "timestamp": "2024-05-10T14:15:03.114895Z",
                    "ip_address": "192168161",
                    "lang": "-35.8916627",
                    "lat": "-7.2226067",
                    "session_id": "54b8e3cf-15de-41e5-9305-0ecf059d6e2a",
                    "facial_recognition_key": "c367a540-2e7e-4373-a167-61bc43c30dc1"
                },
                "signer": {
                    "name": "Nome do assinante",
                    "email": "teste@gmail.com.br",
                    "phone": {
                        "country_code": "55",
                        "area_code": "11",
                        "number": "999999999"
                    },
                    "document_number": "99999999"
                },
                "authentication_type": "opt-in"
            }
        ]
    },
    "additional_documents": [
        "61f2a65e-0ddf-4932-874f-9231794963da"
    ]
}
```

### Request Body Params

| Campo                 | Tipo   | Descrição                                                                            | Caracteres                                            |
|-----------------------|--------|--------------------------------------------------------------------------------------|-------------------------------------------------------|
| `account_owner` *   | object | Objeto titular da conta                                                              | **[Objeto account_owner](#objeto-account_owner)**     |
| `signed_contract` *| object | Objeto contento as informações do aceita eletrônico dos termos de abertura da conta. | **[Objeto signed_contract](#objeto-signed_contract)** |
| `additional_documents` *| list   | Lista com as `document_key` (uuidv4) dos documentos adicionais do titular da conta.  | 36 |

### Objeto account_owner

| Campo                         | Tipo   | Descrição                                                                                                                         | Caracteres                                                            |
|-------------------------------|--------|-----------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------|
| `address` *                 | object | Objeto endereço do titular da conta                                                                                               | **[Objeto address](#objeto-address)**                                 |
| `cnae_code`               | string | Classificação Nacional de Atividades Econômicas                                                                                   | 9                                                                     |
| `company_document_number` * | string | CNPJ                                                                                                                              | 14                                                                    |
| `company_statute` *         | string | DOCUMENT_KEY do PDF do estatuto da empresa (enviado previamente).                                                                 | 36                                                                    |
| `company_type`*              | enum   | Tipo da empresa                                                                                                                   | **[Enumeradores company_type](#enumeradores-company_type)**           |
| `company_representatives` * | list   | Lista dos representantes legais da empresa                                                                                        | **[Objeto company_representatives](#objeto-company_representatives)** |
| `email` *                   | string | Email institucional da empresa.                                                                                                   | 254                                                                   |
| `foundation_date`         | string | Data de abertura da empresa (formato "AAAA-MM-DD").                                                                               | 10                                                                    |
| `name` *                    | string | Razão social.                                                                                                                     | 100                                                                   |
| `person_type` *             | enum   | Identificador de que o objeto enviado é uma pessoa jurídica. Deve conter SEMPRE o valor "legal" para Objeto PJ.                   | **[Enumeradores person_type](#enumeradores-person_type)**             |
| `phone` *                   | object | Telefone do titular da conta.                                                                                                     | **[Objeto phone](#objeto-phone)**                                     | - |
| `trading_name` *            | string | Nome fantasia.                                                                                                                    | 200                                                                   |
| `monthly_revenue`* | number | Faturamento mensal da empresa | |

### Objeto company_representatives

| Campo                              | Tipo    | Descrição                                                                                              | Caracteres                                                                                  |
|------------------------------------|---------|--------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------|
| `name` *                         | string  | Nome do representante da empresa                                                                       | 100                                                                                         |
| `address` *                      | object  | Objeto endereço do representante da empresa                                                            | **[Objeto address](#objeto-address)**                                                       |
| `email` *                        | string  | Email do representante da empresa                                                                      | 254                                                                                         |
| `birth_date`                   | string  | Data de nascimento representante da empresa (formato "AAAA-MM-DD")                                     | 10                                                                                          |
| `individual_document_number` *   | string  | CPF do representante da empresa (apenas números).                                                      | 11                                                                                          |
| `document_identification`*        | string  | DOCUMENT_KEY do PDF do documento de identificação da pessoa com foto (RG ou CNH) (enviado previamente) | 36                                                                                          |
| `document_identification_number`* | string  | Número do documento de identificação com foto da pessoa (RG ou CNH)                                    | 16                                                                                          |
| `document_identification_type`   | enum    | Tipo do documento de identificação com foto da pessoa (RG ou CNH)                                      | **[Enumeradores document_identification_type](#enumeradores-document_identification_type)** |
| `is_pep` *                       | boolean | Declaração se a pessoa é PEP (http://www.portaldatransparencia.gov.br/download-de-dados/pep).          | -                                                                                           |
| `final_beneficiary`              | boolean | Declaração se o representante é beneficiário final da empresa.                                         | -                                                                                           |
| `marital_status`                 | enum    | Estado civil do representante da empresa                                                               | **[Enumeradores marital status](#enumeradores-marital_status)**                             |
| `mother_name`                  | string  | Nome da mãe do representante da empresa                                                                | 100                                                                                         |
| `nationality`                    | string  | Nacionalidade do representante da empresa                                                              | 50                                                                                          |
| `person_type` *                  | enum    | Identificador de que o objeto enviado é uma pessoa física                                              | **[Enumeradores person_type](#enumeradores-person_type)**                                   |
| `phone` * | object  | Objeto com dados do telefone do representante da empresa  | **[Objeto phone](#objeto-phone)**                                                           |
| `representative_relationship` * | enum | Identificador do vínculo existente entre a empresa e o seu representante | **[Enumeradores representative_relationship](#enumeradores-representative_relationship)

### Objeto address

Este objeto, presente tanto no objeto PF quanto no objeto PJ, é um simples objeto para representar um endereço.

| Campo              | Descrição | Exemplo                                                                                   | Caracteres |
|--------------------|-----------|-------------------------------------------------------------------------------------------|------------|
| `street` *       | string    | Rua do endereço                                                                           | 500        |
| `state` *        | enum      | Estado do endereço (com dois caracteres maiúsculos)                                       | 2          |
| `city` *         | string    | Cidade do endereço                                                                        | 255        |
| `neighborhood` * | string    | Bairro do endereço                                                                        | 500        |
| `number` *       | string    | Número da rua                                                                             | 10         |
| `postal_code` *  | string    | CEP do endereço (http://www.buscacep.correios.com.br/sistemas/buscacep/) (apenas números) | 8          |
| `complement`*     | string    | Complemento do endereço (texto livre)                                                     | 500        |

### Objeto signed_contract 
| Campo | Tipo   | Descrição        | Caracteres    |
|-------|--------|------------------|---------------|
| `document_key` * | uuidv4 | Chave única de identificação do documento do **Termo de Abertura de Conta** ou **Contrato de Conta Escrow**. (A DOCUMENT_KEY é retornada na resposta do endpoint de [Upload de documentos](./upload_de_documentos)) | 36            |
| `signatures` *   | list   | Dados de assinatura do documento enviado. Cada item da lista, corresponde a um assinante do documento.      | [Objeto signatures](#objeto-signatures) |

### Objeto signatures
| Campo | Tipo       | Descrição         | Caracteres        |
|-------|------------|-------------------|-------------------|
| `authenticity` * | object     | Conjunto de dados que evidenciam a assinatura eletrônica realizada pelo assinante. | [Objeto authenticity](#objeto-authenticity) |
| `signer` * | object     | Objeto contendo os dados de um dos assinantes do documento.           | [Objeto signer](#objeto-signer)|
| `authentication_type` * | enumerator | Tipo de assinatura. Sempre será "**opt-in**"| "**opt-in**"                   |

### Objeto authenticity
| Campo | Tipo   | Descrição               | Caracteres |
|-------|--------|-------------------------|------------|
| `timestamp` *            | string | Data e hora do momento da assinatura do documento.                | 27         |
| `facial_recognition_key`* | uuidv4 | Chave única de identificação da foto da selfie do titular da conta.  | 36         |
| `lang`                   | string | Coordenada de longitude da geolocalização do assinante capturada no momento da assinatura.                  | -          |
| `lat`                    | string | Coordenada de latitude da geolocalização do assinante capturada no momento da assinatura.                   | -          |
| `ip_address`             | string | Endereço IP do dispositivo do assinante.     | -          |
| `session_id`*             | string | ID da seção do assinante no momento da assinatura.                | -          |

### Objeto signer
| Campo                 | Tipo   | Descrição                                 | Caracteres                        |
|-----------------------|--------|-------------------------------------------|-----------------------------------|
| `name` *            | string | Nome do assinante.                        | -                                 |
| `email` *           | string | Email do assinante.                       | -                                 |
| `phone` *           | object | Objeto com dados do telefone do assinante | **[Objeto phone](#objeto-phone)** |
| `document_number` * | string | CPF do assinante.                         | 11                                |

### Objeto phone 

| Campo | Descrição | Exemplo |  Máx. Caracteres | 
| --- | --- | --- | --- | 
|`country_code` *| string | Código DDI do telefone (https://ddi.guiamais.com.br/) | 3 | 
| `area_code` *| string | Código DDD do telefone (https://ddd.guiamais.com.br/) | 2 |
| `number` *| string |Número de telefone (apenas números) |  10 |

### Enumeradores person_type
| Enum        | Description       |
|-------------|-------------------|
| `natural` | Pessoa física     |
| `legal`   | Pessoa jurídica   |

### Enumeradores representative_relationship
| Enum        | Description       |
|-------------|-------------------|
| `ceo` | Administrador  |
| `partner` | Sócio/Acionista |
| `attorney` | Procurador|

### Enumeradores document_identification_type
| Enum    | Description                            |
|---------|----------------------------------------|
| `rg`  | RG - Registro Geral                    |
| `cnh` | CNH - Carteira Nacional de Habilitação |

### Enumeradores company_type
| Enum                     | 	Description                                                             |
|--------------------------|--------------------------------------------------------------------------|
| `ltda`                  | Limitada                                                                |
| `sa`	                  | Sociedade Anônima                                                        |
| `micro_enterprise`	    | Micro Empresa                                                            |
| `freelancer`            | Freelancer                                                              |
| `sa_opened`             | Sociedade Anônima de Capital Aberto                                     |
| `sa_closed`	           | Sociedade Anônima de Capital Fechado                                     |
| `se_ltda`               | Sociedade Empresária Limitada                                           |
| `se_cn`                 | Sociedade Empresária em Nome Coletivo                                   |
| `se_cs`                 | Sociedade Empresária em Comandita Simples                               |
| `se_ca`	               | Sociedade Empresária em Comandita por Ações                              |
| `scp`                   | Sociedade em Conta de Participação                                      |
| `ei`	                   | Empresário Individual                                                    |
| `ese`	                 | Estabelecimento, no Brasil, de Sociedade Estrangeira                     |
| `eeab`	                | Estabelecimento, no Brasil, de Empresa Binacional Argentino-Brasileira   |
| `ssp`                  | Sociedade Simples Pura                                                  |
| `ss_ltda`	             | Sociedade Simples Limitada                                               |
| `ss_cn`                | Sociedade Simples em Nome Coletivo                                      |
| `ss_cs`                | Sociedade Simples em Comandita Simples                                  |
| `eireli_ne`            | Empresa Individual de Responsabilidade Limitada (de Natureza Empresária) |
| `eireli_ns`            | Empresa Individual de Responsabilidade Limitada (de Natureza Simples)   |
| `eireli`               | Empresa de Responsabilidade Individual                                  |
| `mei`                  | Micro Empreendedor Individual                                            |
| `me`	                  | Micro Empresa                                                            |
| `cop`	                 | Cooperativa                                                              |
| `private_association`	 | Sociedade Privada                                                        |
| `others`	   | Outros  |

### Enumeradores marital_status
| Enum         | 	Description  |
|--------------|---------------|
| `single`   | Solteiro(a)   |
| `married`  | Casado(a)    |
| `widower`  | Viúvo(a)     |
| `divorced` | Divorciado(a) |
| `separated` | Separado(a) |

## Response

STATUS 201

Response Body

```json
 { "account_key": "78ea0fa6-8ea6-46ff-b66b-d2bc36fc8869" }
```

:::warning Atenção
 O campo `account_request_key` deve ser armazenado e será utilizado para a confirmação da abertura da conta.
:::

### Response Body Params

| Campo | Tipo | Descrição | Caracteres                                      |
|---|---| ---|-------------------------------------------------|
| `account_key` * | string  | Chave de única de identificação da conta| -                                               | - |

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`  | Descrição (eng)<br/>`description` | Descrição(ptbr) <br></br>`translation`|
|---| --- | --- | --- | --- | 
| 400 | QIT000001 | Bad Request | Schema Error | Erro de Schema|
| 404 | QIT000404 | Not Found | Resource could not be found | Recurso não encontrado|

---

# Introdução

URL: /documentation/baas/account/introducao

Uma das funcionalidades que podemos oferecer em nossa integração é a possibilidade de gerenciar contas e transferências para contas da QI Tech ou de outras instituições financeiras via API, mas não é só isso, provemos a possibilidade de fazer a ABERTURA de uma conta via API.Seja para você mesmo, ou para terceiros.

Assim como as demais APIs a liberação do serviço deve ser feita junto ao nosso time e as chamadas são autenticadas.

A abertura de conta ocorre em duas etapas obrigatórias. Na primeira etapa, uma requisição POST é enviada com os dados preliminares para realizar a reserva da conta. Após essa solicitação, é executada automaticamente uma consulta ao Banco Central, especificamente ao repositório vinculado ao projeto BC Protege+. Esse sistema permite que pessoas físicas e jurídicas registrem voluntariamente restrições indicando em quais instituições financeiras não desejam que novas contas sejam abertas em seus nomes, como medida de prevenção a fraudes.

Nesse fluxo, o status inicial da reserva é `pending_bacen_validation`.
Se a consulta for aprovada, um webhook do tipo `account_request.status_change` é disparado, atualizando o status para `pending_kyc_analysis`.

Após a aprovação na análise de KYC, um novo webhook `account_request.status_change` é enviado, alterando o status para `pending_additional_data` — etapa que indica a conclusão da análise e a necessidade de envio das informações complementares.

Na segunda etapa, deve ser realizada uma requisição PATCH contendo os dados adicionais necessários para finalizar o processo e oficializar a abertura da conta.

---

# Solicitar Abertura de Conta de Pessoa Física

URL: /documentation/baas/account/reservar_conta_pf

A abertura de conta ocorre em duas etapas obrigatórias. Primeiro, uma requisição POST envia dados preliminares para reservar a conta. Em seguida, um webhook do tipo `account_request.status_change` com o status `pending_additional_data` é disparado. Na segunda etapa, uma requisição PATCH finaliza a abertura, oficializando a conta com as informações complementares. 

## Solicitar Reserva de Conta

## Request
ENDPOINT /account_request/checking
MÉTODO POST

Request Body

```json
{
    "request_control_key": "5ef0f67a-7672-4d00-8a02-faf847157c4b",
    "account_owner": {
        "document_number": "99999999999",
        "email": "email@teste.com",
        "birthdate": "2017-09-16",
        "name": "Titular da Conta",
        "documents": {
            "rg": {
                "ocr_front_key": "2ef0f67a-7672-4d00-8a02-faf847157b4a",
                "ocr_back_key": "1bd0e0a1-c1fa-4f9c-a230-f7a4163864be"
            },
            "cnh": {
                "ocr_key": "7a73be1a-0b66-4c0a-932a-1d1d02efdc4c"
            }
        },
        "face": "d38dd3c0-6f24-43b9-a37a-425d6700620f"
    }
}
```

:::info Mock de CPF/CNPJ
Para simular situações de aprovação, reprovação e analise manual pode ser utilizado o primeiro digito do CPF/CNPJ do owner da conta:

0 à 7 -> Análise Manual

8 -> Reprovado automaticamente no KYC

9 -> Aprovação Automática
:::

### Request Body Params

| Campo | Tipo   | Descrição                                         | Caracteres                                        |
|---|--------|---------------------------------------------------|---------------------------------------------------|
| `account_owner` * | object | Objeto contendo as informações do Titular da Conta | **[Objeto account_owner](#objeto-account_owner)** |
| `request_control_key` * | UUID   | Identificador único por requisição do parceiro  | 36                                                |

### Objeto account_owner
| Campo | Tipo | Descrição | Caracteres |
|--- | --- | --- | --- |
| `document_number` * | string  | CPF do Titular da Conta | 11 |
| `email` * | string  | Email | 11 |
| `birthdate` | string  | Data de nascimento do Titular da Conta(formato YYYY-MM-DD) | 10 |
| `name` * | string  | Nome Completo do Titular da Conta | 50 |
| `documents`* | object  | Documento(s) do titular da conta | **[Objeto documents](#objeto-documents)** |
| `face`*      | uuidv4  | Chave do reconhecimento facial feito junto ao antifraude (`face_recognition_key`) | 36 |

### Objeto documents

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `rg`                           | object      | Chaves OCR (OCR keys) do upload da frente e verso do RG do titular | **[Objeto rg](#objeto-rg)**   |
| `cnh`                          | object      | Chave OCR do upload da CNH do titular                              | **[Objeto cnh](#objeto-cnh)** |
| `cnh_digital`                     | object      | Chave OCR do upload da CNH digital do titular                       | **[Objeto cnh_digital](#objeto-cnh_digital)** |
| `national_registry_of_foreigners` | object   | Chaves OCR (OCR keys) do upload da frente e verso do RNE do titular| **[Objeto national_registry_of_foreigners](#objeto-national_registry_of_foreigners)** |
| `national_migration_registry` | object   | Chaves OCR (OCR keys) do upload da frente e verso do CRNM do titular| **[Objeto national_migration_registry](#objeto-national_migration_registry)** |
| `passport`                     | object      | Chave OCR do upload do passaporte do titular                       | **[Objeto passport](#objeto-passport)** |
| `cin_digital`                     | object      | Chave OCR do upload da Cédula de Identidade Nacional digital do titular                       | **[Objeto cin_digital](#objeto-cin_digital)** |

:::info Informação
As chaves OCR (`ocr_key` ou `ocr_front_key` e `ocr_back_key`) do upload das imagens dos documentos são fornecidos como resposta do upload das imagens no antifraude. A `face_recognition_key` é retornada na resposta do reconhecimento facial.
:::

### Objeto rg

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_front_key` *              | uuidv4      | Chave OCR do upload da imagem da frente do RG                      | 36                            |
| `ocr_back_key` *               | uuidv4      | Chave OCR do upload da imagem do verso do RG                       | 36                            |

OU

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_key` *                    | uuidv4      | Chave OCR do upload da imagem do RG                                | 36                       |

### Objeto cnh

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_front_key` *              | uuidv4      | Chave OCR do upload da imagem da frente da CNH                     | 36                            |
| `ocr_back_key` *               | uuidv4      | Chave OCR do upload da imagem do verso da CNH                      | 36                            |

OU

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_key` *                    | uuidv4      | Chave OCR do upload da imagem da CNH                               | 36                            |

### Objeto cnh_digital

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_key` *                    | uuidv4      | Chave OCR do upload da imagem da CNH digital                               | 36                            |

### Objeto national_registry_of_foreigners

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_front_key` *              | uuidv4      | Chave OCR do upload da imagem da frente do RNE                     | 36                            |
| `ocr_back_key` *               | uuidv4      | Chave OCR do upload da imagem do verso do RNE                      | 36                            |

OU

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_key` *                    | uuidv4      | Chave OCR do upload da imagem do RNE                               | 36                            |

### Objeto national_migration_registry

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_front_key` *              | uuidv4      | Chave OCR do upload da imagem da frente do CRNM                     | 36                            |
| `ocr_back_key` *               | uuidv4      | Chave OCR do upload da imagem do verso do CRNM                      | 36                            |

OU

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_key` *                    | uuidv4      | Chave OCR do upload da imagem do CRNM                               | 36                            |

### Objeto passport

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_key` *                    | uuidv4      | Chave OCR do upload da imagem do passaporte                               | 36                            |

### Objeto cin_digital

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_key` *                    | uuidv4      | Chave OCR do upload da imagem da Cédula de Identidade Nacional digital                               | 36                            |

## Response

STATUS 201

Response Body

```json
{
    "account_info": {
        "account_branch": "0001",
        "account_digit": "0",
        "account_number": "1693580"
    },
    "account_request_key": "f230f1b5-07af-4737-b0e3-8a472304f5e7",
    "account_request_status": "pending_bacen_validation"
}
```

:::info Fluxo Bacen Protege+
A proposta começa com status `pending_bacen_validation`. O sistema realiza uma validação prévia junto ao Bacen Protege+ antes de prosseguir com a análise de KYC. Após aprovação do Bacen, o status será atualizado para `pending_kyc_analysis` automaticamente.
:::

:::warning Atenção
 O campo `account_request_key` deve ser armazenado e será utilizado para a confirmação da abertura da conta.
:::

### Response Body Params

| Campo | Tipo | Descrição | Caracteres|
|---|---| ---|---|
| `account_info` * | object  | Objeto contendo as informações do Titular da Conta |**[Objeto account_info](#objeto-account_info)**  | - |
| `account_request_key` * | string  | Chave de identificação da requisição de criação | - | - |
| `account_request_status` * | string  | Status de KYC | - | - |

### Objeto account_info
| Campo | Tipo | Descrição | Caracteres |
|---|---| ---| --- |
| `account_branch` * | string  | Número da Agência | 4 |
| `account_digit` * | string  | Dígito da Conta | 11 |
| `account_number` * | string  | Numero da Conta | 50 |

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`  | Descrição (eng)<br/>`description` | Descrição(ptbr) <br></br>`translation`|
|---| --- | --- | --- | --- | 
| 400 | QIT000001 | Bad Request | Schema Error | Erro de Schema|
| 404 | QIT000404 | Not Found | Resource could not be found | Recurso não encontrado|

---

# Abertura de Conta de Pessoa Jurídica

URL: /documentation/baas/account/reservar_conta_pj

A abertura de conta ocorre em duas etapas obrigatórias. Primeiro, uma requisição POST envia dados preliminares para reservar a conta. Em seguida, um webhook do tipo `account_request.status_change` com o status `pending_additional_data` é disparado. Na segunda etapa, uma requisição PATCH finaliza a abertura, oficializando a conta com as informações complementares. 

## Solicitar Reserva de Conta

## Request
ENDPOINT /account_request/checking
MÉTODO POST

Request Body

```json
{
  
    "account_owner": {
        "company_document_number": "99999999000199",
        "email": "teste@email.com",
        "foundation_date": "2017-09-16",
        "name": "NOME DA EMPRESA"
    },
    "legal_representatives": [
        {
            "birthdate": "1963-07-23",
            "name": "Don Corleone",
            "document_number": "03912394323",
            "email": "teste@gmail.com",
            "documents": {
                "national_registry_of_foreigners": {
                    "ocr_front_key": "0aa8a4ca-5873-49bd-851c-1f2c71a1cc28",
                    "ocr_back_key": "29f6e346-7fae-4dcb-9ea1-2a3e4ef593ea"
                }
            },
            "face": "68da08f1-6cf4-4dce-a297-7b2f09311784"
        },
        {
            "birthdate": "1996-03-10",
            "name": "John Doe",
            "document_number": "39113492093",
            "email": "teste@gmail.com",
            "documents": {
                "cnh": {
                    "ocr_key": "beee557e-9240-4c5b-88f1-42812b195168"
                }
            }
        }
    ]
}
```
:::info Mock de CPF/CNPJ
Para simular situações de aprovação, reprovação e analise manual pode ser utilizado o primeiro digito do CPF/CNPJ do owner da conta:

0 à 6 -> Análise Manual

7 -> Rejeitado pelo bacen protege+

8 -> Reprovado automaticamente no KYC

9 -> Aprovação Automática
:::

### Request Body Params

| Campo | Tipo | Descrição | Caracteres |
|---|---| ---|---|
| `account_owner` * | object  | Objeto contendo as informações do Titular da Conta | **[Objeto account_owner](#objeto-account_owner)** |
| `legal_representatives`* | object array | Lista de representantes da conta e seus dados | **[Objeto legal_representative](#objeto-legal_representative)** |

### Objeto account_owner
| Campo | Tipo | Descrição | Caracteres |
|--- | --- | --- | --- |
| `company_document_number` * | string  | CNPJ do Titular da Conta | 50 |
| `email` * | string  | Email | 11 |
| `foundation_date` | string  | Data de fundação da empresa(formato YYYY-MM-DD) | 10 |
| `name` * | string  | Nome Completo do Titular da Conta | 50 |

### Objeto legal_representative

| Campo | Tipo | Descrição | Caracteres |
|--- | --- | --- | --- |
| `document_number` * | string  | CPF do Titular da Conta | 11 |
| `birthdate` | string  | 	Data de nascimento. (formato YYYY-MM-DD) | 10 |
| `name` * | string  | Nome do Titular da Conta | 50 |
| `documents` * | object  | Documento(s) do titular da conta | **[Objeto documents](#objeto-documents)** |
| `face`*      | uuidv4  | Chave do reconhecimento facial feito junto ao antifraude (`face_recognition_key`) | 36 |

### Objeto documents

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `rg`                           | object      | Chaves OCR (OCR keys) do upload da frente e verso do RG do titular | **[Objeto rg](#objeto-rg)**   |
| `cnh`                          | object      | Chave OCR do upload da CNH do titular                              | **[Objeto cnh](#objeto-cnh)** |
| `cnh_digital`                     | object      | Chave OCR do upload da CNH digital do titular                       | **[Objeto cnh_digital](#objeto-cnh_digital)** |
| `national_registry_of_foreigners` | object   | Chaves OCR (OCR keys) do upload da frente e verso do RNE do titular| **[Objeto national_registry_of_foreigners](#objeto-national_registry_of_foreigners)** |
| `national_migration_registry` | object   | Chaves OCR (OCR keys) do upload da frente e verso do CRNM do titular| **[Objeto national_migration_registry](#objeto-national_migration_registry)** |
| `passport`                     | object      | Chave OCR do upload do passaporte do titular                       | **[Objeto passport](#objeto-passport)** |
| `cin_digital`                     | object      | Chave OCR do upload da Cédula de Identidade Nacional digital do titular                       | **[Objeto cin_digital](#objeto-cin_digital)** |

:::info Informação
As chaves OCR (`ocr_key` ou `ocr_front_key` e `ocr_back_key`) do upload das imagens dos documentos são fornecidos como resposta do upload das imagens no antifraude. A `face_recognition_key` é retornada na resposta do reconhecimento facial.
:::

### Objeto rg

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_front_key` *              | uuidv4      | Chave OCR do upload da imagem da frente do RG                      | 36                            |
| `ocr_back_key` *               | uuidv4      | Chave OCR do upload da imagem do verso do RG                       | 36                            |

OU

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_key` *                    | uuidv4      | Chave OCR do upload da imagem do RG                                | 36                            |

### Objeto cnh

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_front_key` *              | uuidv4      | Chave OCR do upload da imagem da frente da CNH                     | 36                            |
| `ocr_back_key` *               | uuidv4      | Chave OCR do upload da imagem do verso da CNH                      | 36                            |

OU

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_key` *                    | uuidv4      | Chave OCR do upload da imagem da CNH                               | 36                            |

### Objeto cnh_digital

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_key` *                    | uuidv4      | Chave OCR do upload da imagem da CNH digital                               | 36                            |

### Objeto national_registry_of_foreigners

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_front_key` *              | uuidv4      | Chave OCR do upload da imagem da frente do RNE                     | 36                            |
| `ocr_back_key` *               | uuidv4      | Chave OCR do upload da imagem do verso do RNE                      | 36                            |

OU

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_key` *                    | uuidv4      | Chave OCR do upload da imagem do RNE                               | 36                            |

### Objeto national_migration_registry

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_front_key` *              | uuidv4      | Chave OCR do upload da imagem da frente do CRNM                     | 36                            |
| `ocr_back_key` *               | uuidv4      | Chave OCR do upload da imagem do verso do CRNM                      | 36                            |

OU

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_key` *                    | uuidv4      | Chave OCR do upload da imagem do CRNM                               | 36                            |

### Objeto passport

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_key` *                    | uuidv4      | Chave OCR do upload da imagem do passaporte                               | 36                            |

### Objeto cin_digital

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_key` *                    | uuidv4      | Chave OCR do upload da imagem da Cédula de Identidade Nacional digital                               | 36                            |

## Response

STATUS 201

Response Body

```json
{
    "account_info": {
        "account_branch": "0001",
        "account_digit": "0",
        "account_number": "1693580"
    },
    "account_request_key": "f230f1b5-07af-4737-b0e3-8a472304f5e7",
    "account_request_status": "pending_bacen_validation"
}
```

:::info Fluxo Bacen Protege+
A proposta começa com status `pending_bacen_validation`. O sistema realiza uma validação prévia junto ao Bacen Protege+ antes de prosseguir com a análise de KYC. Após aprovação do Bacen, o status será atualizado para `pending_kyc_analysis` automaticamente.
:::

:::warning Atenção
 O campo `account_request_key` deve ser armazenado e será utilizado para a confirmação da abertura da conta.
:::

### Response Body Params

| Campo | Tipo | Descrição | Caracteres|
|---|---| ---|---|
| `account_info` * | object  | Objeto contendo as informações do Titular da Conta |**[Objeto account_info](#objeto-account_info)**  | - |
| `account_request_key` * | string  | Chave de identificação da requisição de criação | - | - |
| `account_request_status` * | string  | Status de KYC | - | - |

### Objeto account_info
| Campo | Tipo | Descrição | Caracteres |
|---|---| ---| --- |
| `account_branch` * | string  | Número da Agência | 4 |
| `account_digit` * | string  | Email | 11 |
| `account_number` * | string  | Nome Completo do Titular da Conta | 50 |

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`  | Descrição (eng)<br/>`description` | Descrição(ptbr) <br></br>`translation`|
|---| --- | --- | --- | --- | 
| 400 | QIT000001 | Bad Request | Schema Error | Erro de Schema|
| 404 | QIT000404 | Not Found | Resource could not be found | Recurso não encontrado|

---

# Webhooks de abertura de conta

URL: /documentation/baas/account/webhooks

Após a solicitação de reserva de conta, o status inicial é `pending_bacen_validation`. Se aprovada, o status da reserva é atualizado para `pending_kyc_analysis`. Em seguida, ao ser aprovado em KYC, o status se torna `pending_additional_data`.

Para os status `pending_kyc_analysis`, `pending_additional_data` e `rejected`, o webhook do tipo `account_request.status_change` é enviado, sendo esse evento essencial para controle das próximas ações necessárias à confirmação da abertura de conta.

O número de conta será reservado no momento da solicitação de reserva de abertura, porém neste momento **a conta ainda não estará aberta**. Somente após a conclusão da análise de KYC da QI Tech e posterior confirmação da solicitação pelo parceiro, a conta estará aberta.

### Enumeradores account_request_status
| Enum                        | Description                         |
|-----------------------------|-------------------------------------|
| **pending_kyc_analysis**    | Pendente de aprovação KYC           |
| **pending_additional_data** | Pendente de informações adicionais  |
| **rejected**                | Abertura rejeitada                  |

Quando o status for `rejected`, o webhook inclui o campo `rejection_reason` no corpo raiz da mensagem. O valor desse campo é livre e pode variar conforme a razão identificada, seja proveniente da análise de KYC ou do Bacen Protege+.

### Webhook de pendência de análise de KYC

WEBHOOK_TYPE account_request.status_change
STATUS pending_kyc_analysis

Webhook Body

```json
{
    "data": {
        "account_info": {
            "account_digit": "3",
            "account_branch": "0001",
            "account_number": "1638634"
        },
        "account_request_key": "dc575950-dcce-48e1-99a6-5fb0ada63d86",
        "status": "pending_kyc_analysis"
    },
    "event_datetime": "2022-09-02 22:39:39",
    "key": "dc575950-dcce-48e1-99a6-5fb0ada63d86",
    "status": "pending_kyc_analysis",
    "webhook_type": "account_request.status_change"
}
```

### Webhook de pendência de confirmação de conta

WEBHOOK_TYPE account_request.status_change
STATUS pending_additional_data

Webhook Body

```json
{
    "key": "dc575950-dcce-48e1-99a6-5fb0ada63d86",
    "data": {
        "account_info": {
            "account_digit": "3",
            "account_branch": "0001",
            "account_number": "1638634"
        },
        "account_request_key": "dc575950-dcce-48e1-99a6-5fb0ada63d86"
    },
    "event_datetime": "2022-09-02 22:39:39",
    "status": "pending_additional_data",
    "webhook_type": "account_request.status_change"
}
```

### Webhook de abertura rejeitada (KYC)

WEBHOOK_TYPE account_request.status_change
STATUS rejected

Webhook Body

```json
{
    "data": {
        "account_info": {
            "account_digit": "3",
            "account_branch": "0001",
            "account_number": "1638634"
        },
        "account_request_key": "dc575950-dcce-48e1-99a6-5fb0ada63d86"
    },
    "event_datetime": "2022-09-02T22:39:39",
    "key": "dc575950-dcce-48e1-99a6-5fb0ada63d86",
    "status": "rejected",
    "webhook_type": "account_request.status_change",
    "rejection_reason": "UNSC"
}
```

### Webhook de abertura rejeitada (Bacen Protege+)

WEBHOOK_TYPE account_request.status_change
STATUS rejected

Webhook Body

```json
{
    "data": {
        "account_info": {
            "account_digit": "3",
            "account_branch": "0001",
            "account_number": "1638634"
        },
        "account_request_key": "dc575950-dcce-48e1-99a6-5fb0ada63d86"
    },
    "event_datetime": "2022-09-02T22:39:39",
    "key": "dc575950-dcce-48e1-99a6-5fb0ada63d86",
    "status": "rejected",
    "webhook_type": "account_request.status_change",
    "rejection_reason": "Rejeitado devido ao Bacen Protege+"
}
```

---

# Catálogo de Erros - Banking-as-a-Service

URL: /documentation/baas/catalogo_de_erros_baas

Abaixo estão listados todos os erros que podem ser retornados pelas APIs do Banking-as-a-Service.
Cada código de erro possui um identificador único que pode ser usado como referência.

:::info
O serviço pix-keys-api utiliza apenas erros compartilhados (QIT) listados na seção de Erros Comuns abaixo.
:::

## Erros Comuns

Erros compartilhados entre todas as APIs da plataforma.

| Código | HTTP | Mensagem |
|-|-|-|
| <a id="QIT000001"></a>`QIT000001` | 400 | **Schema Validator Error**<br/>Payload Inválido<br/><small>{description}</small> |
| <a id="QIT000002"></a>`QIT000002` | 403 | **Permission Validator Error**<br/>Request must be internal |
| <a id="QIT000003"></a>`QIT000003` | 403 | **Permission Validator Error**<br/>O agente não tem funções suficientes.<br/><small>The agent does not have enough roles.</small> |
| <a id="QIT000004"></a>`QIT000004` | 403 | **Permission Validator Error**<br/>Agente selecionado e person_key são diferentes<br/><small>Selected agent and person_key are different</small> |
| <a id="QIT000005"></a>`QIT000005` | 403 | **Permission Validator Error**<br/>O agente selecionado não é dono do item.<br/><small>Selected agent do not own this item.</small> |
| <a id="QIT000006"></a>`QIT000006` | 403 | **Permission Validator Error**<br/>Agente selecionado não é dono deste item e não tem funções suficientes.<br/><small>Selected agent do not own this item and has not enough roles.</small> |
| <a id="QIT000007"></a>`QIT000007` | - | **External API Error (Rest Connector)**<br/>{translation}<br/><small>{description}</small> |
| <a id="QIT000010"></a>`QIT000010` | 400 | **Search Params Error**<br/>Valor inválido para parâmetros página ou tamanho de página<br/><small>Invalid integer value for page or size querystring parameters</small> |
| <a id="QIT000400"></a>`QIT000400` | 400 | **Bad Request**<br/>O servidor não pode ou não processará a requisição devido a um erro do cliente (por exemplo, corpo da requisição inválido, tamanho muito grande, formatação da mensagem inválida ou rota inválida)<br/><small>The server cannot or will not process the request due to an apparent client error (e.g., malformed request syntax, size too large, invalid request message framing, or deceptive request routing)</small> |
| <a id="QIT000404"></a>`QIT000404` | 404 | **Not Found**<br/>O resource solicitado não pôde ser encontrado, mas pode estar disponível no futuro. Requests subsequentes do cliente são permitidos<br/><small>The requested resource could not be found but may be available in the future. Subsequent requests by the client are permissible</small> |
| <a id="QIT000500"></a>`QIT000500` | 500 | **Internal Error**<br/>Um erro interno aconteceu e está sendo investigado.<br/><small>An internal error has occurred and its being investigated.</small> |
| <a id="QIT000753"></a>`QIT000753` | 500 | **Internal Error**<br/>Um erro interno aconteceu e está sendo investigado.<br/><small>An internal error has occurred and its being investigated.</small> |

## Erros Específicos

### ACC — Contas

224 erros

| Código | HTTP | Mensagem |
|-|-|-|
| <a id="ACC000001"></a>`ACC000001` | 400 | **Bad Request**<br/>Use POST /account |
| <a id="ACC000002"></a>`ACC000002` | 409 | **Reserved Account Error**<br/>Conta reservada já foi criada<br/><small>Reserved account already created</small> |
| <a id="ACC000003"></a>`ACC000003` | 409 | **Reserved Account Error**<br/>Conta reservada já foi liberada<br/><small>Reserved account already released</small> |
| <a id="ACC000004"></a>`ACC000004` | 400 | **Bad Request**<br/>Use PATCH /account/{account_key} |
| <a id="ACC000005"></a>`ACC000005` | 403 | **Unauthorized Agent**<br/>Este agente não pode realizar esta ação<br/><small>This agent can not perform this action</small> |
| <a id="ACC000006"></a>`ACC000006` | 404 | **Not Found**<br/>Conta não encontrada para a seguinte chave {account_key}<br/><small>Account not found for the given key {account_key}</small> |
| <a id="ACC000007"></a>`ACC000007` | 400 | **Bad Request**<br/>SELECTED_AGENT ou person_key devem ser fornecidos<br/><small>A SELECTED_AGENT or person_key must be provided</small> |
| <a id="ACC000008"></a>`ACC000008` | 404 | **Not Found**<br/>Conta não encontrada para os parâmetros fornecidos.<br/><small>Account not found for the given parameters.</small> |
| <a id="ACC000009"></a>`ACC000009` | 423 | **Invalid Account**<br/>Contas bloqueadas ou fechadas não podem realizar esta ação.<br/><small>Blocked or closed accounts can not perform this action</small> |
| <a id="ACC000010"></a>`ACC000010` | 404 | **Owner Person Not Found**<br/>Dono não encontrada para a person_key {person_key}.<br/><small>Owner person_key {person_key} not found.</small> |
| <a id="ACC000011"></a>`ACC000011` | 423 | **Invalid Account**<br/>Contas fechadas não podem realizar esta ação.<br/><small>Closed accounts can not perform this action.</small> |
| <a id="ACC000012"></a>`ACC000012` | 400 | **Bad Request**<br/>Chave da conta (account_key) é obrigatória<br/><small>Account Key is obligatory</small> |
| <a id="ACC000013"></a>`ACC000013` | 400 | **Bad Request**<br/>Use /account/{account_key}/beneficiary |
| <a id="ACC000014"></a>`ACC000014` | 400 | **Bad Request**<br/>Use /account/{account_key}/beneficiary?document_number={document_number} ou /account/{account_key}/beneficiary/{beneficiary_key}<br/><small>Use /account/{account_key}/beneficiary?document_number={document_number} or /account/{account_key}/beneficiary/{beneficiary_key}</small> |
| <a id="ACC000015"></a>`ACC000015` | 400 | **Bad Request**<br/>Parâmetro is_activated é obrigatório<br/><small>is_activated is needed in payload</small> |
| <a id="ACC000016"></a>`ACC000016` | 404 | **Not Found**<br/>Contas do beneficiário não encontradas para os parâmetros fornecidos<br/><small>Beneficiary accounts not found for the given parameters.</small> |
| <a id="ACC000017"></a>`ACC000017` | 404 | **Not Found**<br/>Conta destino não encontrada para os parâmetros fornecidos<br/><small>Target account not found for the given key</small> |
| <a id="ACC000018"></a>`ACC000018` | 402 | **Block Balance Error**<br/>Não é possível blockear uma quantidade maior do que o saldo na conta<br/><small>Impossible to block an amount greater than account balance</small> |
| <a id="ACC000019"></a>`ACC000019` | 402 | **Block Balance Error**<br/>Saldo da conta a ser bloqueada não pode ser negativo.<br/><small>Account blocked balance cannot be negative.</small> |
| <a id="ACC000020"></a>`ACC000020` | 402 | **Block Balance Error**<br/>Saldo da conta a ser bloqueada não pode ser 0 ou nulo.<br/><small>Account blocked balance cannot be 0 or null.</small> |
| <a id="ACC000021"></a>`ACC000021` | 422 | **Account Status Error**<br/>Status da conta não pode realizar esta ação (source_status: {source_account_enumerator}, target_status: {target_account_enumerator})<br/><small>Account status can not perform this action (source_status: {source_account_enumerator}, target_status: {target_account_enumerator})</small> |
| <a id="ACC000022"></a>`ACC000022` | 422 | **Unprocessable Entity**<br/>Transação já realizada<br/><small>Transaction already performed</small> |
| <a id="ACC000023"></a>`ACC000023` | 422 | **Unprocessable Entity**<br/>Transação não pode ser realizada antes da data de transação (transaction_date)<br/><small>Transaction cannot be performed before the transaction_date</small> |
| <a id="ACC000024"></a>`ACC000024` | 404 | **Not Found**<br/>Transação não encontrada<br/><small>Transaction not found</small> |
| <a id="ACC000025"></a>`ACC000025` | 422 | **Invalid Account**<br/>Conta inválida.<br/><small>Invalid account.</small> |
| <a id="ACC000026"></a>`ACC000026` | 422 | **Account Error**<br/>Transações devem ser realizadas utilizando uma conta do sistema.<br/><small>Transaction must be performed using a system account.</small> |
| <a id="ACC000027"></a>`ACC000027` | 402 | **Account Balance Error**<br/>Saldo da conta não pode ser negativo após a transação.<br/><small>Account balance must not be negative after the transaction.</small> |
| <a id="ACC000028"></a>`ACC000028` | 402 | **Account Balance Error**<br/>Transação não pode ser feita pois saldo em conta bloqueado.<br/><small>Transaction cannot be made due to already blocked balance.</small> |
| <a id="ACC000029"></a>`ACC000029` | 400 | **Bad Request**<br/>Request não possui body.<br/><small>No body provided</small> |
| <a id="ACC000030"></a>`ACC000030` | 400 | **Bad Request**<br/>Use POST /reserved_account |
| <a id="ACC000031"></a>`ACC000031` | 400 | **Bad Request**<br/>Use GET /reserved_account/{reserved_account_key} |
| <a id="ACC000032"></a>`ACC000032` | 404 | **Not Found**<br/>Conta reservada não encontrada<br/><small>Reserved account not found.</small> |
| <a id="ACC000033"></a>`ACC000033` | 404 | **Not Found**<br/>Transação não encontrada para a chave fornecida<br/><small>There is no transaction for the given key</small> |
| <a id="ACC000034"></a>`ACC000034` | 422 | **Account Error**<br/>Transações não devem ser realizadas utilizando uma conta do sistema.<br/><small>Transaction cannot be performed using a system account.</small> |
| <a id="ACC000035"></a>`ACC000035` | 400 | **Bad Request**<br/>É necessário o parâmetro STATUS na request<br/><small>Status parameter is required</small> |
| <a id="ACC000036"></a>`ACC000036` | 400 | **Bad Request**<br/>Parâmetros incorretos<br/><small>Wrong parameters used on the request</small> |
| <a id="ACC000037"></a>`ACC000037` | 400 | **Bad Request**<br/>Parâmetro incorreto: {param}<br/><small>Wrong parameter used on the request: {param}</small> |
| <a id="ACC000038"></a>`ACC000038` | 400 | **Transaction Request Error**<br/>Necessária a chave da Solicitação de transação<br/><small>Missing transaction request key</small> |
| <a id="ACC000039"></a>`ACC000039` | 400 | **Transaction Request Error**<br/>Solicitação de transação não encontrada<br/><small>Transaction request not found</small> |
| <a id="ACC000040"></a>`ACC000040` | 400 | **Transaction Request Error**<br/>Solicitação de transação {transaction_request_key} já foi aprovada<br/><small>Transaction request {transaction_request_key} already approved</small> |
| <a id="ACC000041"></a>`ACC000041` | 400 | **Transaction Request Error**<br/>Solicitação de transação {transaction_request_key} já foi recusada<br/><small>Transaction {transaction_request_key} request already rejected</small> |
| <a id="ACC000042"></a>`ACC000042` | 400 | **Transaction Request Error**<br/>O usuário já aprovou a solicitação {transaction_request_key}<br/><small>User has already approved the {transaction_request_key} request</small> |
| <a id="ACC000043"></a>`ACC000043` | 400 | **Transaction Request Error**<br/>O usuário já rejeitou a solicitação {transaction_request_key}<br/><small>User has already rejected the {transaction_request_key} request</small> |
| <a id="ACC000044"></a>`ACC000044` | 423 | **Transaction Request Error**<br/>Conta destino fechada não pode receber transferências<br/><small>Closed target can not receive transfer</small> |
| <a id="ACC000045"></a>`ACC000045` | 400 | **Bad Request**<br/>Request não possui os parâmetros obrigatórios de tamanho e número de página.<br/><small>Missing page or size mandatory parameters on request.</small> |
| <a id="ACC000046"></a>`ACC000046` | 404 | **Not Found**<br/>Nenhum resultado encontrado para a schedule_key fornecida<br/><small>No match for given schedule_key</small> |
| <a id="ACC000047"></a>`ACC000047` | 400 | **Bad Request**<br/>Data de agendamento não pode ser para o mesmo dia após as 17:00, nem ser finais de semana, feriados ou datas passadas.<br/><small>Scheduling time cannot occur for the same day after 17:00, nor be on a weekend, holiday or on a past date.</small> |
| <a id="ACC000048"></a>`ACC000048` | 402 | **Balance Error**<br/>Saldo insuficiente para esta transação<br/><small>Not enough balance to perform transaction</small> |
| <a id="ACC000049"></a>`ACC000049` | 400 | **Credential Error**<br/>Esta conta não possui credenciais de requester<br/><small>This account doesn't have requester credentials</small> |
| <a id="ACC000050"></a>`ACC000050` | 400 | **Bad Request**<br/>COnta de destino inválida, conta de destino não cadastrada para essa conta escrow<br/><small>Invalid destination, destination account not permitted for this escrow account</small> |
| <a id="ACC000051"></a>`ACC000051` | 400 | **Destination Error**<br/>Destino não é uma conta interna<br/><small>Destination isn't a internal account</small> |
| <a id="ACC000052"></a>`ACC000052` | 400 | **Bad Request**<br/>Tipo de transação inválido<br/><small>Invalid Transaction Type.</small> |
| <a id="ACC000053"></a>`ACC000053` | 400 | **Bad Request**<br/>Tipo de operação inválida para este tipo de conta<br/><small>Invalid operation for this account type</small> |
| <a id="ACC000054"></a>`ACC000054` | 400 | **Bad Request**<br/>{rule_enum} não encontrada dentro das regras registradas.<br/><small>{rule_enum} was not found among registered rules.</small> |
| <a id="ACC000055"></a>`ACC000055` | 400 | **Bad Request**<br/>Incompatibilidade entre a configuração de transferência automática e o modelo da respectiva regra: {message}<br/><small>Mismatch between automatic transfer configuration and respective rule template: {message}</small> |
| <a id="ACC000056"></a>`ACC000056` | 422 | **Unprocessable Entity**<br/>A conta está vazia.<br/><small>Account is empty.</small> |
| <a id="ACC000057"></a>`ACC000057` | 400 | **Bad Request**<br/>Data de movimentação não pode ser uma data passada<br/><small>Movement date cannot be a past date</small> |
| <a id="ACC000058"></a>`ACC000058` | 400 | **Bad Request**<br/>Data de movimentação precisa ser um dia util<br/><small>Movement date has to be a workday</small> |
| <a id="ACC000059"></a>`ACC000059` | 400 | **Bad Request**<br/>Data de movimentação precisa ser hoje para o tipo: {movement_type}<br/><small>Movement date has to be today for movement type: {movement_type}</small> |
| <a id="ACC000060"></a>`ACC000060` | 400 | **Bad Request**<br/>Data de movimentação não pode ser hoje para o tipo: {movement_type}<br/><small>Movement date cannot be today for movement type: {movement_type}</small> |
| <a id="ACC000061"></a>`ACC000061` | 423 | **Locked**<br/>Pagamento de boleto está disponível entre {opening_time} e {closing_time}<br/><small>Bank slip payment is available from {opening_time} to {closing_time}</small> |
| <a id="ACC000062"></a>`ACC000062` | 423 | **Locked**<br/>TED está disponível entre {opening_time} e {closing_time}<br/><small>TED is available from {opening_time} to {closing_time}</small> |
| <a id="ACC000063"></a>`ACC000063` | 404 | **Not Found**<br/>Schema de movimentação não pode ser encontrado para o tipo: {movement_type}<br/><small>Movement schema not found for {movement_type} movement type</small> |
| <a id="ACC000064"></a>`ACC000064` | 400 | **Bad Request**<br/>{product_type} {role_type} não encontrado para a person_key {person_key}<br/><small>No {product_type} {role_type} found for owner_person_key {person_key}</small> |
| <a id="ACC000065"></a>`ACC000065` | 400 | **Bad Request**<br/>Feedback do aprovador precisa ser booleano<br/><small>Approver feedback must be a boolean</small> |
| <a id="ACC000066"></a>`ACC000066` | 404 | **Not Found**<br/>Pedidos de movimentação não encontrados para as chaves informadas<br/><small>Movement requests not found for given keys</small> |
| <a id="ACC000067"></a>`ACC000067` | 409 | **Conflict**<br/>Um pedido de movimentação com status {movement_status} ja existe para a linha digitavel<br/><small>A movement request with status {movement_status} already exists for the informed digitable line</small> |
| <a id="ACC000068"></a>`ACC000068` | 403 | **Unauthorized**<br/>Apenas usuários master podem mudar a habilitação da conta para o webhook<br/><small>Only master users can change account webhook enablement</small> |
| <a id="ACC000069"></a>`ACC000069` | 400 | **Bad Request**<br/>Use POST /account/{account_key}/webhook_enabled |
| <a id="ACC000070"></a>`ACC000070` | 400 | **Bad Request**<br/>Use POST /monthly_account_fee |
| <a id="ACC000071"></a>`ACC000071` | 400 | **Bad Request**<br/>Use PATCH /monthly_account_fee/{account_key} |
| <a id="ACC000072"></a>`ACC000072` | 404 | **Not Found**<br/>Recibo de transação não encontrado para key {transaction_key}<br/><small>Transaction Receipt Not Found for key {transaction_key}</small> |
| <a id="ACC000073"></a>`ACC000073` | 400 | **Bad Request**<br/>Saldo remanescente mínimo não pode ser menor que 0<br/><small>Remaining balance must not be less than 0</small> |
| <a id="ACC000074"></a>`ACC000074` | 423 | **Locked**<br/>Pagamento de boleto igual ou acima de R${amount} está disponível entre {opening_time} e {closing_time}<br/><small>Bank slip payment greater than or equal to R${amount} is available from {opening_time} to {closing_time}</small> |
| <a id="ACC000075"></a>`ACC000075` | 403 | **Unauthorized**<br/>Usuário não tem permissão para requisitar essa transação<br/><small>User does not have permission to request this transaction</small> |
| <a id="ACC000076"></a>`ACC000076` | 400 | **Bad Request**<br/>Cron inválida para cadastro de transferência automática<br/><small>Invalid cron for automatic transfer</small> |
| <a id="ACC000077"></a>`ACC000077` | 400 | **Bad Request**<br/>Número da conta e da agência devem ser inteiros.<br/><small>Account number and branch must be integers.</small> |
| <a id="ACC000078"></a>`ACC000078` | 404 | **Not Found**<br/>Conta destino interna não encontrada<br/><small>Destination account internal not found</small> |
| <a id="ACC000079"></a>`ACC000079` | 403 | **Unauthorized**<br/>Usuário não tem permissão para aprovar ou rejeitar um pedido de transação<br/><small>User does not have permission to approve or reject this movement request</small> |
| <a id="ACC000080"></a>`ACC000080` | 403 | **Bad Request**<br/>Taxa de configuração não pode ser negativa<br/><small>Setup Fee can not be negative</small> |
| <a id="ACC000081"></a>`ACC000081` | 404 | **Not Found**<br/>Transação não encontrada<br/><small>Transaction Schedule not found</small> |
| <a id="ACC000082"></a>`ACC000082` | 423 | **Invalid Account**<br/>Contas fechadas não podem realizar esta ação. {account_key}<br/><small>Closed accounts can not perform this action {account_key}.</small> |
| <a id="ACC000083"></a>`ACC000083` | 400 | **Source Account not found**<br/>A conta de origem identificada no CNAB não foi encontrada. Conta de origem {account_number}<br/><small>The source account from CNAB was not found. Source Account number: {account_number}</small> |
| <a id="ACC000084"></a>`ACC000084` | 400 | **Payment date in the past**<br/>Foi encontrada uma transação que está com a data de pagamento no passado. {payment_date}<br/><small>It was found a transaction with payment date in the past. Payment date from transaction: {payment_date}</small> |
| <a id="ACC000085"></a>`ACC000085` | 400 | **Bad Request - CNAB ERROR**<br/>Arquivo vazio ou corrompido.<br/><small>Empty or corrupted file.</small> |
| <a id="ACC000085"></a>`ACC000085` | 400 | **Bad Request - CNAB ERROR**<br/>Versão de CNAB não suportada.<br/><small>CNAB version not supported yet.</small> |
| <a id="ACC000086"></a>`ACC000086` | 400 | **Bad Request - CNAB ERROR**<br/>Não foi possível identificar o tipo de arquivo CNAB enviado.<br/><small>Could not find the CNAB type.</small> |
| <a id="ACC000088"></a>`ACC000088` | 400 | **Bad Request - CNAB ERROR**<br/>Registro com tamanho incorreto.<br/><small>Registry line size incorrect.</small> |
| <a id="ACC000089"></a>`ACC000089` | 400 | **Bad Request - CNAB ERROR**<br/>Não foi possível determinar o código do banco operador detalhess: {details_br} cnab_filename: {cnab_filename} cnab_line: {cnab_line} cnab_inline_start_position: {cnab_inline_start_position} cnab_inline_end_position: {cnab_inline_end_position} cnab_inline_field: {cnab_inline_field} cnab_inline_field_type: {cnab_inline_field_type} cnab_inline_field_value: {cnab_inline_field_value}<br/><small>Could not determine Bank Code.</small> |
| <a id="ACC000090"></a>`ACC000090` | 400 | **Bad Request - CNAB ERROR**<br/>Não foi possível determinar a versão do CNAB.<br/><small>Could not determine CNAB version.</small> |
| <a id="ACC000091"></a>`ACC000091` | 400 | **Bad Request - CNAB ERROR**<br/>Não foi possível determinar o tipo do CNAB (Remessa / Retorno).<br/><small>Could not determine CNAB type (Remittance / Discharge).</small> |
| <a id="ACC000092"></a>`ACC000092` | 400 | **Bad Request - CNAB ERROR**<br/>Não foi possível ler o campo.<br/><small>Could not set the field.</small> |
| <a id="ACC000093"></a>`ACC000093` | 400 | **Bad Request - CNAB ERROR**<br/>Número máximo de dígitos excedido para o campo.<br/><small>Max field size exceeded.</small> |
| <a id="ACC000094"></a>`ACC000094` | 400 | **Bad Request - CNAB ERROR**<br/>Value type incorrect.<br/><small>Tipo de valor incorreto.</small> |
| <a id="ACC000095"></a>`ACC000095` | 400 | **Bad Request - CNAB ERROR**<br/>Número de casas decimais incorreto.<br/><small>Wrong number of decimal places.</small> |
| <a id="ACC000096"></a>`ACC000096` | 400 | **Bad Request - CNAB ERROR**<br/>Registro Header colocado na posição incorreta.<br/><small>Wrong header record position in file.</small> |
| <a id="ACC000097"></a>`ACC000097` | 400 | **Bad Request - CNAB ERROR**<br/>Sequência de registros incorreta no arquivo.<br/><small>Wrong cnab record sequence.</small> |
| <a id="ACC000098"></a>`ACC000098` | 400 | **Bad Request - CNAB ERROR**<br/>Tipo de registro não suportado.<br/><small>Record type not supported.</small> |
| <a id="ACC000099"></a>`ACC000099` | 400 | **Bad Request - CNAB ERROR**<br/>Não foi possível determinar o nome do banco.<br/><small>Could not determine bank name.</small> |
| <a id="ACC000100"></a>`ACC000100` | 400 | **Bad Request**<br/>Não foi possível ler o CNAB devido presença de caracteres especiais na linha {line} e posição {position} do arquivo.<br/><small>Unable to read CNAB file. Check file data for special characters at line {line} and position {position}</small> |
| <a id="ACC000101"></a>`ACC000101` | 422 | **Unprocessable Entity**<br/>O campo Identificação da Empresa Beneficiária {beneficiary_code} nas linhas de registro (posições 021 a 037) é diferente da identificação da empresa beneficiária {company_code} no cabeçalho (posições 027 a 046).<br/><small>The field Identification of the Beneficiary Institution {beneficiary_code} on the registration lines (positions 021 to 037) is different from the beneficiary company identification {company_code} in the header (positions 027 to 046).</small> |
| <a id="ACC000102"></a>`ACC000102` | 400 | **Invalid FileName**<br/>Nome de arquivo inválido ({cnab_filename}). Favor não utilizar caracteres especiais como '!,@,(,),$' .<br/><small>Invalid filename ({cnab_filename}). Please do not use specials characters like '!,@,(,),$' .</small> |
| <a id="ACC000103"></a>`ACC000103` | 404 | **Not Found**<br/>Não foi possível encontrar a instituicao financeira com o codigo bancario {code_number}<br/><small>Could not find financial institution with bank code: {code_number}</small> |
| <a id="ACC000104"></a>`ACC000104` | 400 | **Bad Request**<br/>Porcentagem total da divisão é maior que 100%<br/><small>Total Percentage Split is greater than 100%</small> |
| <a id="ACC000105"></a>`ACC000105` | 400 | **Bad Request**<br/>Erros nas transações em lote<br/><small>Errors in batch transactions</small> |
| <a id="ACC000106"></a>`ACC000106` | 403 | **Forbidden**<br/>Conta {account_key} está fechada e não pode realizar transação<br/><small>Account {account_key} is closed and cannot perform movement request</small> |
| <a id="ACC000107"></a>`ACC000107` | 400 | **Bad Request**<br/>Não foi informado a conta do webhook a ser alterado<br/><small>The account webhook to be changed was not informed</small> |
| <a id="ACC000108"></a>`ACC000108` | 404 | **Not Found**<br/>Nenhum resultado encontrado para a schedule_category informada<br/><small>No match for given schedule_category</small> |
| <a id="ACC000109"></a>`ACC000109` | 400 | **Bad Request**<br/>A data de agendamento escolhida não pode estar fora do intervalo de 60 dias futuros a partir de hoje.<br/><small>The chosen scheduled movement date cannot happen outside a limit of 60 days from now.</small> |
| <a id="ACC000110"></a>`ACC000110` | 400 | **Bad Request**<br/>Solicitar uma devolução agendada de PIX não é uma operação permitida.<br/><small>Requesting a scheduled chargeback is not an allowed operation.</small> |
| <a id="ACC000111"></a>`ACC000111` | 400 | **Bad Request**<br/>Campo {field} necessário para o pix<br/><small>Pix field {field} required</small> |
| <a id="ACC000112"></a>`ACC000112` | 404 | **Not Found**<br/>A automatic_transfer não foi encontrada com os parâmetros fornecidos<br/><small>An automatic_transfer not found for the given parameters</small> |
| <a id="ACC000113"></a>`ACC000113` | 400 | **Bad Request**<br/>Não é possível realizar uma operação com um valor de transação nulo.<br/><small>Unable to perform a transaction with a null transaction amount</small> |
| <a id="ACC000114"></a>`ACC000114` | 400 | **Bad Request**<br/>Não é possível realizar uma operação com um valor que tenha mais de duas casas decimais.<br/><small>Unable to perform a transaction with a transaction amount with more than 2 decimal places</small> |
| <a id="ACC000115"></a>`ACC000115` | 400 | **Bad Request**<br/>Impossível deletar a ultima permissão de uma pessoa.<br/><small>Unable to deactivate the last credential from a person.</small> |
| <a id="ACC000116"></a>`ACC000116` | 404 | **Not Found**<br/>Tipo de conta ted não encontrado para tipo: {type}.<br/><small>Ted account type not found for type: {type}.</small> |
| <a id="ACC000117"></a>`ACC000117` | 409 | **Conflict**<br/>Já existe um destino de conta com os mesmos dados.<br/><small>There's already an account destination with the same data.</small> |
| <a id="ACC000118"></a>`ACC000118` | 404 | **Not Found**<br/>Status da conta de destino não foi encontrado.<br/><small>Account destination status not found.</small> |
| <a id="ACC000119"></a>`ACC000119` | 400 | **Bad Request**<br/>O número do documento de destino da conta deve ser o mesmo do proprietário da conta.<br/><small>Account destination document number must be the same of the account owner.</small> |
| <a id="ACC000120"></a>`ACC000120` | 400 | **Bad Request**<br/>valor pré fixado é superior ao valor disponível.<br/><small>prefixed amount is greater than available amount.</small> |
| <a id="ACC000121"></a>`ACC000121` | 400 | **Bad Request**<br/>Formato da data está invalido. Este deve ser YYYY-mm-dd<br/><small>Date format is invalid.It must be YYYY-mm-dd</small> |
| <a id="ACC000122"></a>`ACC000122` | 400 | **Bad Request**<br/>Campo nome não pode ter mais de 50 caracteres<br/><small>Name field cannot be longer than 50 characters</small> |
| <a id="ACC000123"></a>`ACC000123` | 400 | **Bad Request**<br/>Saldo remanescente nao pode ser maior que 0.<br/><small>Account balance cannot be greater than 0.</small> |
| <a id="ACC000124"></a>`ACC000124` | 400 | **Bad Request**<br/>Não é possível realizar essa ação. Há transações futuras que não foram pagas.<br/><small>Can't perform this action. There'are few unpaid fees</small> |
| <a id="ACC000125"></a>`ACC000125` | 400 | **Bad Request**<br/>Não é possível realizar essa ação. Há taxas de boleto que não foram pagas.<br/><small>Can't perform this action. There'are few unpaid bankslip fees</small> |
| <a id="ACC000126"></a>`ACC000126` | 400 | **Bad Request**<br/>Ainda há boletos aceitos, registrados ou com aviso de pagamento<br/><small>There are accepted, registered or payment notice bank slips yet</small> |
| <a id="ACC000127"></a>`ACC000127` | 500 | **Bad Request**<br/>Falha ao criar termo de cancelamento de conta<br/><small>Failed to create account cancelling term</small> |
| <a id="ACC000128"></a>`ACC000128` | 400 | **Bad Request**<br/>Pix indisponível no momento. Por favor utilizar a TED.<br/><small>Pix unavailable in this moment. Please use TED.</small> |
| <a id="ACC000129"></a>`ACC000129` | 400 | **Bad Request**<br/>{type} não é um tipo válido de extrato.<br/><small>{type} is not a valid balance type.</small> |
| <a id="ACC000130"></a>`ACC000130` | 400 | **Bad Request**<br/>Contas de sistema não são habilitadas para executar essa transação.<br/><small>System Account is not allowed to do that transaction</small> |
| <a id="ACC000131"></a>`ACC000131` | 400 | **Bad Request**<br/>Transações de saída não podem possuir uma conta destino<br/><small>Outgoing transfer must not have a target account</small> |
| <a id="ACC000132"></a>`ACC000132` | 400 | **Bad Request**<br/>Transações de entrada não podem possuir uma conta origem<br/><small>Incoming transfer must not have a source account</small> |
| <a id="ACC000133"></a>`ACC000133` | 401 | **Unauthorized**<br/>Token inválido<br/><small>Invalid token</small> |
| <a id="ACC000134"></a>`ACC000134` | 401 | **Unauthorized**<br/>Token Expirado<br/><small>Expired token</small> |
| <a id="ACC000135"></a>`ACC000135` | 400 | **Bad Request**<br/>Contato nao existe<br/><small>Contact does not exist</small> |
| <a id="ACC000136"></a>`ACC000136` | 400 | **Bad Request**<br/>Agência ou número da conta de destino não podem ser 0.<br/><small>Target account branch or number must not be 0.</small> |
| <a id="ACC000137"></a>`ACC000137` | 400 | **Bad Request**<br/>Não há nenhum pedido de movimentação correspondente à payload enviada<br/><small>There is no pending movement correspondent to sent payload</small> |
| <a id="ACC000138"></a>`ACC000138` | 400 | **Bad Request**<br/>Movement request tem movement type nulo<br/><small>Movement request has null movement type</small> |
| <a id="ACC000139"></a>`ACC000139` | 400 | **Bad Request**<br/>Movement request possui movement status inválido: {old_movement_status}<br/><small>Movement request has invalid movement status: {old_movement_status}</small> |
| <a id="ACC000140"></a>`ACC000140` | 400 | **Bad Request**<br/>Não foi possível encontrar movement approval para o agente {selected_agent}<br/><small>Could not find movement approval for agent {selected_agent}</small> |
| <a id="ACC000141"></a>`ACC000141` | 400 | **Bad Request**<br/>Movement request já recebeu um feedback<br/><small>Movement request has already received feedback</small> |
| <a id="ACC000142"></a>`ACC000142` | 400 | **Bad Request**<br/>Sua conta não possui aprovador. Por favor, contate nosso suporte.<br/><small>Your account has no approver. Please, contact our support.</small> |
| <a id="ACC000143"></a>`ACC000143` | 404 | **Not Found**<br/>Investmento não foi encontrado.<br/><small>Investment not found</small> |
| <a id="ACC000144"></a>`ACC000144` | 400 | **Bad Request**<br/>Contas não possuem relacionamento de investimento adequado<br/><small>Accounts do not have proper investment relationship</small> |
| <a id="ACC000145"></a>`ACC000145` | 400 | **Not Found**<br/>Valor de procentagem de rendimento inválido.<br/><small>Invalid yield percentage amount</small> |
| <a id="ACC000146"></a>`ACC000146` | 422 | **Unprocessable Entity**<br/>Já existe uma configuração de investimento para esta conta<br/><small>Account investment configuration already exists for this account</small> |
| <a id="ACC000147"></a>`ACC000147` | 422 | **Unprocessable Entity**<br/>A conta não tem uma configuração de investimento associada.<br/><small>Account has not a existing investment configuration linked</small> |
| <a id="ACC000148"></a>`ACC000148` | 422 | **Unprocessable Entity**<br/>Não pode criar uma configuração de investimento em uma conta fechada<br/><small>Cannot setup a investment configuration to a closed account</small> |
| <a id="ACC000149"></a>`ACC000149` | 422 | **Unprocessable Entity**<br/>Houve um problema ao efetuar este saque. Por favor contate nosso suporte<br/><small>There was a problem performing this withdraw. Please contact our support</small> |
| <a id="ACC000150"></a>`ACC000150` | 400 | **Bad Request**<br/>Envio de mensagens internacionais não permitido<br/><small>International messaging not allowed</small> |
| <a id="ACC000151"></a>`ACC000151` | 400 | **Bad Request**<br/>Operação não identificada<br/><small>Operation not identified</small> |
| <a id="ACC000152"></a>`ACC000152` | 400 | **Bad Request**<br/>Forma de contato por {contact_type} não permitida<br/><small>Contact type {contact_type} not allowed</small> |
| <a id="ACC000153"></a>`ACC000153` | 400 | **Bad Request**<br/>Número de celular incorreto ou incompleto<br/><small>Incorrect or incomplete mobile number</small> |
| <a id="ACC000154"></a>`ACC000154` | 404 | **Not Found**<br/>Professional Data não encontrada<br/><small>Professional Data not found</small> |
| <a id="ACC000155"></a>`ACC000155` | 400 | **Bad Request**<br/>Transação {source_subtype} não pode ser realizada com as contas informadas<br/><small>Transaction {source_subtype} cannot be performed with given accounts</small> |
| <a id="ACC000156"></a>`ACC000156` | 400 | **Bad Request**<br/>Valor de transação não deve ser zero<br/><small>Transaction amount cannot be zero</small> |
| <a id="ACC000157"></a>`ACC000157` | 404 | **Not Found**<br/>Configuração de Investimento não encontrada<br/><small>Investment Configuration not found</small> |
| <a id="ACC000158"></a>`ACC000158` | 400 | **Bad Request**<br/>Somatório de investimentos insuficiente para realizar a transação<br/><small>Investment available amount not enough to perform withdraw</small> |
| <a id="ACC000159"></a>`ACC000159` | 400 | **Bad Request**<br/>Tipo de Movimentação de investimento inválida<br/><small>Invalid Investment Movement type</small> |
| <a id="ACC000160"></a>`ACC000160` | 400 | **Bad Request**<br/>Número de conta {account_number} já em uso<br/><small>Account number {account_number} already in use</small> |
| <a id="ACC000161"></a>`ACC000161` | 400 | **Bad Request**<br/>Depósito de investimento requerido maior que permitido<br/><small>Required investment deposit amount greater than allowed</small> |
| <a id="ACC000162"></a>`ACC000162` | 400 | **Conflict**<br/>Update de investment_available_balance não atendeu às espectativas. Esperado: {expected}. Calculado: {calculated}<br/><small>Update of investment_available_balance did not meet expectations. Expected: {expected}. Calculated: {calculated}</small> |
| <a id="ACC000163"></a>`ACC000163` | 400 | **Conflict**<br/>Valor {value} não permitido para atributo {attribute} no objeto {object_name}<br/><small>Value {value} not allowed for attribute {attribute} in object {object_name}</small> |
| <a id="ACC000164"></a>`ACC000164` | 400 | **Bad Request**<br/>Intervalo de datas (date_from and date_to) deve ser fornecido para geração de extrato<br/><small>Date interval (date_from and date_to) must be provided to generate statement</small> |
| <a id="ACC000165"></a>`ACC000165` | 400 | **Bad Request**<br/>Intervalo de datas maior que o permitido de {maximum_days}<br/><small>Date interval greater than allowed of {maximum_days}</small> |
| <a id="ACC000166"></a>`ACC000166` | 400 | **Bad Request**<br/>Person_key deve ser fornecida<br/><small>Person_key must be provided</small> |
| <a id="ACC000167"></a>`ACC000167` | 400 | **Conflict**<br/>Discrepância detectada em available yield transfer<br/><small>Discrepancy detected on available yield transfer</small> |
| <a id="ACC000168"></a>`ACC000168` | 400 | **Bad Request**<br/>O agent document number enviado não esta vinculado a empresa titular da conta para aprovar esta solicitação.<br/><small>The agent document number is not linked to the company that owns the account to approve this request.</small> |
| <a id="ACC000169"></a>`ACC000169` | 400 | **Bad Request**<br/>Transações externas não podem ser revertidas<br/><small>External transactions cannot be reversed</small> |
| <a id="ACC000170"></a>`ACC000170` | 400 | **Bad Request**<br/>Reversão de transação já realizada<br/><small>Reversal transaction already made</small> |
| <a id="ACC000171"></a>`ACC000171` | 400 | **Bad Request**<br/>Subtipo não pode ter transação revertida<br/><small>Subtype is not allowed to have transaction reversed</small> |
| <a id="ACC000172"></a>`ACC000172` | 400 | **Bad Request**<br/>Balanço de conta deve ter no máximo 2 casas decimais<br/><small>Account balance must have a maximum of 2 decimal places</small> |
| <a id="ACC000173"></a>`ACC000173` | 400 | **Bad Request**<br/>Balanço de conta da transação deve ser igual ao balanço de conta<br/><small>Transaction account balance must be equal to account balance</small> |
| <a id="ACC000174"></a>`ACC000174` | 400 | **Bad Request**<br/>Contas de sistema devem ser requeridas e propeietárias da QITECH<br/><small>System accounts must be owned and requested by QITECH</small> |
| <a id="ACC000175"></a>`ACC000175` | 400 | **Bad Request**<br/>Status da conta {account_status} não permitido<br/><small>Account status {account_status} not allowed</small> |
| <a id="ACC000176"></a>`ACC000176` | 400 | **Transaction limit exceeded**<br/>As transações nesse intervalo de data excedem o limite, tente novamente com um intervalo de data menor!<br/><small>The transactions within this date range exceeds the limit, please try again with a smaller date range!</small> |
| <a id="ACC000177"></a>`ACC000177` | 400 | **Bad Request**<br/>Intervalo de datas deve ser fornecido!<br/><small>The date range must be provided!</small> |
| <a id="ACC000178"></a>`ACC000178` | 400 | **Bad Request**<br/>Person_key e account_key deve ser fornecida<br/><small>Person_key and account_key must be provided</small> |
| <a id="ACC000179"></a>`ACC000179` | 429 | **Conflict**<br/>A request_control_jey {request_control_key} já existe<br/><small>The request_control_key {request_control_key} already exists</small> |
| <a id="ACC000180"></a>`ACC000180` | 400 | **Bad Request**<br/>O owner_trading_name só pode ser utilizado por uma pessoa jurídica<br/><small>The owner_trading_name can only be sent by a legal person type</small> |
| <a id="ACC000181"></a>`ACC000181` | 404 | **Not found**<br/>Alias {alias_key} não encontrado<br/><small>Alias {alias_key} not found</small> |
| <a id="ACC000182"></a>`ACC000182` | 404 | **Alias Key Not found**<br/>A alias_key {alias_key} não foi encontrada<br/><small>The alias_key {alias_key} was not Found</small> |
| <a id="ACC000183"></a>`ACC000183` | 400 | **Wrong Pagination Query Parameter Set**<br/>Se o page_number foi informado, o page_size deve ser informado tambem<br/><small>If page_number was informed, the page_size should also be informed</small> |
| <a id="ACC000184"></a>`ACC000184` | 400 | **Wrong Datetime**<br/>A datetime contida na string {datetime_string} não está em formato datetime-Zulu<br/><small>The datetime contined in the string {datetime_string} is not in datetime-Zulu format</small> |
| <a id="ACC000185"></a>`ACC000185` | 403 | **Invalid Owner Person Key**<br/>A account_key informada {account_key} não tem permissão de acessar esse recurso, pois a SELECTED-AGENT key não é a mesma da account informada<br/><small>The informed account_key {account_key} is not allowed to access this resource, because the SELECTED-AGENT key is not the same from the informed account</small> |
| <a id="ACC000186"></a>`ACC000186` | 404 | **Request Control Key Not found**<br/>A request_control_key informada {request_control_key} não possui entrada original associada<br/><small>The informed request_control_key {request_control_key} has no original registered entry associated</small> |
| <a id="ACC000187"></a>`ACC000187` | 403 | **Forbidden Selected-Agent**<br/>O SELECTED-AGENT informado {selected_agent_key} não tem permissão de acessar esse recurso<br/><small>The informed SELECTED-AGENT {selected_agent_key} is not allowed to access this resource</small> |
| <a id="ACC000188"></a>`ACC000188` | 400 | **Invalid Indirect Participant Key**<br/>a Indirect Participant Key é invalida<br/><small>The informed Indirect Participant Key is invalid</small> |
| <a id="ACC000189"></a>`ACC000189` | 400 | **Missing Query Parameters**<br/>Os paramentros necessarios para a query não estão presentes<br/><small>The necessery parameters for the query are not present</small> |
| <a id="ACC000190"></a>`ACC000190` | 404 | **Account Key not Found**<br/>A Account Key relacionada com os parametros apresentados não foi encontrada<br/><small>The Account key related with the presented parameters was not found</small> |
| <a id="ACC000191"></a>`ACC000191` | 422 | **Repeated Request Informations**<br/>A mesma combinação de account_number, account_branch e ispb ja foi previamente registrado em outra requisição de criação de Alias<br/><small>The same combination of account_number, account_branch and ispb was already previusly done in another Alias creation requisition</small> |
| <a id="ACC000192"></a>`ACC000192` | 400 | **Bad Request**<br/>Conta com configuração de rebate de floating ativo!<br/><small>Account with floating rebate configuration!</small> |
| <a id="ACC000193"></a>`ACC000193` | 400 | **Bad Request**<br/>Problema durante a verificação de configuração de rebate de floating!<br/><small>There was a problem performing verification in floating rebate configuration</small> |
| <a id="ACC000194"></a>`ACC000194` | 400 | **Bad Request**<br/>Número de documento {document_number} não é válido<br/><small>Document number {document_number} is not valid</small> |
| <a id="ACC000195"></a>`ACC000195` | 400 | **Bad Request**<br/>Número de documento {document_number} não corresponde ao tipo de pessoa {person_type}<br/><small>Document number {document_number} sent does not match the person_type {person_type}</small> |
| <a id="ACC000196"></a>`ACC000196` | 400 | **Bad Request**<br/>A conta está vinculada ao DDA.<br/><small>The account is bonded in DDA.</small> |
| <a id="ACC000197"></a>`ACC000197` | 400 | **Bad Request**<br/>Selected user agent deve ser fornecido.<br/><small>Selected user agent must be provided.</small> |
| <a id="ACC000198"></a>`ACC000198` | 400 | **Bad Request**<br/>Não é possível mudar o contato utilizando o contact type {contact_type}<br/><small>Unable to change {contact_info} using contact type {contact_type}</small> |
| <a id="ACC000199"></a>`ACC000199` | 400 | **Bad Request**<br/>Dados de configuração de cobrança não pode ser nula<br/><small>Billing configuration data can not be None</small> |
| <a id="ACC000200"></a>`ACC000200` | 400 | **Invalid reference year**<br/>Ano de referência inválido.<br/><small>Invalid reference year.</small> |
| <a id="ACC000201"></a>`ACC000201` | 403 | **Invalid Destination**<br/>Conta alvo não é um destino válido<br/><small>Target account is not a valid Destination</small> |
| <a id="ACC000202"></a>`ACC000202` | 400 | **Invalid permission**<br/>Requisitante enviado não possui permissão na conta<br/><small>Given requester has no permission to the account</small> |
| <a id="ACC000203"></a>`ACC000203` | 400 | **Invalid permission**<br/>Aprovador enviado não possui permissão na conta<br/><small>Given approver has no permission to the account</small> |
| <a id="ACC000204"></a>`ACC000204` | 400 | **Mandatory parameters missing**<br/>Parâmetros de query requester_person_key e approver_person_key são obrigatórios<br/><small>Query parameters requester_person_key and approver_person_key must be sent</small> |
| <a id="ACC000205"></a>`ACC000205` | 400 | **Conflicting parameters**<br/>Envie apenas um document_number ou uma person_key<br/><small>Send only a document_number or a person_key</small> |
| <a id="ACC000206"></a>`ACC000206` | 400 | **Bad Request**<br/>Conta de pessoa física não possui usuários autorizados.<br/><small>Natural person account does not have allowed users.</small> |
| <a id="ACC000207"></a>`ACC000207` | 400 | **Bad Request**<br/>Valor da transação deve ser maior que 0.<br/><small>Transaction amount must be greater than 0.</small> |
| <a id="ACC000208"></a>`ACC000208` | 404 | **Account not found**<br/>Conta não encontrada.<br/><small>Account not found.</small> |
| <a id="ACC000209"></a>`ACC000209` | 405 | **Method not allowed**<br/>Você não tem permissão para este método.<br/><small>you are not allowed to call this method.</small> |
| <a id="ACC000210"></a>`ACC000210` | 403 | **Forbidden**<br/>Método não peermitido para contas escrow.<br/><small>Escrow account are not allowed to call this method.</small> |
| <a id="ACC000211"></a>`ACC000211` | 409 | **Conflict**<br/>Entrada duplicada para request control key {request_control_key}.<br/><small>Duplicated request control key {request_control_key}.</small> |
| <a id="ACC000212"></a>`ACC000212` | 400 | **Bad Request**<br/>Documento do agente deve ser fornecido.<br/><small>Agent document number must be provided.</small> |
| <a id="ACC000213"></a>`ACC000213` | 400 | **Bad Request**<br/>UUID no formato inválido.<br/><small>Invalid uuid format.</small> |
| <a id="ACC000214"></a>`ACC000214` | 400 | **Bad Request**<br/>Tamanho da página inválido.<br/><small>Invalid page size.</small> |
| <a id="ACC000215"></a>`ACC000215` | 400 | **Bad Request**<br/>Formato inválido para campo. Deve ser uma string compostas por apenas digitos<br/><small>Invalid format for field. It must be a string comprised of only digits</small> |
| <a id="ACC000216"></a>`ACC000216` | 400 | **Bad Request**<br/>Agendamentos de pix em aberto detectados para esta conta<br/><small>Open Pix Schedules for this account detected</small> |
| <a id="ACC000217"></a>`ACC000217` | 400 | **Bad Request**<br/>Não é possível realizar transação de ponta a ponta com mesma origem e destino<br/><small>Can't perform peer to peer with the same target and source account</small> |
| <a id="ACC000218"></a>`ACC000218` | 400 | **Automatic Transfer External Transaction Error**<br/>Um erro ocorreu durante tentativa de realizar transferência automática<br/><small>An error occurred while performing automatic transfer transaction</small> |
| <a id="ACC000219"></a>`ACC000219` | 403 | **Requester not allowed to perform this action**<br/>Requester não autorizado a criar conta destino<br/><small>Requester not allowed to create destination</small> |
| <a id="ACC000220"></a>`ACC000220` | 400 | **Max attempts for automatic transfer reached**<br/>Número máximo de tentativas falhas de transferências atingida<br/><small>Maximum number of failed attempts for automatic transfer reached</small> |
| <a id="ACC000221"></a>`ACC000221` | 404 | **Not Found**<br/>Filial da instituição financeira não encontrada<br/><small>Financial institution branch not found</small> |
| <a id="ACC000222"></a>`ACC000222` | 400 | **Bad Request**<br/>Transferência automática para a mesma conta que de origem.<br/><small>Automatic transfer to the same account as source</small> |
| <a id="ACC000223"></a>`ACC000223` | 409 | **Conflict**<br/>Conta com número {account_number} já existe<br/><small>Account with number {account_number} already exists</small> |
| <a id="ACC000224"></a>`ACC000224` | 400 | **Bad Request**<br/>Contas de origem e destino devem ser diferentes<br/><small>Source and target accounts must be different</small> |

### ACR — Abertura de Conta

47 erros

| Código | HTTP | Mensagem |
|-|-|-|
| <a id="ACR000001"></a>`ACR000001` | 404 | **Account Request Not Found**<br/>Solicitação de conta não encontrada para os parâmetros dados.<br/><small>Account Request not found for the given parameters</small> |
| <a id="ACR000002"></a>`ACR000002` | 404 | **Account Request Not Found**<br/>Solicitação de conta não encontrada para a seguinte chave {account_request_key}.<br/><small>Account Request not found for the given key {account_request_key}.</small> |
| <a id="ACR000003"></a>`ACR000003` | 404 | **Proposal Not Found**<br/>Proposta não encontrada.<br/><small>Proposal not found.</small> |
| <a id="ACR000004"></a>`ACR000004` | 400 | **Bad Request**<br/>Esta conta não tem credenciais válidas para esta proposta.<br/><small>This account don't have valid credentials to this proposal.</small> |
| <a id="ACR000005"></a>`ACR000005` | 400 | **Bad Request**<br/>Use PUT account_request/{account_request_key} |
| <a id="ACR000006"></a>`ACR000006` | 400 | **Account Request Error**<br/>Pedido de conta não está pendente de aprovação master<br/><small>Account Request is not pending master approval</small> |
| <a id="ACR000007"></a>`ACR000007` | 400 | **Bad Request**<br/>Use PATCH /account/{account_key} |
| <a id="ACR000008"></a>`ACR000008` | 403 | **Unauthorized Agent**<br/>Este agente não pode realizar esta ação<br/><small>This agent can not perform this action</small> |
| <a id="ACR000009"></a>`ACR000009` | 400 | **Bad Request**<br/>Requester key necessária!<br/><small>Requester key needed!</small> |
| <a id="ACR000010"></a>`ACR000010` | 400 | **Bad Request**<br/>Related Party Owner necessário!<br/><small>Related Party Owner needed!</small> |
| <a id="ACR000011"></a>`ACR000011` | 400 | **Proposal Error**<br/>Proposta não está pendente de aprovação do administrador!<br/><small>Proposal Isn't Pending Administrator Approval!</small> |
| <a id="ACR000012"></a>`ACR000012` | 400 | **Proposal Update Error**<br/>Erro no update<br/><small>Update Error</small> |
| <a id="ACR000013"></a>`ACR000013` | 400 | **Bad Request**<br/>Ação inválida!<br/><small>Invalid Action!</small> |
| <a id="ACR000014"></a>`ACR000014` | 400 | **Bad Request**<br/>Necessário uma razão para a rejeição!<br/><small>Rejection Reason Needed!</small> |
| <a id="ACR000015"></a>`ACR000015` | 400 | **Fee Error**<br/>O valor de Fee não pode ser negativo!<br/><small>Fee value can not be negative!</small> |
| <a id="ACR000016"></a>`ACR000016` | 400 | **Fee Error**<br/>O valor de taxa fixa de TED não pode ser negativo!<br/><small>Ted fixed amount fee value can not be negative!</small> |
| <a id="ACR000017"></a>`ACR000017` | 400 | **Fee Error**<br/>O valor de taxa percentual de TED não pode ser negativo!<br/><small>Ted percentage fee value can not be negative!</small> |
| <a id="ACR000018"></a>`ACR000018` | 400 | **Proposal Error**<br/>A proposta não está com assinatura do documento pendente!<br/><small>Proposal Isn't Pending Document Signature!</small> |
| <a id="ACR000019"></a>`ACR000019` | 400 | **Proposal Error**<br/>A proposta não está com contrato de usuário pendente!<br/><small>Proposal Isn't Pending User Agreement!</small> |
| <a id="ACR000020"></a>`ACR000020` | 400 | **Proposal Error**<br/>Status de proposta inválido!<br/><small>Invalid Proposal Status!</small> |
| <a id="ACR000021"></a>`ACR000021` | 400 | **Bad Request**<br/>A regra de transferência automática não segue o modelo de regra: {message}<br/><small>Automatic transfer rule does not follow rule template: {message}</small> |
| <a id="ACR000022"></a>`ACR000022` | 422 | **Unprocessable Entity**<br/>Solicitante da proposta possui configuração incompleta no sistema de faturamento<br/><small>Proposal requester has incomplete configuration in billing system</small> |
| <a id="ACR000023"></a>`ACR000023` | 400 | **Bad Request**<br/>Documento inválido {document_number} para {name}.<br/><small>Invalid Document Number {document_number} for {name}.</small> |
| <a id="ACR000024"></a>`ACR000024` | 400 | **Bad Request**<br/>Use POST account_request/{account_request_key}/generate_document |
| <a id="ACR000025"></a>`ACR000025` | 400 | **Bad Request**<br/>O status da proposta deve estar pendente para ser atualizado.<br/><small>Proposal status must be pending to get updated.</small> |
| <a id="ACR000026"></a>`ACR000026` | 400 | **Bad Request**<br/>Não foi possível criar um destino devido a um código de instituição inexistent: {codes_list}<br/><small>Could not create destination due inexistent financial code numbers: {codes_list}</small> |
| <a id="ACR000027"></a>`ACR000027` | 404 | **Not Found**<br/>Email do solicitante não foi encontrado.<br/><small>Requester email not found.</small> |
| <a id="ACR000028"></a>`ACR000028` | 400 | **Bad Request**<br/>Motivo da transferência é obrigatório para cadastrar tarifas para operações de boleto.<br/><small>An operation reason is required to register fees for bankslip products</small> |
| <a id="ACR000029"></a>`ACR000029` | 400 | **Bad Request**<br/>Um valor para o pacote de operações PIX que não serão cobradas tarifas é obrigatório.<br/><small>A package value of PIX operations to not be charged fees is required</small> |
| <a id="ACR000030"></a>`ACR000030` | 400 | **Bad Request**<br/>Não é possível processar uma configuração de tarifa repetida no payload<br/><small>Unable to process a repeated fee_configuration in the payload</small> |
| <a id="ACR000031"></a>`ACR000031` | 400 | **Bad Request**<br/>Tipo de conta não é escrow.<br/><small>Account type is not escrow.</small> |
| <a id="ACR000032"></a>`ACR000032` | 400 | **Bad Request**<br/>Proposal {proposal_key} Tipo de conta não é checking.<br/><small>Proposal {proposal_key} Account type is not checking.</small> |
| <a id="ACR000033"></a>`ACR000033` | 400 | **Bad Request**<br/>O nome {name} contém caractéres inválidos. Aceitos apenas caractéres alfanuméricos e os simbolos: . / & - ’<br/><small>Name {name} has invalid characters.</small> |
| <a id="ACR000034"></a>`ACR000034` | 400 | **Bad Request**<br/>Não é permitido alterar as configurações de cobrança de tarifas desta conta.<br/><small>It is not allowed to change account default billing configuration data.</small> |
| <a id="ACR000035"></a>`ACR000035` | 400 | **Bad Request**<br/>O valor da tarifa mensal de manutenção de conta não pode ser negativo!<br/><small>Account maintenance monthly fee value cannot be negative!</small> |
| <a id="ACR000036"></a>`ACR000036` | 400 | **Bad Request**<br/>É necessária ao menos uma configuração de tarifa mensal de conta nos dados de 'billing_configuration_data' no payload<br/><small>At least '1' fee configuration is required for account_maintenance billing configuration data in the payload</small> |
| <a id="ACR000037"></a>`ACR000037` | 400 | **Bad Request**<br/>'billing_account_key' não pode ser nula<br/><small>'billing_account_key' cannot be null</small> |
| <a id="ACR000038"></a>`ACR000038` | 400 | **Bad Request**<br/>Proposta com status de operação pendente de emissão não pode ser assinada<br/><small>Proposal with status pending operation issue cannot be signed</small> |
| <a id="ACR000039"></a>`ACR000039` | 400 | **Bad Request**<br/>Email É obrigatorio para configurações de tarifas pagas via boleto<br/><small>Email is required for billing configurations paid via bank-slip</small> |
| <a id="ACR000040"></a>`ACR000040` | 403 | **Forbidden**<br/>Este usuário não tem permissão para requisitar conta<br/><small>This user does not have permission to request account</small> |
| <a id="ACR000041"></a>`ACR000041` | 404 | **Account request not found**<br/>Requisição de abertura de conta não encontrada para {account_request_key}<br/><small>Account request not found for {account_request_key}</small> |
| <a id="ACR000042"></a>`ACR000042` | 400 | **Account request in wrong status**<br/>Requisição de abertura de conta com status inválido para conclusão<br/><small>Account request in wrong status for conclusion</small> |
| <a id="ACR000043"></a>`ACR000043` | 400 | **Account request is pending kyc analysis**<br/>Requisição de abertura de conta pendente de análise KYC<br/><small>Account request is pending kyc analysis</small> |
| <a id="ACR000044"></a>`ACR000044` | 400 | **Conflictingly ispb and code number**<br/>ISPB e financial_institution_code conflitantes<br/><small>Conflictingly ISPB and financial_institution_code</small> |
| <a id="ACR000045"></a>`ACR000045` | 404 | **ISPB not found**<br/>ISPB não encontrado<br/><small>ISB not found</small> |
| <a id="ACR000046"></a>`ACR000046` | 404 | **Account Not Found**<br/>Conta não encontrada.<br/><small>Account not found.</small> |
| <a id="ACR000047"></a>`ACR000047` | 403 | **Forbidden**<br/>Agente não é solicitante da conta.<br/><small>Person is not requester of this account.</small> |

### BLP — Boletos

191 erros

| Código | HTTP | Mensagem |
|-|-|-|
| <a id="BLP000001"></a>`BLP000001` | 400 | **Bad Request**<br/>Instituição registradora inválida {registration_institution_enumerator}<br/><small>Invalid Registration Institution {registration_institution_enumerator}</small> |
| <a id="BLP000002"></a>`BLP000002` | 404 | **Not Found**<br/>Não é possível gerar arquivo vazio<br/><small>Cannot generate empty file</small> |
| <a id="BLP000003"></a>`BLP000003` | 400 | **Bad Request**<br/>Use POST /cnab/{action_type} |
| <a id="BLP000004"></a>`BLP000004` | 404 | **Not Found**<br/>Boleto não encontrado.<br/><small>Bank Slip not found.</small> |
| <a id="BLP000005"></a>`BLP000005` | 400 | **Bad Request**<br/>Use GET /bank_slip/{bank_slip_key} ou /bank_slip/person/{person_key}<br/><small>Use GET /bank_slip/{bank_slip_key} or /bank_slip/person/{person_key}</small> |
| <a id="BLP000006"></a>`BLP000006` | 400 | **Bad Request**<br/>A request precisa de um dos seguintes parâmetros:  requester_profile_code, beneficiary_key<br/><small>Request needs one of the following parameters: requester_profile_code, beneficiary_key</small> |
| <a id="BLP000007"></a>`BLP000007` | 400 | **Bad Request**<br/>Parâmetro obrigatório ausente: content_type<br/><small>Missing mandatory parameter: content_type</small> |
| <a id="BLP000008"></a>`BLP000008` | 400 | **Bad Request**<br/>content_type inválido, tente um dos seguintes: {valid_content_types}<br/><small>Invalid content_type, try one of: {valid_content_types}</small> |
| <a id="BLP000009"></a>`BLP000009` | 400 | **Bad Request**<br/>Despesa já paga<br/><small>Expense already paid</small> |
| <a id="BLP000010"></a>`BLP000010` | 400 | **Bad Request**<br/>Defina a despesa para liquidar<br/><small>Please set the expense to settle</small> |
| <a id="BLP000011"></a>`BLP000011` | 400 | **Bad Request**<br/>Parâmetro obrigatório ausente: beneficiary_key<br/><small>Missing mandatory parameter: beneficiary_key</small> |
| <a id="BLP000012"></a>`BLP000012` | 400 | **Bad Request**<br/>Parâmetro obrigatório ausente: digitable_line<br/><small>Missing mandatory parameter: digitable_line</small> |
| <a id="BLP000013"></a>`BLP000013` | 400 | **Bad Request**<br/>Defina subject_account_key para liquidar<br/><small>Please set the subject_account_key to settle</small> |
| <a id="BLP000014"></a>`BLP000014` | 400 | **Bad Request**<br/>Já existe um boleto com o status {status_br}.<br/><small>Impossible to schedule or execute payment: entry already exists in database with {existing_payment_status} status.</small> |
| <a id="BLP000015"></a>`BLP000015` | 400 | **Bad Request**<br/>Impossível agendar pagamento após data de vencimento.<br/><small>Impossible to schedule payment after expiration date.</small> |
| <a id="BLP000016"></a>`BLP000016` | 400 | **Bad Request**<br/>Impossível executar o pagamento para o período desejado.<br/><small>Impossible to execute payment after valid time frame.</small> |
| <a id="BLP000017"></a>`BLP000017` | 400 | **Bad Request**<br/>Impossível executar ou agendar pagamentos com um valor total superior a 249.999,99<br/><small>Impossible to execute or schedule payments with a total amount greater than 249,999.99</small> |
| <a id="BLP000018"></a>`BLP000018` | 400 | **Bad Request**<br/>Cálculo de pagamento inválido! Modelo de cálculo: {calculation_model}; Data do cálculo: {calculation_date}<br/><small>Invalid payment calculation! Calculation model: {calculation_model}; Calculation date: {calculation_date}</small> |
| <a id="BLP000019"></a>`BLP000019` | 404 | **Not Found**<br/>Pagamento não encontrada para a chave {payment_key}.<br/><small>Payment entry not found for key {payment_key}.</small> |
| <a id="BLP000020"></a>`BLP000020` | 400 | **Bad Request**<br/>Impossível executar o pagamento para a chave de pagamento {payment_key}. Seu status é diferente de 'agendado'.<br/><small>Impossible to execute payment for payment_key {payment_key}. Payment status is not 'scheduled'.</small> |
| <a id="BLP000021"></a>`BLP000021` | 400 | **Bad Request**<br/>Pagamento inválido: a data agendada do pagamento {payment_key} não é hoje.<br/><small>Invalid payment: scheduled payment date is not today for key {payment_key}.</small> |
| <a id="BLP000022"></a>`BLP000022` | 400 | **Bad Request**<br/>A data do pagamento deve ser a partir de hoje.<br/><small>Payment date has to be from today onwards.</small> |
| <a id="BLP000023"></a>`BLP000023` | 400 | **Bad Request**<br/>A data do pagamento deve ser um dia útil.<br/><small>Payment date has to be a workday.</small> |
| <a id="BLP000024"></a>`BLP000024` | 423 | **Locked**<br/>Operação encerrada. Sistema disponível de {opening_time} a {closing_time}<br/><small>Operation window closed. System available from {opening_time} to {closing_time}</small> |
| <a id="BLP000025"></a>`BLP000025` | 400 | **Bad Request**<br/>Parâmetro obrigatório ausente: {param}<br/><small>Missing mandatory parameter: {param}</small> |
| <a id="BLP000026"></a>`BLP000026` | 400 | **Bad Request**<br/>Só é possível procurar pagamentos agendados com o seguinte status: {valid_payment_status_set}.<br/><small>It's only possible to search for scheduled payments with the following status: {valid_payment_status_set}.</small> |
| <a id="BLP000027"></a>`BLP000027` | 400 | **Bad Request**<br/>Só é possível alterar o pagamento agendado para o seguinte status: {valid_payment_status_set}.<br/><small>It's only possible to change scheduled payment to the following status: {valid_payment_status_set}.</small> |
| <a id="BLP000028"></a>`BLP000028` | 400 | **Bad Request**<br/>O pagamento não está agendado. Status atual do pagamento: {current_payment_status}.<br/><small>Payment is not scheduled. Current payment status: {current_payment_status}.</small> |
| <a id="BLP000029"></a>`BLP000029` | 400 | **Bad Request**<br/>Use GET /bank_slip/{bank_slip_key}/2-way |
| <a id="BLP000030"></a>`BLP000030` | 404 | **Not Found**<br/>Conta do beneficiário do boleto não encontrada.<br/><small>Bank Slip beneficiary account not found.</small> |
| <a id="BLP000031"></a>`BLP000031` | 404 | **Not Found**<br/>Beneficiário do boleto não encontrado.<br/><small>Bank Slip beneficiary not found.</small> |
| <a id="BLP000032"></a>`BLP000032` | 400 | **Bad Request**<br/>Este acordo já foi pago<br/><small>This settlement is already paid</small> |
| <a id="BLP000033"></a>`BLP000033` | 400 | **Bad Request**<br/>Use POST /cnab/{action_type} |
| <a id="BLP000034"></a>`BLP000034` | 400 | **Bad Request**<br/>Tipo CNAB inválido<br/><small>Invalid CNAB Type</small> |
| <a id="BLP000035"></a>`BLP000035` | 400 | **Bad Request**<br/>Use GET /cnab_file/{person_key}/{cnab_type} |
| <a id="BLP000036"></a>`BLP000036` | 404 | **Not Found**<br/>Não há um arquivo CNAB para a cnab_key especificada.<br/><small>There is no CNAB File with the specified cnab_key.</small> |
| <a id="BLP000037"></a>`BLP000037` | 400 | **Bad Request**<br/>Código da carteira necessário<br/><small>Requester Profile Code Needed</small> |
| <a id="BLP000038"></a>`BLP000038` | 404 | **Not Found**<br/>Carteira não encontrada para o código da carteira fornecido<br/><small>Requester Profile not found for the given requester profile code</small> |
| <a id="BLP000039"></a>`BLP000039` | 404 | **Not Found**<br/>Ocorrências para envio não encontradas<br/><small>Occurrences for submission not found</small> |
| <a id="BLP000040"></a>`BLP000040` | 404 | **Not Found**<br/>Ocorrências para envio não encontradas para a chave fornecida<br/><small>No Occurrence found for the given key.</small> |
| <a id="BLP000041"></a>`BLP000041` | 400 | **Bad Request**<br/>Use GET /cnab_temporary/{remittance_key} |
| <a id="BLP000042"></a>`BLP000042` | 400 | **Bad Request**<br/>Tipo de ação não permitido, use editar ou enviar<br/><small>Action Type not allowed, use edit or submit</small> |
| <a id="BLP000043"></a>`BLP000043` | 400 | **Bad Request**<br/>Use PATCH /cnab_temporary/{remittance_key}/{action_type} |
| <a id="BLP000044"></a>`BLP000044` | 423 | **Locked**<br/>A geração de retorno não pode ser realizada nos feriados<br/><small>Discharge generation can not be performed on holidays</small> |
| <a id="BLP000045"></a>`BLP000045` | 423 | **Locked**<br/>Geração de retorno não está pronta para continuar<br/><small>Discharge generation not ready to continue</small> |
| <a id="BLP000046"></a>`BLP000046` | 400 | **Bad Request**<br/>Use PUT /expense_configuration/{beneficiary_account_key} |
| <a id="BLP000047"></a>`BLP000047` | 400 | **Bad Request**<br/>Nenhuma company_key encontrada<br/><small>No company_key found</small> |
| <a id="BLP000048"></a>`BLP000048` | 400 | **Bad Request**<br/>O campo selected-agent do cabeçalho é necessário.<br/><small>Header selected-agent is needed.</small> |
| <a id="BLP000049"></a>`BLP000049` | 400 | **Bad Request**<br/>O campo selected-agent do cabeçalho é necessário.<br/><small>Header selected-agent is needed.</small> |
| <a id="BLP000050"></a>`BLP000050` | 400 | **Bad Request**<br/>Registro encontrado sem o nosso número<br/><small>Found record without our_number</small> |
| <a id="BLP000051"></a>`BLP000051` | 400 | **Bad Request**<br/>O remetente não pode ser uma instituição de registro no caso de arquivos REM.<br/><small>Remitter can't be a registration institution in case of REM files.</small> |
| <a id="BLP000052"></a>`BLP000052` | 404 | **Not Found**<br/>Boleto para pagamento em cartório não encontrado<br/><small>Bank Slip for notary office payment not found</small> |
| <a id="BLP000053"></a>`BLP000053` | 400 | **Bad Request**<br/>Tipo de arquivo {file_type} não implementado.<br/><small>File type {file_type} not implemented.</small> |
| <a id="BLP000055"></a>`BLP000055` | 404 | **Not Found**<br/>Nenhum boleto para protesto encontrado<br/><small>Bank SLip for protest not found</small> |
| <a id="BLP000056"></a>`BLP000056` | 400 | **Bad Request**<br/>Use POST /requester_configuration |
| <a id="BLP000057"></a>`BLP000057` | 404 | **Not Found**<br/>Carteira não encontrada.<br/><small>Requester Profile not found.</small> |
| <a id="BLP000058"></a>`BLP000058` | 400 | **Bad Request**<br/>Parâmetro obrigatório ausente: person_key<br/><small>Missing mandatory parameter: person_key</small> |
| <a id="BLP000059"></a>`BLP000059` | 400 | **Bad Request**<br/>Use POST /requester_profile/{requester_profile_key} |
| <a id="BLP000060"></a>`BLP000060` | 404 | **Not Found**<br/>Conta não encontrada para a chave {person_key}.<br/><small>Account not found for person key {person_key}.</small> |
| <a id="BLP000061"></a>`BLP000061` | 400 | **Bad Request**<br/>Intervalo já usado<br/><small>Range already used</small> |
| <a id="BLP000062"></a>`BLP000062` | 400 | **Bad Request**<br/>Use POST /requester_profile_range |
| <a id="BLP000064"></a>`BLP000064` | 400 | **Bad Request**<br/>Falta REGISTRATION_INSTITUTION_CONFIG<br/><small>Missing Registration Institution config</small> |
| <a id="BLP000065"></a>`BLP000065` | 422 | **Pub Sub Ocurrence Error**<br/>Ordem de ocorrência de arquivo CNAB inválida.<br/><small>Invalid CNAB file occurrence order.</small> |
| <a id="BLP000066"></a>`BLP000066` | 400 | **Bad Request**<br/>Tipo de ocorrência {occurrence_type} não suportado<br/><small>Occurrence type {occurrence_type} not supported</small> |
| <a id="BLP000067"></a>`BLP000067` | 400 | **Bad Request**<br/>Erros encontrados no arquivo CNAB de retorno: {occurrence_sequence}<br/><small>Errors found on return CNAB File: {occurrence_sequence}</small> |
| <a id="BLP000068"></a>`BLP000068` | 400 | **Bad Request**<br/>Arquivo: {filename}. Erro: {error}<br/><small>File: {filename}. Error: {error}</small> |
| <a id="BLP000069"></a>`BLP000069` | 400 | **Bad Request - CNAB ERROR**<br/>Arquivo vazio ou corrompido.<br/><small>Empty or corrupted file.</small> |
| <a id="BLP000070"></a>`BLP000070` | 400 | **Bad Request - CNAB ERROR**<br/>Não foi possível identificar o tipo de arquivo CNAB enviado.<br/><small>Could not find the CNAB type.</small> |
| <a id="BLP000071"></a>`BLP000071` | 400 | **Bad Request - CNAB ERROR**<br/>Versão de CNAB não suportada.<br/><small>CNAB version not supported yet.</small> |
| <a id="BLP000072"></a>`BLP000072` | 400 | **Bad Request - CNAB ERROR**<br/>Linha de registro com tamanho incorreto.<br/><small>Registry line size incorrect.</small> |
| <a id="BLP000073"></a>`BLP000073` | 400 | **Bad Request - CNAB ERROR**<br/>Não foi possível determinar o código do banco operador<br/><small>Could not determine Bank Code.</small> |
| <a id="BLP000074"></a>`BLP000074` | 400 | **Bad Request - CNAB ERROR**<br/>Não foi possível determinar a versão do CNAB.<br/><small>Could not determine CNAB version.</small> |
| <a id="BLP000075"></a>`BLP000075` | 400 | **Bad Request - CNAB ERROR**<br/>Não foi possível determinar o tipo do CNAB (Remessa / Retorno).<br/><small>Could not determine CNAB type (Remittance / Discharge).</small> |
| <a id="BLP000076"></a>`BLP000076` | 400 | **Bad Request - CNAB ERROR**<br/>Tipo de arquivo incorreto, deve ser Remessa(1) ou Retorno(2).<br/><small>Invalid CNAB type, must be Remittance(1) or Discharge(2).</small> |
| <a id="BLP000077"></a>`BLP000077` | 400 | **Bad Request - CNAB ERROR**<br/>Tradutor de CNAB não implementado para o tipo enviado.<br/><small>CNAB translator not implemented yet for the type sent.</small> |
| <a id="BLP000078"></a>`BLP000078` | 400 | **Bad Request - CNAB ERROR**<br/>Não foi possível ler o campo.<br/><small>Could not set the field.</small> |
| <a id="BLP000079"></a>`BLP000079` | 400 | **Bad Request - CNAB ERROR**<br/>Número máximo de dígitos excedido para o campo.<br/><small>Max field size exceeded.</small> |
| <a id="BLP000080"></a>`BLP000080` | 400 | **Bad Request - CNAB ERROR**<br/>Tipo de valor incorreto.<br/><small>Value type incorrect.</small> |
| <a id="BLP000081"></a>`BLP000081` | 400 | **Bad Request - CNAB ERROR**<br/>Número de casas decimais incorreto.<br/><small>Wrong number of decimal places.</small> |
| <a id="BLP000082"></a>`BLP000082` | 400 | **Bad Request - CNAB ERROR**<br/>Linha de Registro Header colocado na posição incorreta.<br/><small>Wrong header record position in file.</small> |
| <a id="BLP000083"></a>`BLP000083` | 400 | **Bad Request - CNAB ERROR**<br/>Sequência de registros incorreta no arquivo.<br/><small>Wrong cnab record sequence.</small> |
| <a id="BLP000084"></a>`BLP000084` | 400 | **Bad Request - CNAB ERROR**<br/>Linha de Registro trailer colocado na posição incorreta.<br/><small>Wrong trailer record position in file.</small> |
| <a id="BLP000085"></a>`BLP000085` | 400 | **Bad Request - CNAB ERROR**<br/>Tipo de registro não suportado.<br/><small>Record type not supported.</small> |
| <a id="BLP000086"></a>`BLP000086` | 400 | **Bad Request - CNAB ERROR**<br/>Espécie de Título não suportada.<br/><small>Asset type not supported.</small> |
| <a id="BLP000087"></a>`BLP000087` | 400 | **Bad Request - CNAB ERROR**<br/>Tipo de ocorrência não suportada.<br/><small>Occurrence not supported.</small> |
| <a id="BLP000088"></a>`BLP000088` | 400 | **Bad Request - CNAB ERROR**<br/>Número sequencial de remessa inválido ou em uso.<br/><small>Remittance sequence number invalid or in use.</small> |
| <a id="BLP000089"></a>`BLP000089` | 400 | **Bad Request - CNAB ERROR**<br/>Nome do arquivo de remessa inválido.<br/><small>Invalid Remittance filename.</small> |
| <a id="BLP000090"></a>`BLP000090` | 400 | **Bad Request - CNAB ERROR**<br/>Número sequencial de registro inválido ou não sequencial.<br/><small>Invalid record sequence or not sequential.</small> |
| <a id="BLP000091"></a>`BLP000091` | 400 | **Bad Request - CNAB ERROR**<br/>Número máximo de retornos gerados alcançado.<br/><small>Max Number of Discharges reached.</small> |
| <a id="BLP000094"></a>`BLP000094` | 400 | **Bad Request - CNAB ERROR**<br/>Nome do arquivo de remessa duplicado.<br/><small>Duplicated Remittance filename.</small> |
| <a id="BLP000097"></a>`BLP000097` | 400 | **Bad Request - CNAB ERROR**<br/>Não foi possível determinar o nome do banco.<br/><small>Could not determine bank name.</small> |
| <a id="BLP000098"></a>`BLP000098` | 400 | **Bad Request - CNAB ERROR**<br/>Carteira não encontrada: {requester_profiles}. Verifique o campo Identificação da Empresa Beneficiária (posições 21 a 37)<br/><small>Requester profile not found: {requester_profiles}. Check CNAB field beneficiary identification (positions 21 to 37)</small> |
| <a id="BLP000099"></a>`BLP000099` | 400 | **Bad Request - CNAB ERROR**<br/>Número máximo de remessas alcançado.<br/><small>Max Number of Remittances reached.</small> |
| <a id="BLP000100"></a>`BLP000100` | 400 | **Bad Request - CNAB ERROR**<br/>Tipo de ocorrência não suportado.<br/><small>Not supported occurrence type.</small> |
| <a id="BLP000102"></a>`BLP000102` | 400 | **Bad Request**<br/>A Request precisa de pelo menos um dos seguintes parâmetros: barcode, digitable_line<br/><small>Request needs at least one of the following parameters: barcode, digitable_line</small> |
| <a id="BLP000103"></a>`BLP000103` | 400 | **Bad Request**<br/>Lista de chaves não pode ser vazia<br/><small>Keys must not be empty</small> |
| <a id="BLP000104"></a>`BLP000104` | 400 | **Bad Request**<br/>Registro na CIP inválido, por favor tente novamente daqui alguns minutos<br/><small>CIP registration not valid please try again in a few minutes</small> |
| <a id="BLP000105"></a>`BLP000105` | 400 | **Bad Request**<br/>SELECTED_AGENT deve ser fornecido<br/><small>A SELECTED_AGENT must be provided</small> |
| <a id="BLP000106"></a>`BLP000106` | 400 | **Bad Request**<br/>Use PATCH /expense_configuration/{requester_profile_key} |
| <a id="BLP000107"></a>`BLP000107` | 400 | **Bad Request**<br/>Mensagem para o boleto inválida, ocorrência {occurrence_sequence}<br/><small>Invalid bank teller instruction, occurrence {occurrence_sequence}</small> |
| <a id="BLP000108"></a>`BLP000108` | 400 | **Bad Request**<br/>Use GET expense?subject_account_key={account_key} |
| <a id="BLP000109"></a>`BLP000109` | 404 | **Not Found**<br/>Cnab não encontrado para a chave {cnab_key}.<br/><small>Cnab not found for the given key {cnab_key}</small> |
| <a id="BLP000110"></a>`BLP000110` | 422 | **Unprocessable Entity**<br/>Nosso número {our_number} duplicado, ordem da ocorrência {occurrence_sequence}<br/><small>Duplicate our number {our_number}, occurrence sequence {occurrence_sequence}</small> |
| <a id="BLP000111"></a>`BLP000111` | 422 | **Unprocessable Entity**<br/>Nosso número {our_number} inválido para código de carteira {requester_profile_code}, ordem da ocorrência {occurrence_sequence}<br/><small>Invalid our number {our_number} for requester profile code {requester_profile_code}, occurrence sequence {occurrence_sequence}</small> |
| <a id="BLP000112"></a>`BLP000112` | 422 | **Unprocessable Entity**<br/>Remessa Rejeitada<br/><small>Rejected Remittance</small> |
| <a id="BLP000113"></a>`BLP000113` | 422 | **Unprocessable Entity**<br/>Código do banco não enviado, ordem da ocorrência {occurrence_sequence}<br/><small>Bank Code not sent, occurrence sequence {occurrence_sequence}</small> |
| <a id="BLP000114"></a>`BLP000114` | 422 | **Unprocessable Entity**<br/>Agência não enviada, ordem da ocorrência {occurrence_sequence}<br/><small>Payment branch not sent, occurrence sequence {occurrence_sequence}</small> |
| <a id="BLP000115"></a>`BLP000115` | 422 | **Unprocessable Entity**<br/>Data de Pagamento não enviada, ordem da ocorrência {occurrence_sequence}<br/><small>Payment Credit Date not sent, occurrence sequence {occurrence_sequence}</small> |
| <a id="BLP000116"></a>`BLP000116` | 422 | **Unprocessable Entity**<br/>Linha digitável inválida: {digitable_line}<br/><small>Invalid digitable line: {digitable_line}</small> |
| <a id="BLP000117"></a>`BLP000117` | 400 | **Bad Request**<br/>A carteira selecionada possui {bank_slips_count} boletos em aberto. Não é possível desativar esta carteira.<br/><small>This requester profile has {bank_slips_count} open bank slips. You cannot deactivate this profile.</small> |
| <a id="BLP000118"></a>`BLP000118` | 422 | **Unprocessable Entity**<br/>Carteira bloqueada ou fechada não pode registrar novos boletos , ordem da ocorrência {occurrence_sequence}<br/><small>Blocked or closed requester profile can not register new bank slips, occurrence sequence {occurrence_sequence}</small> |
| <a id="BLP000119"></a>`BLP000119` | 400 | **Bad Request**<br/>Carteiras fechadas não podem gerar novas ocorrências<br/><small>Closed requester profile can not register new occurrences</small> |
| <a id="BLP000120"></a>`BLP000120` | 400 | **Bad Request**<br/>Não foi possível ler o CNAB devido presença de caracteres especiais na linha {line} e posição {position} do arquivo.<br/><small>Unable to read CNAB file. Check file data for special characters at line {line} and position {position}</small> |
| <a id="BLP000121"></a>`BLP000121` | 404 | **Not Found**<br/>Boletos não encontrados para gerar tarifa de permanência<br/><small>Not Found bank Slip to generate permanency expense</small> |
| <a id="BLP000122"></a>`BLP000122` | 404 | **Not Found**<br/>Boletos não encontrados para gerar baixa por decurso de prazo<br/><small>Not Found bank Slip to generate write off term</small> |
| <a id="BLP000123"></a>`BLP000123` | 400 | **Bad Request**<br/>Arquivo CNAB com mais de uma carteira (posições 021 a 037).<br/><small>CNAB file with more than one requester profile (positions 021 a 037).</small> |
| <a id="BLP000124"></a>`BLP000124` | 400 | **Bad Request**<br/>Parâmetro obrigatório ausente: requester_profile_key<br/><small>Missing mandatory parameter: requester_profile_key</small> |
| <a id="BLP000125"></a>`BLP000125` | 404 | **Not Found**<br/>Nenhum boleto com notificações a serem enviadas foi encontrado<br/><small>No bankslips with notifications to be sent found</small> |
| <a id="BLP000126"></a>`BLP000126` | 400 | **Bad Request**<br/>Tipo de arquivo inválido. O upload do logo deve ser uma imagem .png<br/><small>Invalid file type. Logo upload should be a .png image type</small> |
| <a id="BLP000127"></a>`BLP000127` | 400 | **Bad Request**<br/>Largura inválida. A largura máxima do logo deve ser 300px.<br/><small>Invalid image width. Logo image width should be 300px max.</small> |
| <a id="BLP000128"></a>`BLP000128` | 400 | **Bad Request**<br/>Altura inválida. A altura máxima do logo deve ser 100px.<br/><small>Invalid image height. Logo image height should be 100px max.</small> |
| <a id="BLP000129"></a>`BLP000129` | 400 | **Bad Request**<br/>Orientação inválida. A orientação do logo deve ser paisagem e não retrato/quadrado<br/><small>Invalid image orientation. Logo image orientation should be landscape and not portrait/square</small> |
| <a id="BLP000130"></a>`BLP000130` | 400 | **Bad Request**<br/>Falta o arquivo.<br/><small>Missing file.</small> |
| <a id="BLP000131"></a>`BLP000131` | 400 | **Bad Request**<br/>Request sem ocorrências.<br/><small>Request without occurrences.</small> |
| <a id="BLP000132"></a>`BLP000132` | 403 | **Unauthorized**<br/>Occurrence type não permitida.<br/><small>Occurrence type is not allowed.</small> |
| <a id="BLP000134"></a>`BLP000134` | 422 | **Unprocessable Entity**<br/>Nosso número duplicado, {our_number}<br/><small>Our duplicate number, {our_number}</small> |
| <a id="BLP000135"></a>`BLP000135` | 422 | **Unprocessable Entity**<br/>O campo Identificação da Empresa Beneficiária {beneficiary_code} nas linhas de registro (posições 021 a 037) é diferente da identificação da empresa beneficiária {company_code} no cabeçalho (posições 027 a 046).<br/><small>The field Identification of the Beneficiary Institution {beneficiary_code} on the registration lines (positions 021 to 037) is different from the beneficiary company identification {company_code} in the header (positions 027 to 046).</small> |
| <a id="BLP000136"></a>`BLP000136` | 400 | **Invalid FileName**<br/>Nome de arquivo inválido ({cnab_filename}). Favor não utilizar caracteres especiais como '!,@,(,),$' .<br/><small>Invalid filename ({cnab_filename}). Please do not use specials characters like '!,@,(,),$' .</small> |
| <a id="BLP000137"></a>`BLP000137` | 400 | **Bad Request**<br/>Tamanho inválido do código de barras. Código de barras deve possuir 44 dígitos.<br/><small>Invalid barcode length ({barcode_length}). Barcode must be 44 digits.</small> |
| <a id="BLP000138"></a>`BLP000138` | 404 | **Not Found**<br/>Nenhum boleto para baixa automática encontrado<br/><small>Bank Slip for automatic write-off not found</small> |
| <a id="BLP000139"></a>`BLP000139` | 404 | **Not Found**<br/>Não foi possível encontrar a configuração de notificação para os parâmetros enviados.<br/><small>Notification configuration not found for the given parameters.</small> |
| <a id="BLP000140"></a>`BLP000140` | 400 | **Bad Request**<br/>O nome do arquivo CNAB é muito longo para ser salvo no nosso Banco de Dados.<br/><small>The given CNAB filename is too long to be saved in our database.</small> |
| <a id="BLP000141"></a>`BLP000141` | 400 | **Bad Request**<br/>A linha digitável fornecida deve conter somente números.<br/><small>The given digitable_line must have only numbers.</small> |
| <a id="BLP000142"></a>`BLP000142` | 400 | **Bad Request**<br/>Esta linha digitável está fora do comprimento mínimo ou máximo.<br/><small>This digitable line is out of minimum or maximum length.</small> |
| <a id="BLP000143"></a>`BLP000143` | 404 | **Not Found**<br/>Conta não encontrada para a chave {account_key}.<br/><small>Account not found for key {account_key}.</small> |
| <a id="BLP000144"></a>`BLP000144` | 400 | **Bad Request**<br/>Essa linha digitável não é aceita.<br/><small>This digitable line is not accepted.</small> |
| <a id="BLP000145"></a>`BLP000145` | 400 | **Bad Request**<br/>Não é possível gerar PDF a partir de um boleto bancário rejeitado.<br/><small>Cannot generate PDF from a rejected bank slip.</small> |
| <a id="BLP000146"></a>`BLP000146` | 400 | **Bad Request**<br/>Pagamento rejeitado.<br/><small>Payment rejected.</small> |
| <a id="BLP000147"></a>`BLP000147` | 400 | **Bad Request**<br/>Para habilitar o QR Code uma chave pix padrão válida deve ser enviada.<br/><small>To enable QR Code a valid defaul pix key must be send.</small> |
| <a id="BLP000148"></a>`BLP000148` | 400 | **Bad Request**<br/>Conta beneficiária deve ser a mesma da chave pix.<br/><small>Beneficiary account and pix key must match.</small> |
| <a id="BLP000149"></a>`BLP000149` | 400 | **Bad Request**<br/>Carteira {requester_profile_key} deve estar ativa.<br/><small>Requester Profile {requester_profile_key} must be active.</small> |
| <a id="BLP000150"></a>`BLP000150` | 400 | **Bad Request**<br/>Formato de data incorreto, Dever ser do tipo YYYY-MM-DD.<br/><small>Wrong Date format. Format must be YYYY-MM-DD.</small> |
| <a id="BLP000151"></a>`BLP000151` | 400 | **Bad Request**<br/>Custas de cartório deven ser em porcentagem.<br/><small>Protest expense must be percentage.</small> |
| <a id="BLP000152"></a>`BLP000152` | 400 | **Bad Request**<br/>Código de carteira {requester_profile_code}<br/><small>Requester Profile Code {requester_profile_code} already in use</small> |
| <a id="BLP000153"></a>`BLP000153` | 400 | **Bad Request**<br/>{filter_param} deve ter tamanho mínimo de {min_length}<br/><small>{filter_param} must have min length of {min_length}</small> |
| <a id="BLP000154"></a>`BLP000154` | 422 | **Unprocessable Entity**<br/>Erro ao realizar pagamento de arrecadação: {message}<br/><small>Error paying tax collection: {message}</small> |
| <a id="BLP000155"></a>`BLP000155` | 402 | **Bad Request**<br/>Fundos insuficientes para pagamento de boleto<br/><small>Not enough funds for bank-slip payment</small> |
| <a id="BLP000156"></a>`BLP000156` | 400 | **Bad Request**<br/>Use GET /cnab_file/return/{cnab_type}/{requester_profile_code} |
| <a id="BLP000157"></a>`BLP000157` | 400 | **Bad Request**<br/>Parâmetro obrigatório ausente: cnab_type<br/><small>Missing mandatory parameter: cnab_type</small> |
| <a id="BLP000158"></a>`BLP000158` | 400 | **Bad Request**<br/>Chave de emissor de remessa deve ser fornecida. Por favor envie um SELECTED-AGENT ou faça uma requisição interna<br/><small>Remitter key must be provided. Please send SELECTED-AGENT or make an internal request</small> |
| <a id="BLP000159"></a>`BLP000159` | 412 | **Bad Request**<br/>Erro ao gerar {file_type}, usuário com o documento {document_number} não possui endereço cadastrado!<br/><small>Error generating {file_type}, user with document {document_number} does not have a registered address!</small> |
| <a id="BLP000160"></a>`BLP000160` | 422 | **Unprocessable Entity**<br/>Data de vencimento não pode ser depois de 2049-10-13<br/><small>Expiration date cannot be after 2049-10-13</small> |
| <a id="BLP000161"></a>`BLP000161` | 400 | **Bad Request**<br/>Juros diário deve estar no formato 9999999.99<br/><small>Interest Daily Value must match format 9999999.99</small> |
| <a id="BLP000162"></a>`BLP000162` | 400 | **Bad Request**<br/>Valor multa deve estar no formato 9999999.99<br/><small>Fine Percentage Value must match format 9999999.99</small> |
| <a id="BLP000163"></a>`BLP000163` | 400 | **Bad Request**<br/>Valor de Desconto diário deve estar no formato 9999999.99<br/><small>Discount Value must match format 9999999.99</small> |
| <a id="BLP000164"></a>`BLP000164` | 404 | **Not Found**<br/>Pagamento não encontrada para o código de barras {barcode}.<br/><small>Payment entry not found for barcode {barcode}.</small> |
| <a id="BLP000165"></a>`BLP000165` | 400 | **Bad Request**<br/>O pagamento não está pago. Status atual do pagamento: {current_payment_status}.<br/><small>Payment is not paid. Current payment status: {current_payment_status}.</small> |
| <a id="BLP000166"></a>`BLP000166` | 400 | **Bad Request**<br/>Falha ao cancelar pagamento no PCR. Código de barras: {barcode}.<br/><small>Failed to cancel payment in PCR. Barcode: {barcode}.</small> |
| <a id="BLP000167"></a>`BLP000167` | 400 | **Bad Request**<br/>A configuração max_payment_days da carteira deve ser um número inteiro igual ou menor a 360 e diferente de 0<br/><small>Requester max_payment_days must be an integer no greater than 360 and must not be 0.</small> |
| <a id="BLP000168"></a>`BLP000168` | 400 | **Bad Request**<br/>O boleto não está com aviso de pagamento. Status atual do boleto: {bank_slip_status}.<br/><small>Bank slip is not does not have a payment notice. Current bank slip status: {bank_slip_status}.</small> |
| <a id="BLP000169"></a>`BLP000169` | 400 | **Bad Request**<br/>O boleto não possui uma ocorrência de aviso de pagamento confirmada.<br/><small>Bank slip does not have a confirmed payment notice occurrence.</small> |
| <a id="BLP000170"></a>`BLP000170` | 400 | **Bad Request**<br/>Se sobreescrever configurações de interesse estiver ativado, as suas configurações devem ser preenchidas.<br/><small>If override_automatic_bankruptcy_protest_settings is true, bankruptcy protest settings must be filled.</small> |
| <a id="BLP000171"></a>`BLP000171` | 400 | **Bad Request**<br/>Se sobreescrever configurações de multa estiver ativado, as suas configurações devem ser preenchidas.<br/><small>If override_fine_settings is true, bankruptcy protest settings must be filled.</small> |
| <a id="BLP000172"></a>`BLP000172` | 400 | **Bad Request**<br/>Se sobreescrever configurações de baixa automática estiver ativado, as suas configurações devem ser preenchidas.<br/><small>If override_automatic_write_off_settings is true, bankruptcy protest settings must be filled.</small> |
| <a id="BLP000173"></a>`BLP000173` | 400 | **Bad Request**<br/>Se sobreescrever configurações de protesto por falência estiver ativado, as suas configurações devem ser preenchidas.<br/><small>If override_automatic_bankruptcy_protest_settings is true, bankruptcy protest settings must be filled.</small> |
| <a id="BLP000174"></a>`BLP000174` | 400 | **Bad Request**<br/>Se sobreescrever configurações de protesto estiver ativado, as suas configurações devem ser preenchidas.<br/><small>If override_automatic_protest_settings is true, protest settings must be filled.</small> |
| <a id="BLP000175"></a>`BLP000175` | 400 | **Bad Request**<br/>Se sobreescrever configurações de política de impressão estiver ativado, as suas configurações devem ser preenchidas.<br/><small>If override_printing_policy_settings is true, printing policy settings must be filled.</small> |
| <a id="BLP000176"></a>`BLP000176` | 400 | **Bad Request**<br/>Falha ao consultar pagamento no PCR. Código de barras: {barcode}.<br/><small>Failed to consult payment in PCR. Barcode: {barcode}.</small> |
| <a id="BLP000177"></a>`BLP000177` | 400 | **Bad Request**<br/>Propósito não permitido.<br/><small>Purpose not allowed.</small> |
| <a id="BLP000178"></a>`BLP000178` | 400 | **Bad Request**<br/>Não é possível agendar pagamentos para arrecadação<br/><small>It's not possible to schedule payments for tax collection</small> |
| <a id="BLP000179"></a>`BLP000179` | 400 | **Bad Request**<br/>Data de pagamento não pode ser anterior a data de hoje.<br/><small>Payment date can't be before today.</small> |
| <a id="BLP000180"></a>`BLP000180` | 400 | **Bad Request**<br/>Propósito inválido .<br/><small>Invalid purpose.</small> |
| <a id="BLP000181"></a>`BLP000181` | 400 | **Bad Request**<br/>Documento inválido.<br/><small>Invalid guarantor document.</small> |
| <a id="BLP000182"></a>`BLP000182` | 400 | **Bad Request**<br/>Data de validade inválida.<br/><small>Invalid expiration date.</small> |
| <a id="BLP000183"></a>`BLP000183` | 400 | **Bad Request**<br/>Caracter inválido na linha {line}.<br/><small>Invalid character in line {line}.</small> |
| <a id="BLP000184"></a>`BLP000184` | 501 | **Not Implemented**<br/>Recurso disponível apenas em sandbox<br/><small>Resource only available in sandbox</small> |
| <a id="BLP000185"></a>`BLP000185` | 400 | **Invalid Qr Code Type**<br/>O payload de QR Code fornecido não contêm um tipo de Qr Code Válido<br/><small>The Qr Code payload given did not provide a proper Qr Code type</small> |
| <a id="BLP000186"></a>`BLP000186` | 400 | **Invalid Qr Code Format**<br/>O formato do Qr Code é inválido<br/><small>The Qr Code format is invalid</small> |
| <a id="BLP000187"></a>`BLP000187` | 404 | **Not Found**<br/>Pagamento não encontrada para a linha digitável {digitable_line}.<br/><small>Payment entry not found for digitable line {digitable_line}.</small> |
| <a id="BLP000188"></a>`BLP000188` | 400 | **Bad Request**<br/>Não foi possível consultar o boleto neste momento. Por favor, tente novamente em alguns minutos.<br/><small>It was not possible to consult the bank slip at this time. Please try again in a few minutes.</small> |
| <a id="BLP000189"></a>`BLP000189` | 400 | **Bad Request**<br/>Houve um problema ao processar o pagamento. Por favor, verifique suas informações e, se necessário, entre em contato conosco para obter assistência.<br/><small>There was a problem processing the payment. Please verify your information and, if necessary, contact us for assistance.</small> |
| <a id="BLP000190"></a>`BLP000190` | 400 | **Bad Request**<br/>Ciclo de liquidação não encontrado<br/><small>Settlement cycle not found</small> |
| <a id="BLP000191"></a>`BLP000191` | 400 | **Bad Request**<br/>Temporariamente indisponível<br/><small>Temporary unavalilable</small> |
| <a id="BLP000192"></a>`BLP000192` | 400 | **Bad Request**<br/>Genaração de cnab para a carteira em progresso<br/><small>Cnab profile output in progress for requester_profile_code</small> |
| <a id="BLP000193"></a>`BLP000193` | 422 | **Unprocessable Entity**<br/>Carteira {requester_profile_code} está bloqueada por outra ação, por favor tente novamente mais tarde.<br/><small>Requester profile {requester_profile_code} is locked by other action, please try again later.</small> |
| <a id="BLP000194"></a>`BLP000194` | 400 | **Bad Request**<br/>O campo requester_key é obrigatório no corpo da requisição.<br/><small>Field requester_key is required in the request body.</small> |
| <a id="BLP000195"></a>`BLP000195` | 400 | **Bad Request**<br/>O tipo de liquidação do boleto deve ser informado.<br/><small>Bank slip settlement type must be informed.</small> |
| <a id="BLP000196"></a>`BLP000196` | 400 | **Bad Request**<br/>Nome do sacador avalista inválido.<br/><small>Invalid guarantor name.</small> |
| <a id="BLP000197"></a>`BLP000197` | 400 | **Bad Request**<br/>Conta beneficiária não está aberta<br/><small>Beneficiary account is not opened</small> |
| <a id="BLP000198"></a>`BLP000198` | 400 | **Bad Request**<br/>Múltiplas entradas de pagamento encontradas para o código de barras {barcode}.<br/><small>Multiple payment entries found for barcode {barcode}.</small> |
| <a id="BLP000199"></a>`BLP000199` | 400 | **Bad Request**<br/>O valor total do pagamento do boleto é diferente do valor retornado.<br/><small>Bank slip payment total amount is different from the returned amount.</small> |

### GDF — Autenticação e Autorização

28 erros

| Código | HTTP | Mensagem |
|-|-|-|
| <a id="GDF000001"></a>`GDF000001` | 403 | **Permission Validation Error**<br/>Somente usuários master são permitidos<br/><small>Only master user's are allowed</small> |
| <a id="GDF000002"></a>`GDF000002` | 403 | **Permission Validation Error**<br/>Um SELECTED-AGENT deve ser fornecido<br/><small>A SELECTED-AGENT must be provided</small> |
| <a id="GDF000003"></a>`GDF000003` | 400 | **Bad Request**<br/>Nenhuma chave de API do cliente recebida<br/><small>No API Client Key received</small> |
| <a id="GDF000004"></a>`GDF000004` | 400 | **Bad Request**<br/>Corpo da request vazio<br/><small>Empty body received</small> |
| <a id="GDF000005"></a>`GDF000005` | 400 | **Bad Request**<br/>Cliente da API já criado para esta person_key<br/><small>API Client already created for this person_key</small> |
| <a id="GDF000006"></a>`GDF000006` | 400 | **Bad Request**<br/>allowed_endpoint duplicado<br/><small>Duplicated allowed_endpoint provided</small> |
| <a id="GDF000007"></a>`GDF000007` | 404 | **Not Found**<br/>Nenhuma ClientIntegration encontrada para client_integration_key: {client_integration_key}.<br/><small>No ClientIntegration found for client_integration_key: {client_integration_key} .</small> |
| <a id="GDF000008"></a>`GDF000008` | 400 | **Bad Request**<br/>Uma client_integration_key deve ser fornecida<br/><small>A client_integration_key must be provided</small> |
| <a id="GDF000009"></a>`GDF000009` | 400 | **Bad Request**<br/>Uma ação deve ser fornecida<br/><small>A action must be provided</small> |
| <a id="GDF000010"></a>`GDF000010` | 400 | **Bad Request**<br/>Ação não existe ({action_name}).<br/><small>Action doesnt exist ({action_name}).</small> |
| <a id="GDF000011"></a>`GDF000011` | 404 | **Not Found**<br/>Nenhuma ClientIntegration encontrada para client_integration_key / allowed_endpoint_key: {client_integration_key} / {allowed_endpoint_key}.<br/><small>No ClientIntegration found for client_integration_key / allowed_endpoint_key: {client_integration_key} / {allowed_endpoint_key}.</small> |
| <a id="GDF000012"></a>`GDF000012` | 404 | **Not Found**<br/>Nenhuma AllowedEndpoint encontrada para client_integration_key / allowed_endpoint_key: {client_integration_key} / {allowed_endpoint_key}.<br/><small>No AllowedEndpoint found for client_integration_key / allowed_endpoint_key: {client_integration_key} / {allowed_endpoint_key}.</small> |
| <a id="GDF000013"></a>`GDF000013` | 400 | **Bad Request**<br/>Uma chave allowed_endpoint_key deve ser fornecida<br/><small>A allowed_endpoint_key must be provided</small> |
| <a id="GDF000014"></a>`GDF000014` | 401 | **QI Unauthenticated**<br/>Por favor forneça credenciais válidas como parte da request. (Documentação: https://docs.qitech.com.br) Detalhes: {details_br}<br/><small>Please provide valid credentials as part of the request. (Documentation: https://docs.qitech.com.br) Details: {details}</small> |
| <a id="GDF000015"></a>`GDF000015` | 400 | **Bad Request**<br/>Por favor forneça uma chave pública válida<br/><small>Please provide a valid client_public_key</small> |
| <a id="GDF000016"></a>`GDF000016` | 400 | **Bad Request**<br/>Erro ao decodificar o JSON do corpo da requisição. Por favor verifique se o corpo é válido. Detalhes: {json_ex}<br/><small>Error while decoding request's JSON body. Please verify if body is valid. Details: {json_ex}</small> |
| <a id="GDF000017"></a>`GDF000017` | 400 | **Bad Request**<br/>Valor inválido ({info}).<br/><small>Invalid Value ({info}).</small> |
| <a id="GDF000018"></a>`GDF000018` | 404 | **Not Found**<br/>Nenhuma ClientIntegration encontrada para api_client_key: {api_client_key}.<br/><small>No ClientIntegration found for api_client_key: {api_client_key}.</small> |
| <a id="GDF000019"></a>`GDF000019` | 400 | **Bad Request**<br/>Mapeamento ainda inexistente para request_type: '{request_type}'.<br/><small>Informed request_type: '{request_type}' has not been mapped yet.</small> |
| <a id="GDF000020"></a>`GDF000020` | 500 | **Internal Error**<br/>Account Key não pode ser nulo quando solicitar uma inclusão de chave.<br/><small>Account Key can't be null when including pix key.</small> |
| <a id="GDF000021"></a>`GDF000021` | 500 | **Internal Error**<br/>Falha na requisição para autorização de SCR.<br/><small>Failed to request SCR authorization.</small> |
| <a id="GDF000022"></a>`GDF000022` | 400 | **Bad Request**<br/>Mapeamento ainda inexistente para request_type: '{request_type}'.<br/><small>Informed request_type: '{request_type}' has not been mapped yet.</small> |
| <a id="GDF000023"></a>`GDF000023` | 401 | **Unauthorized**<br/>SSL validation error<br/><small>Error na verificação SSL</small> |
| <a id="GDF000024"></a>`GDF000024` | 400 | **Bad Request**<br/>Error at client webhook endpoint<br/><small>Error no endpoint de webhook do cliente</small> |
| <a id="GDF000025"></a>`GDF000025` | 403 | **Permission Validation Error**<br/>Somente os ambientes de desenvolvimento e de sandbox são permitidos para realizar requisições na Mock API.<br/><small>Only sandbox and dev environment are allowed to request Mock API</small> |
| <a id="GDF000026"></a>`GDF000026` | 400 | **Bad Request**<br/>Versão do método de assinatura não permitida<br/><small>Signature method version not allowed</small> |
| <a id="GDF000027"></a>`GDF000027` | 404 | **Not Found**<br/>Nenhuma ClientIntegration encontrada para a person_key: {person_key}.<br/><small>No ClientIntegration found for person_key: {person_key}.</small> |
| <a id="GDF000028"></a>`GDF000028` | 404 | **Not Found**<br/>A requisição precisa de um body, mesmo que um vazio como: '{}'.<br/><small>The request needs a body, even an empty one like: '{}'.</small> |

### OBD — Cadastro de Cliente

88 erros

| Código | HTTP | Mensagem |
|-|-|-|
| <a id="OBD000001"></a>`OBD000001` | 400 | **Bad Request**<br/>Use DELETE /bank_account/{bank_account_key} com um agente válido<br/><small>Use DELETE /bank_account/{bank_account_key} with a valid agent</small> |
| <a id="OBD000002"></a>`OBD000002` | 404 | **Not Found**<br/>Conta não encontrada<br/><small>Bank account not found</small> |
| <a id="OBD000003"></a>`OBD000003` | 400 | **Bad Request**<br/>Use POST /bank_account/ com um agente válido<br/><small>Use POST /bank_account/ with a valid agent</small> |
| <a id="OBD000004"></a>`OBD000004` | 404 | **Not Found**<br/>Não existe pessoa com número de documento {document_number}<br/><small>There is no person with document number {document_number}</small> |
| <a id="OBD000005"></a>`OBD000005` | 400 | **Bad Request**<br/>Use GET /cnae/{cnae_code} |
| <a id="OBD000006"></a>`OBD000006` | 400 | **Bad Request**<br/>O código Cnae deve ter 7 dígitos e não conter caracteres especiais<br/><small>Cnae code must be without special characters and must have 7 digits</small> |
| <a id="OBD000007"></a>`OBD000007` | 404 | **Not Found**<br/>Cnae não encontrado.<br/><small>Cnae was not found.</small> |
| <a id="OBD000008"></a>`OBD000008` | 404 | **Not Found**<br/>Proprietário (owner_person) não encontrado.<br/><small>Owner Person not found.</small> |
| <a id="OBD000009"></a>`OBD000009` | 404 | **Not Found**<br/>Draft person não encontrada para {name}<br/><small>Draft person not found for {name}</small> |
| <a id="OBD000010"></a>`OBD000010` | 400 | **Bad Request**<br/>O fundo já existe, use PUT /fund/{fund_key}.<br/><small>Fund already exists, please use PUT /fund/{fund_key}.</small> |
| <a id="OBD000011"></a>`OBD000011` | 400 | **Bad Request**<br/>custodian_person não encontrado.<br/><small>Custodian Person not found.</small> |
| <a id="OBD000012"></a>`OBD000012` | 400 | **Bad Request**<br/>custodian_person não é válido.<br/><small>Custodian Person sent is not a custodian.</small> |
| <a id="OBD000013"></a>`OBD000013` | 400 | **Bad Request**<br/>Administrador não encontrado<br/><small>Administrator Person not found.</small> |
| <a id="OBD000014"></a>`OBD000014` | 400 | **Bad Request**<br/>administrador_person não é um administrador.<br/><small>Administrator Person sent is not a administrator.</small> |
| <a id="OBD000015"></a>`OBD000015` | 400 | **Bad Request**<br/>Fundo não encontrado.<br/><small>Fund not found.</small> |
| <a id="OBD000016"></a>`OBD000016` | 400 | **Bad Request**<br/>O número do documento do fundo enviado deve corresponder a um fundo existente. Enviado: {fund_document_number}.<br/><small>Fund document_number sent must match an existing fund. Sent: {fund_document_number}.</small> |
| <a id="OBD000017"></a>`OBD000017` | 400 | **Bad Request**<br/>O número do documento do fundo enviado deve corresponder ao fundo existente. Enviado: {fund_document_number}. Experado: {document_number}.<br/><small>Fund document_number sent must match existing fund. Sent: {fund_document_number}. Expected: {document_number}.</small> |
| <a id="OBD000018"></a>`OBD000018` | 400 | **Bad Request**<br/>A pessoa já tem qualificação {qualification_enum}.<br/><small>Person already has {qualification_enum} qualification.</small> |
| <a id="OBD000019"></a>`OBD000019` | 404 | **Not Found**<br/>Pessoa não encontrada.<br/><small>Person not found</small> |
| <a id="OBD000020"></a>`OBD000020` | 404 | **Not Found**<br/>Empresa ou agente não encontrado<br/><small>Company or Agent not found</small> |
| <a id="OBD000021"></a>`OBD000021` | 400 | **Bad Request**<br/>Use GET /person/(person_document) ou /person?document_number?(document_number)<br/><small>Use GET /person/(person_document) or /person?document_number?(document_number)</small> |
| <a id="OBD000022"></a>`OBD000022` | 400 | **Bad Request**<br/>E-mail ou documento duplicado<br/><small>Duplicated document/email</small> |
| <a id="OBD000023"></a>`OBD000023` | 500 | **Internal Error**<br/>Erro ao criar usuário: {document_number}. Falha ao enviar email de boas-vindas<br/><small>Error creating user:{document_number}. Fail to send welcome email</small> |
| <a id="OBD000024"></a>`OBD000024` | 404 | **Not Found**<br/>Agente não encontrado<br/><small>POST Agent Not Found</small> |
| <a id="OBD000025"></a>`OBD000025` | 400 | **Bad Request**<br/>Documento deve ser CPF ou CNPJ<br/><small>First document must be CPF or CNPJ</small> |
| <a id="OBD000026"></a>`OBD000026` | 400 | **Bad Request**<br/>Use POST /person |
| <a id="OBD000027"></a>`OBD000027` | 400 | **Bad Request**<br/>Conflito com chave e tipo de pessoa<br/><small>Conflict with person key and person type</small> |
| <a id="OBD000028"></a>`OBD000028` | 400 | **Bad Request**<br/>Use PATCH /person/{person_key} |
| <a id="OBD000029"></a>`OBD000029` | 400 | **Bad Request**<br/>Use GET /person_qualification/{qualification} |
| <a id="OBD000030"></a>`OBD000030` | 400 | **Bad Request**<br/>Use PUT /person_qualification |
| <a id="OBD000031"></a>`OBD000031` | 400 | **Bad Request**<br/>A pessoa não tem qualificação {qualification_enum}.<br/><small>Person does not have {qualification_enum} qualification.</small> |
| <a id="OBD000032"></a>`OBD000032` | 400 | **Bad Request**<br/>Use DELETE /person_qualification |
| <a id="OBD000033"></a>`OBD000033` | 400 | **Bad Request**<br/>Pessoa física não encontrada<br/><small>Natural person not found</small> |
| <a id="OBD000034"></a>`OBD000034` | 400 | **Bad Request**<br/>Pessoa jurídica não encontrada<br/><small>Legal person not found</small> |
| <a id="OBD000035"></a>`OBD000035` | 400 | **Bad Request**<br/>Dados profissionais já existem<br/><small>Professional data already exists</small> |
| <a id="OBD000036"></a>`OBD000036` | 400 | **Bad Request**<br/>Dados profissionais não encontrados<br/><small>Professional data not found</small> |
| <a id="OBD000037"></a>`OBD000037` | 400 | **Bad Request**<br/>Use POST /professional_data |
| <a id="OBD000038"></a>`OBD000038` | 400 | **Bad Request**<br/>Você não pode se remover<br/><small>You cannot remove yourself</small> |
| <a id="OBD000039"></a>`OBD000039` | 400 | **Bad Request**<br/>Atributo person_key ausente no corpo da request<br/><small>Missing attribute person_key in request body</small> |
| <a id="OBD000040"></a>`OBD000040` | 400 | **Bad Request**<br/>Você deve fornecer um nome.<br/><small>You must provide a name.</small> |
| <a id="OBD000041"></a>`OBD000041` | 400 | **Bad Request**<br/>Você deve fornecer um nome e um número de documento para fazer a verificação do PEP.<br/><small>You must provide a name and a document number to do the PEP check.</small> |
| <a id="OBD000042"></a>`OBD000042` | 500 | **Internal Error**<br/>KeyCloak não retornou o cabeçalho do local<br/><small>KeyCloak did not returned location header</small> |
| <a id="OBD000043"></a>`OBD000043` | 400 | **Bad Request**<br/>Qualificação não existe<br/><small>Qualification does not exist</small> |
| <a id="OBD000044"></a>`OBD000044` | 400 | **Bad Request**<br/>Pessoa fisica ou juridica nao encontradas.<br/><small>Could not find either legal nor natural person</small> |
| <a id="OBD000045"></a>`OBD000045` | 400 | **Bad Request**<br/>Atributo owner_person_key ausente<br/><small>Missing attribute owner_person_key</small> |
| <a id="OBD000046"></a>`OBD000046` | 400 | **Bad Request**<br/>Professional data não está ativo<br/><small>Professional data is not active</small> |
| <a id="OBD000047"></a>`OBD000047` | 403 | **Unauthorized**<br/>Usuário não tem permissão para adicionar ou modificar usuários<br/><small>User does not have permission to add or modify users to this person</small> |
| <a id="OBD000048"></a>`OBD000048` | 400 | **Bad Request**<br/>A chave de usuário deve ser enviada.<br/><small>Client Key must be provided.</small> |
| <a id="OBD000049"></a>`OBD000049` | 404 | **Bad Request**<br/>Client não encontrado<br/><small>Client not found.</small> |
| <a id="OBD000050"></a>`OBD000050` | 400 | **Bad Request**<br/>Parâmetro client_key não permitido no método POST<br/><small>Parameter client_key not allowed no POST method</small> |
| <a id="OBD000051"></a>`OBD000051` | 400 | **Bad Request**<br/>Person não está ativa<br/><small>Person is not active</small> |
| <a id="OBD000052"></a>`OBD000052` | 400 | **Bad Request**<br/>document_type: {document_type} não permitido para person {person_type}<br/><small>document_type: {document_type} not allowed for {person_type} person</small> |
| <a id="OBD000053"></a>`OBD000053` | 400 | **Bad Request**<br/>document_type: {document_type} incorreto utilizado no documento: {document_field_name}<br/><small>Wrong document_type: {document_type} used in document: {document_field_name}</small> |
| <a id="OBD000054"></a>`OBD000054` | 400 | **Bad Request**<br/>Cliente já registrado para o document_number: {document_number}. use o método PATCH para atualizar um cliente<br/><small>Client already registered for document_number: {document_number}. Use PATCH method to update a client</small> |
| <a id="OBD000055"></a>`OBD000055` | 404 | **Bad Request**<br/>Não foi possíel encontrar nenhum resultado com os parâmetros eviados.<br/><small>Can not find any result for search parameters</small> |
| <a id="OBD000056"></a>`OBD000056` | 403 | **Unauthorized**<br/>Usuário não tem permissão para adicionar ou modificar clientes<br/><small>User does not have permission to add or modify clients to this person</small> |
| <a id="OBD000057"></a>`OBD000057` | 403 | **Bad Request**<br/>O cliente {document_number} está bloqueado, favor contactar o suporte.<br/><small>Client {document_number} is blocked, please contact support.</small> |
| <a id="OBD000058"></a>`OBD000058` | 403 | **Bad Request**<br/>Ação não implementada.<br/><small>Action not implemented.</small> |
| <a id="OBD000059"></a>`OBD000059` | 400 | **Bad Request**<br/>document_key duplicada no company representative com document_number: {document_number}<br/><small>Duplicated document_key on company representative with document_number: {document_number}</small> |
| <a id="OBD000060"></a>`OBD000060` | 400 | **Bad Request**<br/>company_representative duplicado recebido<br/><small>Duplicated company_representative received</small> |
| <a id="OBD000061"></a>`OBD000061` | 400 | **Bad Request**<br/>document_key duplicada nos attached_documents do client<br/><small>Duplicated document_key on client's attached_documents</small> |
| <a id="OBD000062"></a>`OBD000062` | 400 | **Bad Request**<br/>filtro order_by permitido para os seguintes valores: {order_by_list}<br/><small>order_by filter must be one of: {order_by_list}</small> |
| <a id="OBD000063"></a>`OBD000063` | 401 | **Unauthorized**<br/>reset de senha não autorizado fora do app<br/><small>password reset not authorized out of app</small> |
| <a id="OBD000064"></a>`OBD000064` | 400 | **Bad Request**<br/>professional data já está ativo<br/><small>professional data is already active</small> |
| <a id="OBD000065"></a>`OBD000065` | 400 | **Bad Request**<br/>Você deve fornecer um email.<br/><small>You must provide an email.</small> |
| <a id="OBD000066"></a>`OBD000066` | 412 | **Precondition Failed**<br/>OwnerPerson deve pertencer ao Domain da QI SCD<br/><small>OwnerPerson must be in the QI SCD Domain.</small> |
| <a id="OBD000067"></a>`OBD000067` | 400 | **Bad Request**<br/>Domínio já existe para OwnerPerson.<br/><small>Domain already exists for owner person.</small> |
| <a id="OBD000068"></a>`OBD000068` | 404 | **Not Found**<br/>Domínio não encontrado.<br/><small>Domain not found</small> |
| <a id="OBD000069"></a>`OBD000069` | 400 | **Bad Request**<br/>Apenas pessoas jurídicas podem ter domínios.<br/><small>Only legal person may own domains.</small> |
| <a id="OBD000070"></a>`OBD000070` | 400 | **Bad Request**<br/>Tipo errado para {variable}. Deve ser {type}<br/><small>Wrong type for {variable}. Must be {type}</small> |
| <a id="OBD000071"></a>`OBD000071` | 400 | **Bad Request**<br/>Você deve fornecer um email ou um número de telefone.<br/><small>You must provide an email or a phone number.</small> |
| <a id="OBD000072"></a>`OBD000072` | 400 | **Bad Request**<br/>Use owner_person_key ou domain_key na busca.<br/><small>Use either owner_person_key or domain_key in search.</small> |
| <a id="OBD000073"></a>`OBD000073` | 403 | **Unauthorized**<br/>Usuário não tem permissão para adicionar ou modificar pessoas a este domínio.<br/><small>User does not have permission to add or modify persons to this domain</small> |
| <a id="OBD000075"></a>`OBD000075` | 400 | **Bad Request**<br/>Pessoas físicas e jurídicas deves pertencer ao mesmo domínio.<br/><small>Natural and legal person must be in the same domain.</small> |
| <a id="OBD000076"></a>`OBD000076` | 400 | **Bad Request**<br/>Uma professional_data_key deve ser fornecida.<br/><small>A professional_data_key must be provided.</small> |
| <a id="OBD000077"></a>`OBD000077` | 400 | **Bad Request**<br/>Permissão inválida para pessoa juurídica, enviado {role}<br/><small>Invalid legal person role sent {role}.</small> |
| <a id="OBD000078"></a>`OBD000078` | 400 | **Bad Request**<br/>Sempre deve existir ao menos um administrador de conta<br/><small>There must always be an account administrator left</small> |
| <a id="OBD000079"></a>`OBD000079` | 400 | **Bad Request**<br/>Endpoint utilizado apenas para atualizações de pessoas fisicas<br/><small>Endpoint used for natural person updates only</small> |
| <a id="OBD000080"></a>`OBD000080` | 400 | **Bad Request**<br/>Número de telefone inválido<br/><small>Invalid phone number</small> |
| <a id="OBD000081"></a>`OBD000081` | 400 | **Bad Request**<br/>E-mail inválido<br/><small>Invalid e-mail</small> |
| <a id="OBD000082"></a>`OBD000082` | 400 | **Bad Request**<br/>Pessoa física não possui usuários autorizados.<br/><small>Natural person does not have allowed users.</small> |
| <a id="OBD000083"></a>`OBD000083` | 404 | **Not found**<br/>Dados proficionais não encontrados.<br/><small>Professional data not found.</small> |
| <a id="OBD000084"></a>`OBD000084` | 400 | **Bad Request**<br/>O usuário open finance já foi validado.<br/><small>The openfinance user is already validated.</small> |
| <a id="OBD000085"></a>`OBD000085` | 400 | **Bad Request**<br/>Método permitido apenas para usuários de domain.<br/><small>Method only allowed for domain users.</small> |
| <a id="OBD000086"></a>`OBD000086` | 400 | **Bad Request**<br/>Dados recusados.<br/><small>Reproved person data.</small> |
| <a id="OBD000087"></a>`OBD000087` | 400 | **Requester Configuration Already Exists**<br/>Requester Configuration já existe para essa requester_key.<br/><small>Requester Configuration already exists for this requester_key.</small> |
| <a id="OBD000088"></a>`OBD000088` | 400 | **Invalid Requester Configuration Info**<br/>O formato de configuração enviado não é válido.<br/><small>The configuration format sent is not valid.</small> |
| <a id="OBD000089"></a>`OBD000089` | 404 | **Requester Configuration not found**<br/>Não há Requester Configuration para a requester_key enviada<br/><small>There is no Requester Configuration attributed to requester_key given</small> |

### PMB — Notificações

34 erros

| Código | HTTP | Mensagem |
|-|-|-|
| <a id="PMB000001"></a>`PMB000001` | 403 | **Permission Validator Error**<br/>Somente usuários master estão autorizados<br/><small>Only master user's are allowed</small> |
| <a id="PMB000002"></a>`PMB000002` | 403 | **Permission Validator Error**<br/>Um SELECTED-AGENT deve ser fornecido<br/><small>A SELECTED-AGENT must be provided</small> |
| <a id="PMB000003"></a>`PMB000003` | 404 | **Not Found**<br/>Nenhum callback encontrado para callback_key: {callback_key}.<br/><small>No callback found for callback_key: {callback_key} .</small> |
| <a id="PMB000004"></a>`PMB000004` | 400 | **Bad Request**<br/>O event_type solicitado ({callback_event_name}) não existe.<br/><small>The requested event_type ({callback_event_name}) does not exists.</small> |
| <a id="PMB000005"></a>`PMB000005` | 400 | **Bad Request**<br/>Não foi possível executar a ação de nova tentativa com o callback_status atual ({callback_status_enumerator})<br/><small>Unable to perform retry action with current callback_status ({callback_status_enumerator})</small> |
| <a id="PMB000006"></a>`PMB000006` | 400 | **Bad Request**<br/>Já existe uma NotificationConfiguration para event_type: {event_type}.<br/><small>A NotificationConfiguration already exists for event_type: {event_type} .</small> |
| <a id="PMB000007"></a>`PMB000007` | 400 | **Bad Request**<br/>Nenhuma NotificationConfiguration encontrada para event_type: {event_type}.<br/><small>No NotificationConfiguration found for event_type: {event_type} .</small> |
| <a id="PMB000008"></a>`PMB000008` | 404 | **Not Found**<br/>Evento não encontrado (event_key = {event_key})<br/><small>Event not found (event_key = {event_key})</small> |
| <a id="PMB000009"></a>`PMB000009` | 400 | **Bad Request**<br/>Evento já existe (event_key = {event_key})<br/><small>Event already exists (event_key: {event_key})</small> |
| <a id="PMB000010"></a>`PMB000010` | 400 | **Bad Request**<br/>Já existe uma NotificationConfiguration para person_key: {person_key} / event_type: {event_type} .<br/><small>A NotificationConfiguration already exists for person_key: {person_key} / event_type: {event_type} .</small> |
| <a id="PMB000011"></a>`PMB000011` | 400 | **Bad Request**<br/>Origem '{enumerador}' já existe.<br/><small>Origin '{enumerator}' already exists.</small> |
| <a id="PMB000012"></a>`PMB000012` | 400 | **Bad Request**<br/>EventType '{enumerator}' já existe.<br/><small>EventType '{enumerator}' already exists.</small> |
| <a id="PMB000013"></a>`PMB000013` | 400 | **Bad Request**<br/>Uma person_key deve ser fornecida<br/><small>A person_key must be provided</small> |
| <a id="PMB000014"></a>`PMB000014` | 400 | **Bad Request**<br/>Já existe uma CallbackConfiguration para person_key: {person_key}.<br/><small>A CallbackConfiguration already exists for person_key: {person_key} .</small> |
| <a id="PMB000015"></a>`PMB000015` | 404 | **Not Found**<br/>Nenhuma cCallbackConfiguration encontrada para person_key: {person_key}.<br/><small>No CallbackConfiguration found for person_key: {person_key} .</small> |
| <a id="PMB000016"></a>`PMB000016` | 404 | **Not Found**<br/>A URL do CallbackConfiguration precisa estar em https.<br/><small>The CallbackConfiguration URL must be in https.</small> |
| <a id="PMB000017"></a>`PMB000017` | 404 | **Not Found**<br/>Os Headers do CallbackConfiguration precisa ser um dicionário, ou um objeto JSON.<br/><small>The CallbackConfiguration Headers must be a dict or a json object</small> |
| <a id="PMB000018"></a>`PMB000018` | 404 | **Not Found**<br/>SMS Try não encontrado pela chave externa<br/><small>SMS Try not found by external key</small> |
| <a id="PMB000019"></a>`PMB000019` | 400 | **Bad Request**<br/>A origem solicitada ({origin}) não existe.<br/><small>The requested origin ({origin}) does not exists.</small> |
| <a id="PMB000020"></a>`PMB000020` | 400 | **Bad Request**<br/>A {invalid_uuid} enviada não é válida<br/><small>The {invalid_uuid} sent is not valid</small> |
| <a id="PMB000021"></a>`PMB000021` | 400 | **Bad Request**<br/>O tipo de template {enumerator} enviado não é válida<br/><small>The template type {enumerator} is not valid</small> |
| <a id="PMB000022"></a>`PMB000022` | 400 | **Bad Request**<br/>O tipo de evento {enumerator} enviado não é válida<br/><small>The event type {enumerator} is not valid</small> |
| <a id="PMB000023"></a>`PMB000023` | 400 | **Bad Request**<br/>Já existe um template configuration para essa pessoa e event type<br/><small>Already exists an template configuration to this person and event type</small> |
| <a id="PMB000024"></a>`PMB000024` | 404 | **Not found**<br/>Configuração de template não encontrada<br/><small>Template configuration not found</small> |
| <a id="PMB000025"></a>`PMB000025` | 404 | **Not found**<br/>Template não encontrado<br/><small>Template not found</small> |
| <a id="PMB000026"></a>`PMB000026` | 400 | **Invalid notification for event type**<br/>Método de notificação inválido para tipo de evento<br/><small>Invalid notification method for event type</small> |
| <a id="PMB000027"></a>`PMB000027` | 409 | **Conflict**<br/>Configuração de notificação já existe para essa pessoa e tipo de evento<br/><small>Notification configuration already exists for this person and event type</small> |
| <a id="PMB000028"></a>`PMB000028` | 404 | **Not found**<br/>Configuração de notificação já não encontrada<br/><small>Notification configuration not found</small> |
| <a id="PMB000029"></a>`PMB000029` | 403 | **Forbidden**<br/>Callback não pertence a este usuário<br/><small>User does not own this callback</small> |
| <a id="PMB000030"></a>`PMB000030` | 429 | **Too Many Requests**<br/>O limiar de SMS por segundo foi atingido.<br/><small>SMS per second threshold has been reached.</small> |
| <a id="PMB000031"></a>`PMB000031` | 400 | **Bad Request**<br/>Uma client_integration_key deve ser fornecida<br/><small>A client_integration_key must be provided</small> |
| <a id="PMB000032"></a>`PMB000032` | 400 | **Bad Request**<br/>O intervalo de tempo selecionado deve ter no máximo 14 dias<br/><small>Selected timeframe should have a maximum of 14 days</small> |
| <a id="PMB000033"></a>`PMB000033` | 400 | **Bad Request**<br/>'template_id' deve ser um inteiro<br/><small>'template_id' must be an integer</small> |
| <a id="PMB000034"></a>`PMB000034` | 400 | **Bad Request**<br/>Este recurso está temporariamente indisponível<br/><small>This resource is temporary unavailable</small> |

### PXT — Pix

185 erros

| Código | HTTP | Mensagem |
|-|-|-|
| <a id="PXT000002"></a>`PXT000002` | - | **Person is not Account Owner**<br/>A pessoa {person_key} não é dona da conta<br/><small>Person {person_key} is not account owner</small> |
| <a id="PXT000003"></a>`PXT000003` | - | **Account is Closed**<br/>Conta {account_key} está fechada<br/><small>Account {account_key} is closed</small> |
| <a id="PXT000004"></a>`PXT000004` | - | **Account not found**<br/>Conta não encontrada para: {account_datum}<br/><small>Account not found for: {account_datum}</small> |
| <a id="PXT000005"></a>`PXT000005` | - | **Account not found**<br/>Conta não encontrada para chave pix: {pix_key}<br/><small>Account not found for pix key: {pix_key}</small> |
| <a id="PXT000006"></a>`PXT000006` | - | **Account not found**<br/>Chave de identificação da conta não foi fornecida<br/><small>Account was not provided for this query</small> |
| <a id="PXT000008"></a>`PXT000008` | - | **Invalid Permission**<br/>Pessoa {person_key} não tem permissões de administrador para a conta {account_key}<br/><small>Person {person_key} does not have administration roles for account {account_key}</small> |
| <a id="PXT000009"></a>`PXT000009` | - | **Person Not Found**<br/>Pessoa com número de documento {person_document_number} não encontrada<br/><small>Person with document number {person_document_number} not found</small> |
| <a id="PXT000010"></a>`PXT000010` | - | **Account is Blocked**<br/>Conta {account_key} está bloqueada<br/><small>Account {account_key} is blocked</small> |
| <a id="PXT000011"></a>`PXT000011` | - | **Account Type Mismatch**<br/>O tipo de conta fornecido não condiz com o registrado<br/><small>Given account type does not match one registered</small> |
| <a id="PXT000012"></a>`PXT000012` | - | **Invalid Document Number**<br/>CPF/CNPJ {document_number} fornecido não é valido<br/><small>Given {document_number} document number is invalid</small> |
| <a id="PXT0000126"></a>`PXT0000126` | - | **Error on qr code decode**<br/>Houve um erro ao decodificar o qr code<br/><small>There was an error on decode qr code</small> |
| <a id="PXT0000127"></a>`PXT0000127` | - | **Invalid Reversal Reason**<br/>Razão de reversão {reversal_reason} não é válida<br/><small>Reversal reason {reversal_reason} is not valid</small> |
| <a id="PXT000013"></a>`PXT000013` | - | **Account Validation Failure**<br/>Validação da conta para o end_to_end_id recebido não é válida<br/><small>Account validation for received end_to_end_id is not valid</small> |
| <a id="PXT000014"></a>`PXT000014` | - | **Target Account mismatch**<br/>Dados da conta de destino recebida não corresponde à conta validada<br/><small>Received target account data doesn</small> |
| <a id="PXT000015"></a>`PXT000015` | - | **Reversal date expired**<br/>A data de criação da transação original é mais antiga que 90 dias<br/><small>Reversal original transaction is older than 90 days</small> |
| <a id="PXT000016"></a>`PXT000016` | - | **Reversal Account Flow Mismatch**<br/>O fluxo de contas de destino e de origem não correspondem ao da transação original<br/><small>Reversal account flow does not match original pix transfer</small> |
| <a id="PXT000017"></a>`PXT000017` | - | **Reversal Too Great**<br/>A soma das transações de devolução ultrapassam o valor da transação pix original<br/><small>Reversal transfers sum amount surpasses that of original pix transfer</small> |
| <a id="PXT000018"></a>`PXT000018` | - | **Reversal Original Transfer not Found**<br/>Transferência original da devolução não foi encontrada<br/><small>Reversal original pix transfer not found</small> |
| <a id="PXT000019"></a>`PXT000019` | - | **Chargeback Validation Failure**<br/>Os valores da atual devolução não correspondem com aqueles das validação<br/><small>Previously done validation values do match with incoming chargeback</small> |
| <a id="PXT000020"></a>`PXT000020` | - | **Incoming PIX Validation Not Found**<br/>Não se encontrou validação anterior para o id ponta-a-ponta provido<br/><small>No previously done validation was found for given end to end id</small> |
| <a id="PXT000021"></a>`PXT000021` | - | **Incoming Validation Already Done**<br/>A validação para o id ponta a ponta {end_to_end_id} já foi feita<br/><small>There</small> |
| <a id="PXT000022"></a>`PXT000022` | - | **Wrong ISPB**<br/>ISPB é diferente de 32402502<br/><small>ISPB is different from 32402502</small> |
| <a id="PXT000023"></a>`PXT000023` | - | **Outgoing PIX Transfer Not Found**<br/>Transferência PIX de saída com chave {pix_transfer_key} não foi encontrada<br/><small>Pix transfer key {pix_transfer_key} was not found</small> |
| <a id="PXT000024"></a>`PXT000024` | - | **PIX Transfer Not Pending Confirmation**<br/>Transferência PIX {pix_transfer_key} não está aguardando confirmação<br/><small>Pix transfer {pix_transfer_key} is not pending confirmation</small> |
| <a id="PXT000025"></a>`PXT000025` | - | **Invalid pix transfer key**<br/>Transferência PIX {pix_transfer_key} não está aguardando confirmação ou não existe<br/><small>Pix transfer {pix_transfer_key} is not pending confirmation or does not exist</small> |
| <a id="PXT000026"></a>`PXT000026` | - | **Search Params Error**<br/>Valor inválido para parâmetros de página ou tamanho de página<br/><small>Invalid integer value for page or size querystring parameters</small> |
| <a id="PXT000027"></a>`PXT000027` | - | **Invalid Permission**<br/>Pessoa selecionada não tem credencial de administrador<br/><small>Selected Person does not have administration roles</small> |
| <a id="PXT000028"></a>`PXT000028` | - | **Account Key can not be null when search for config fees**<br/>A chave de conta não pode ser nula quando buscar por configurações de tarifa<br/><small>Account key can not be null when search for config fees</small> |
| <a id="PXT000029"></a>`PXT000029` | - | **Invalid Value for Enumerator Type**<br/>Valor inválido {value} para o tipo de enumerador {enumerator}<br/><small>Invalid value {value} used for enumerator type {enumerator}</small> |
| <a id="PXT000030"></a>`PXT000030` | - | **To update or delete a fee configuration must be provided a valid fee ID**<br/>Para atualizar ou remover uma configuração de tarifa deve ser fornecido um ID válido. ID fornecido: {identification}<br/><small>To update or delete a fee configuration must be provided a valid fee ID. ID provided: {identification}</small> |
| <a id="PXT000031"></a>`PXT000031` | - | **Fee configuration already exists**<br/>Configuração de tarifa já existe para conta {person_owner_type} com: finalidade= {purpose} e {transfer_type}. Por favor utilize o update<br/><small>Fee configuration already exists for {person_owner_type} account with: purpose= {purpose} and {transfer_type}. Please use update</small> |
| <a id="PXT000032"></a>`PXT000032` | - | **Unable To Delete Default Configuration**<br/>Não é permitido deletar uma configuração default. Por favor utilize o update<br/><small>Unable To Delete Default Configuration. Please use update</small> |
| <a id="PXT000033"></a>`PXT000033` | - | **Target Account Must Not Be Source Account**<br/>A conta de destino não pode ser a conta de origem<br/><small>Target Account Must Not Be Source Account</small> |
| <a id="PXT000034"></a>`PXT000034` | - | **Account Key Must Not Be Null**<br/>É necessário definir uma chave de conta para definir uma configuração de tarifa para a mesma<br/><small>You Need To Define An Account Key To Create A Fee Configuration</small> |
| <a id="PXT000035"></a>`PXT000035` | - | **Limit configuration already exists**<br/>Configuração de limite já existe para conta {account_key} para o período(s) {existing_limit_periods}. Por favor utilize o update<br/><small>Limit configuration already exists for {account_key} account for period(s) {existing_limit_periods}. Please use update</small> |
| <a id="PXT000036"></a>`PXT000036` | - | **No limit configuration found. Please set default configurations**<br/>Não foi possível encontrar configurações de limite, favor utilizar configurações padrões para {person_type}<br/><small>No limit configuration found. Please set default configurations for {person_type} person</small> |
| <a id="PXT000037"></a>`PXT000037` | - | **Person Not Found**<br/>Pessoa com chave {person_key} não encontrada<br/><small>Person with key {person_key} not found</small> |
| <a id="PXT000038"></a>`PXT000038` | - | **Not enough balance**<br/>Saldo insuficiente para pagar por tarifa de pix de entrada<br/><small>Not enough balance to pay for incoming pix fee</small> |
| <a id="PXT000039"></a>`PXT000039` | - | **Invalid Batch Limit Configuration**<br/>Recebido {} configuração(ões) erradas para contas: {}. Configurações devem ser None ou float positivo<br/><small>Received {} wrong configuration(s) for accounts: {}. Configurations must be None or positive float</small> |
| <a id="PXT000040"></a>`PXT000040` | - | **Bad Request**<br/>Limite deve ser nulo, positivo inteiro ou decimal. Sent {limit}<br/><small>Amount limit must be null, positive float or int. Sent {limit}</small> |
| <a id="PXT000041"></a>`PXT000041` | - | **Not Found**<br/>Qr Code não encontrado<br/><small>Qr Code not found</small> |
| <a id="PXT000042"></a>`PXT000042` | - | **Bad Request**<br/>Não existe código ISPB para esse Bank Code<br/><small>There is no ISPB number for this Bank Code</small> |
| <a id="PXT000043"></a>`PXT000043` | - | **Bad Request**<br/>Valor decimal inválido, enviado {number}<br/><small>Invalid decimal amount, sent {number}</small> |
| <a id="PXT000044"></a>`PXT000044` | - | **Not Found**<br/>Chave PIX {pix_key} não está ativada<br/><small>Pix Key {pix_key} is not activated</small> |
| <a id="PXT000045"></a>`PXT000045` | - | **Not Found**<br/>Pagamento via QR Code é inválido para Cliente Recebedor {receiver_conciliation_id}<br/><small>QR Code Payment is invalid for Receiver Conciliation ID {receiver_conciliation_id}</small> |
| <a id="PXT000046"></a>`PXT000046` | - | **Bad Request**<br/>Valor inválido para o query parameter<br/><small>Invalid value for</small> |
| <a id="PXT000047"></a>`PXT000047` | - | **Bad Request**<br/>{field_name} não pode ser maior que {max_length} caracteres<br/><small>{field_name} could not be larger than {max_length} characters</small> |
| <a id="PXT000048"></a>`PXT000048` | - | **Bad Request**<br/>Emoji não é permitido na mensagem pix<br/><small>Emoji not allowed in pix message</small> |
| <a id="PXT000049"></a>`PXT000049` | - | **Bad Request**<br/>Ao pagar um QR Code o end_to_end_id não pode ser nulo<br/><small>When paying QR Code end_to_end_id could not be none</small> |
| <a id="PXT000050"></a>`PXT000050` | - | **Bad Request**<br/>Não foi possível ler o tipo de QR Code. Favor tente ler o qr_code outra vez<br/><small>Could not read QR Code type, please try to read qr_code again</small> |
| <a id="PXT000051"></a>`PXT000051` | - | **Invalid Requester Configuration Info**<br/>O formato enviado da configuração {configuration} não é válido<br/><small>The configuration {configuration} format sent is not valid</small> |
| <a id="PXT000052"></a>`PXT000052` | - | **Bad Request**<br/>Apenas o Master QI Tech pode alterar as configurações de limites padrões<br/><small>Only Master QI Tech can change default limits configurations</small> |
| <a id="PXT000053"></a>`PXT000053` | - | **Bad Request**<br/>Qr Code já Pago<br/><small>QrCode already paid</small> |
| <a id="PXT000054"></a>`PXT000054` | - | **Bad Request**<br/>Chave pix inválida, enviado {pix_key}<br/><small>Invalid Pix Key, sent {pix_key}</small> |
| <a id="PXT000055"></a>`PXT000055` | - | **Pix error**<br/>Tipo inválido de limite enviado<br/><small>Invalid Limit Type Sent</small> |
| <a id="PXT000056"></a>`PXT000056` | - | **Bad Request**<br/>Apenas o Master QI Tech pode alterar eventos de limites<br/><small>Only Master QI Tech can handle limit events</small> |
| <a id="PXT000057"></a>`PXT000057` | - | **Bad Request**<br/>requisição inválida ou requisição não encontrado, requisição enviada {request_key}<br/><small>Invalid request_key or no request found, request_key sent {request_key}</small> |
| <a id="PXT000058"></a>`PXT000058` | - | **Bad Request**<br/>Quando uma requisição de limite é rejeitada, o motivo não pode ser nulo<br/><small>When limit request is rejected, rejected reason could not be null</small> |
| <a id="PXT000059"></a>`PXT000059` | - | **Bad Request**<br/>O documento infomado não é o mesmo da conta de destino<br/><small>Target document number is not account owner document number</small> |
| <a id="PXT000060"></a>`PXT000060` | - | **Bad Request**<br/>Conta inexistente no banco de destino<br/><small>Nonexistent account in destination bank</small> |
| <a id="PXT000061"></a>`PXT000061` | - | **Conflict**<br/>End to end id inválido. Uma transação pix com o identificador único {end_to_end} já foi registrada!<br/><small>End to end id invalid. A pix transfer with the end to end id {end_to_end} has already been registered!</small> |
| <a id="PXT000062"></a>`PXT000062` | - | **Conflict**<br/>Campos faltantes detectados em resposta do JD connector: {response}<br/><small>Missing fields detected on jd connector response: {response}</small> |
| <a id="PXT000063"></a>`PXT000063` | - | **Conflict**<br/>Resposta inesperada: {response}<br/><small>Unexpected response: {response}</small> |
| <a id="PXT000064"></a>`PXT000064` | - | **Bad Request**<br/>Para transação pix do tipo manual, uma conta destino deve ser fornecida<br/><small>For Manual Pix Transfer Type a target account must be provided</small> |
| <a id="PXT000065"></a>`PXT000065` | - | **Bad Request**<br/>Pix transfer já rejeitada. Motivo da rejeição: {error_description_translated}<br/><small>Pix transfer sent was already rejected. Rejection_reason: {error_description}</small> |
| <a id="PXT000067"></a>`PXT000067` | - | **Pix Key is Unregistered**<br/>A chave pix {pix_key} não está sendo utilizada<br/><small>Pix key {pix_key} is not currently used</small> |
| <a id="PXT000068"></a>`PXT000068` | - | **Pix Key is Unregistered**<br/>Consulta de chave pix excedeu o tempo limite. Por favor tente novamente<br/><small>Pix key inquiry timeout. Please try again</small> |
| <a id="PXT000069"></a>`PXT000069` | - | **Error in Qr Code Payload Request**<br/>Um erro ocorreu durante a requisição do payload do qr code para a instituição de registro<br/><small>An error occurred while requesting the qr code payload to the registry institution</small> |
| <a id="PXT000070"></a>`PXT000070` | - | **Invalid Qr Code Format**<br/>O formato do Qr Code é inválido, por favor insira um Qr Code válido<br/><small>The Qr Code format is invalid, please enter a valid Qr Code</small> |
| <a id="PXT000071"></a>`PXT000071` | - | **Invalid Qr Code Type**<br/>O payload de QR Code fornecido não contêm um tipo de Qr Code Válido<br/><small>The Qr Code payload given did not provide a propper Qr Code type</small> |
| <a id="PXT000072"></a>`PXT000072` | - | **Pending Transfer**<br/>Não foi possível concluir a transação ({end_to_end_id}) e ela está pendente de confirmação<br/><small>The transaction ({end_to_end_id}) could not be completed and is pending confirmation</small> |
| <a id="PXT000073"></a>`PXT000073` | - | **Outgoing PIX Transfer Not Found**<br/>Transferência PIX de saída com identificador único {end_to_end_id} não foi encontrada<br/><small>Pix transfer end to end id {end_to_end_id} was not found</small> |
| <a id="PXT000074"></a>`PXT000074` | - | **Invalid Transaction Status**<br/>Não foi possível atualizar o status da transação. O status {status} é invalido<br/><small>Unable to update transaction status. The status {status} is invalid</small> |
| <a id="PXT000075"></a>`PXT000075` | - | **Pix Transfer Key or End To End Not Provided**<br/>Não foram fornecidos uma pix transfer key ou end to end id<br/><small>No pix transfer key or end to end id provided</small> |
| <a id="PXT000076"></a>`PXT000076` | - | **Incoming PIX Transfer Not Found**<br/>Transferência PIX de entrada com chave {pix_transfer_key} não foi encontrada<br/><small>Pix transfer key {pix_transfer_key} was not found</small> |
| <a id="PXT000077"></a>`PXT000077` | - | **Pix Transfer Receipt not allowed**<br/>Recibo de transação pix não pode ser gerado para transações rejeitadas<br/><small>Pix Transfer Receipt cannot be generated for rejected transfers</small> |
| <a id="PXT000078"></a>`PXT000078` | - | **Pix Transfer Receipt not available**<br/>Comprovante não disponível pois transação Pix está em processamento. Por favor, aguarde alguns minutos e tente novamente<br/><small>Receipt not available due to pix transfer currently being processed. Wait a few minutes and try again</small> |
| <a id="PXT000079"></a>`PXT000079` | - | **Bad Request**<br/>Saldo de conta de cobrança insuficiente para a taxa<br/><small>Insufficient billing account balance for fee</small> |
| <a id="PXT000080"></a>`PXT000080` | - | **Bad Request**<br/>Não foi possível concluir a transação e a transferência foi rejeitada<br/><small>Could not complete the transaction and the transaction was rejected</small> |
| <a id="PXT000081"></a>`PXT000081` | - | **Bad Request**<br/>Chave PIX não enviada<br/><small>Pix key not sent</small> |
| <a id="PXT000082"></a>`PXT000082` | - | **Bad Request**<br/>A chave PIX enviada {pix_key} não coincide com a chave PIX decodificada<br/><small>The sent PIX key {pix_key} does not match the decoded PIX key</small> |
| <a id="PXT000083"></a>`PXT000083` | - | **Bad Request**<br/>Pix rejeitado.<br/><small>Pix rejected.</small> |
| <a id="PXT000084"></a>`PXT000084` | - | **Original Pix Transfer Was Not Found**<br/>A transação PIX original não foi encontrada<br/><small>Original Pix Transfer Was Not Found</small> |
| <a id="PXT000085"></a>`PXT000085` | - | **Invalid Permission**<br/>Usuário não tem permissões suficientes<br/><small>User do not has sufficient permissions</small> |
| <a id="PXT000086"></a>`PXT000086` | - | **Update Default Failed**<br/>Para alterar a configuracao de requester padrao, envie default como requester_key na url<br/><small>To update default requester configuration send default as requester_key in url</small> |
| <a id="PXT000087"></a>`PXT000087` | - | **Amount limit not approved try a lower value**<br/>Limite total não aprovado para pessoa {person_type}, por favor tente um menor<br/><small>Amount limit for {person_type} person not approved, please try a lower value</small> |
| <a id="PXT000088"></a>`PXT000088` | - | **Bad Request**<br/>Informações da conta inválidas na tradução do DTO<br/><small>Invalid account information when translating to account DTO</small> |
| <a id="PXT000089"></a>`PXT000089` | - | **Incoming Pix not pending**<br/>Transferência de Entrada PIX {pix_transfer_key} não está pendente<br/><small>Incoming Pix with pix transfer key {pix_transfer_key} is not pending</small> |
| <a id="PXT000090"></a>`PXT000090` | - | **Service Unavailable**<br/>Transferência Pix não esta disponível no momento. Favor aguardar ou utilizar TED<br/><small>Pix transfer is not available right now. Please wait or use TED service</small> |
| <a id="PXT000091"></a>`PXT000091` | - | **Bad Request**<br/>Contas de sistema não possuem limite. Chave de conta {account_key} é conta de sistema<br/><small>System account has no limits. Account key {account_key} is system account</small> |
| <a id="PXT000092"></a>`PXT000092` | - | **Invalid Account Type**<br/>Transações Pix não estão implementadas para conta que não sejam escrow ou livres<br/><small>Pix is not yet implemented for non-checking or non-escrow account types</small> |
| <a id="PXT000093"></a>`PXT000093` | - | **Bad Request**<br/>Tarifas fixas e percentuais são multualmente exclusivas<br/><small>Fee must be either fixed_amount or percentage</small> |
| <a id="PXT000094"></a>`PXT000094` | - | **Bad Request**<br/>Falha ao obter transações por origin key<br/><small>Failed to fetch transactions by origin key</small> |
| <a id="PXT000095"></a>`PXT000095` | - | **Unforeseen Error Scenario on Reprocess**<br/>Cenário: pix_transfer_key: {pix_transfer_key}, pix_status: {pix_status}, bacen_status: {bacen_status}, internal_tx: {internal_tx}, reverse_tx: {reverse_tx}, external_tx: {external_tx}<br/><small>Scenario: pix_transfer_key: {pix_transfer_key}, pix_status: {pix_status}, bacen_status: {bacen_status}, internal_tx: {internal_tx}, reverse_tx: {reverse_tx}, external_tx: {external_tx}</small> |
| <a id="PXT000096"></a>`PXT000096` | - | **Expectation Failed**<br/>Erro inesperado ao tentar refazer transação externa de saída Pix {pix_transfer_key}<br/><small>Unexpected error trying to reprocess external transaction for outgoing Pix {pix_transfer_key}</small> |
| <a id="PXT000097"></a>`PXT000097` | - | **Expectation Failed**<br/>Erro inesperado ao tentar refazer transação reversa de saída Pix {pix_transfer_key}<br/><small>Unexpected error trying to reprocess reverse transaction for outgoing Pix {pix_transfer_key}</small> |
| <a id="PXT000098"></a>`PXT000098` | - | **Expectation Failed**<br/>Subtipo inesperado encontrado: {subtype}<br/><small>Unexpected subtype encountered: {subtype}</small> |
| <a id="PXT000099"></a>`PXT000099` | - | **Error retrieving account data**<br/>Erro ao recolher informações da conta {account_key}<br/><small>Error while retrieving data for account_key {account_key}</small> |
| <a id="PXT000100"></a>`PXT000100` | - | **Rejected by external analysis**<br/>A transação foi rejeitada pela análise externa<br/><small>The transaction was rejected by external analysis</small> |
| <a id="PXT000101"></a>`PXT000101` | - | **Bad Request**<br/>Não é permitido inserir valores de mínimo e máximo para tarifas de valor fixo<br/><small>It is not allowed to set a maximum or a minumum value to a fixed amount fee</small> |
| <a id="PXT000102"></a>`PXT000102` | - | **Invalid caas_client_key**<br/>A caas_client_key enviada não é válida<br/><small>There caas_client_key is not valid</small> |
| <a id="PXT000103"></a>`PXT000103` | - | {key} não foi aceito por não ser uma palavra uuid v4 válida<br/><small>{key} was not accepted for not being a valid uuid v4 string</small> |
| <a id="PXT000104"></a>`PXT000104` | - | **Invalid Transaction Amount**<br/>O valor de transação {transaction_amount} não é válido. Deve ser um valor positivo com no máximo duas casas decimais<br/><small>Transaction amount of {transaction_amount} is not valid. It must be a positive value with at maximum 2 decimal places</small> |
| <a id="PXT000105"></a>`PXT000105` | - | **Invalid end_to_end_id**<br/>O end_to_end_id enviado {end_to_end_id} não é válido<br/><small>The end_to_end_id sent {end_to_end_id} is not valid</small> |
| <a id="PXT000106"></a>`PXT000106` | - | **Failed to load pix limit used**<br/>Falha ao carregar limite pix utilizado. Caso o problema persista, por favor contate nosso suporte<br/><small>Failed to load pix limit used. Please try again. If the problem persists contact our support</small> |
| <a id="PXT000107"></a>`PXT000107` | - | **Failed to load pix limit configuration**<br/>Falha ao carregar configuração de limite pix. Caso o problema persista, por favor contate nosso suporte<br/><small>Failed to load pix limit configuration. Please try again. If the problem persists contact our support</small> |
| <a id="PXT000108"></a>`PXT000108` | - | **Bad Request**<br/>Conta de cobrança encerrada ou bloqueada<br/><small>Billing account closed or blocked</small> |
| <a id="PXT000109"></a>`PXT000109` | - | **Bad Request**<br/>request_control_key {request_control_key} já utilizada<br/><small>request_control_key {request_control_key} already in use</small> |
| <a id="PXT000110"></a>`PXT000110` | - | **Failed external analysis**<br/>A transação foi rejeitada falhou em ser validada pela análise externa<br/><small>The transaction failed to be validated by external analysis</small> |
| <a id="PXT000111"></a>`PXT000111` | - | **Bad Request**<br/>Tipo de transação pix inválida<br/><small>invalid pix transfer type sent</small> |
| <a id="PXT000112"></a>`PXT000112` | - | **Bad Request**<br/>Número de conciliação do recebedor não atende ao esperado<br/><small>Receiver Conciliation id sent does not match expected</small> |
| <a id="PXT000113"></a>`PXT000113` | - | **Bad Request**<br/>Foi identificado por request_control_key ou end_to_end_id que está requisição está sendo processada<br/><small>It has been identified by request_control_key or end_to_end_id that this request is already being processed</small> |
| <a id="PXT000114"></a>`PXT000114` | - | **Bad Request**<br/>Requester Configuration já existe para o {requester_key}<br/><small>Requester Configuration already exists for {requester_key}</small> |
| <a id="PXT000115"></a>`PXT000115` | - | **Bad Request**<br/>Saldo de conta insuficiente para a transação e a taxa<br/><small>Insufficient account balance for transfer and fee amount</small> |
| <a id="PXT000117"></a>`PXT000117` | - | **Pix Transfer Pending**<br/>Um erro ocorreu ao enviar a pix_transfer {pix_transfer.pix_transfer_key} ao SPI<br/><small>An error occurred while sending pix_transfer {pix_transfer.pix_transfer_key} to SPI</small> |
| <a id="PXT000118"></a>`PXT000118` | - | **Requester is not Pix Participant**<br/>O requisitante enviou uma alias key no entanto não é um participante do pix indireto<br/><small>The requester sent an alias key but is not a indirect pix participant</small> |
| <a id="PXT000119"></a>`PXT000119` | - | **Requester is not account Owner**<br/>O requisitante não é dono da conta enviada<br/><small>The requester is not the owner for the account sent</small> |
| <a id="PXT000120"></a>`PXT000120` | - | **Alias sent not found**<br/>Alias key vinculada à conta não encontrada<br/><small>Alias key attached to this account not found</small> |
| <a id="PXT000121"></a>`PXT000121` | - | **Pix Transfer Direction Invalid**<br/>Pix transfer direction deve ser outgoing ou incoming<br/><small>Pix transfer direction must be either outgoing or incoming</small> |
| <a id="PXT000122"></a>`PXT000122` | - | **Pix Transfer key or Request Control Key needed**<br/>Uma pix_transfer_key ou uma request_control_key deve ser fornecida<br/><small>A pix_transfer_key or a request_control_key must be provided</small> |
| <a id="PXT000123"></a>`PXT000123` | - | **Invalid Timestamp Format sent**<br/>Parametro enviado não está no formato correto {timestamp_format}<br/><small>Given parameter is not in the correct format {timestamp_format}</small> |
| <a id="PXT000124"></a>`PXT000124` | - | **Outgoing Pix Transfer not found**<br/>Parâmetros enviados não retornaram resultados<br/><small>Given parameters returned no results found</small> |
| <a id="PXT000125"></a>`PXT000125` | - | **Incoming Pix Transfer not found**<br/>Parâmetros enviados não retornaram resultados<br/><small>Given parameters returned no results found</small> |
| <a id="PXT000128"></a>`PXT000128` | - | **Bad Request**<br/>Chave Pix {pix_key} enviada não condiz com consulta. Verifique se end_to_end_id enviado está correto<br/><small>Pix key {pix_key} sent does match inquiry pix key. Verify if end_to_end_id sent is correct</small> |
| <a id="PXT000129"></a>`PXT000129` | - | **SPI Error message**<br/>Mensagem rejeitada pela SPI-ICOM<br/><small>Message rejected by SPI-ICOM</small> |
| <a id="PXT000130"></a>`PXT000130` | - | **SPI Timeout Control**<br/>Controle de timeout no SPI<br/><small>SPI Timeout Control</small> |
| <a id="PXT000131"></a>`PXT000131` | - | **Receiver Internal Error**<br/>Transação interrompida devido a erro no PSP do Recebedor<br/><small>Cancelled transaction due to receiver</small> |
| <a id="PXT000132"></a>`PXT000132` | - | **Invalid Target Account Number**<br/>Número da conta de destino é inexistente ou inválido<br/><small>Target account number is invalid</small> |
| <a id="PXT000133"></a>`PXT000133` | - | **Blocked Target Account**<br/>A conta de destino encontra-se bloqueada<br/><small>Target account is blocked</small> |
| <a id="PXT000134"></a>`PXT000134` | - | **Closed Target Account**<br/>A conta de destino encontra-se encerrada<br/><small>Target account is closed</small> |
| <a id="PXT000135"></a>`PXT000135` | - | **Unsupported Transaction**<br/>A conta de destino não suporta este tipo de transação<br/><small>Unsupported transaction for given target account</small> |
| <a id="PXT000136"></a>`PXT000136` | - | **Invalid Participant**<br/>Participante direto do SPI não é liquidante do PSP do Pagador / Recebedor<br/><small>SPI participant is not PSP settler agent of payer nor receiver</small> |
| <a id="PXT000137"></a>`PXT000137` | - | **Zero Value Payment Order**<br/>Ordem de pagamento com valor zero<br/><small>Zero value payment order</small> |
| <a id="PXT000138"></a>`PXT000138` | - | **Insufficient Funds**<br/>Saldo insuficiente na conta PI do pagador<br/><small>Insufficient funds in PI account from payer</small> |
| <a id="PXT000139"></a>`PXT000139` | - | **Return Value Too Great**<br/>Valor de devolução acima do valor de pagamento correspondente<br/><small>Return value greater than corresponding payment order</small> |
| <a id="PXT000140"></a>`PXT000140` | - | **Invalid Transactions Number**<br/>Quantidade de transações inválida<br/><small>Invalid transactions number</small> |
| <a id="PXT000141"></a>`PXT000141` | - | **Unrelated Beneficiary Document Number**<br/>CPF/CNPJ do usuário recebedor não é compatível com o titular da conta de destino<br/><small>Beneficiary document number is not that of target account owner</small> |
| <a id="PXT000142"></a>`PXT000142` | - | **Invalid Beneficiary Document Number**<br/>CPF/CNPJ da conta de destino está incorreto<br/><small>Invalid beneficiary document number</small> |
| <a id="PXT000143"></a>`PXT000143` | - | **Incorrect Message Element**<br/>Elemento da mensagem incorreto<br/><small>Incorrect message element</small> |
| <a id="PXT000144"></a>`PXT000144` | - | **Rejected Payment Order**<br/>Ordem de pagamento foi rejeitada pelo banco recebedor<br/><small>Beneficiary</small> |
| <a id="PXT000145"></a>`PXT000145` | - | **Unauthorized Payer**<br/>Participante que assinou a mensagem não é autorizado a realizar a operação na conta PI<br/><small>Signing participant is unauthorized to make a payment order for paying account</small> |
| <a id="PXT000146"></a>`PXT000146` | - | **Invalid Datetime**<br/>Data e Hora do envio da mensagem inválida<br/><small>Invalid datetime for message delivery</small> |
| <a id="PXT000147"></a>`PXT000147` | - | **Generic Error**<br/>Erro no processamento do pagamento (erro genérico)<br/><small>Error while processing payment (generic error)</small> |
| <a id="PXT000148"></a>`PXT000148` | - | **Bad Format Operation Identifier**<br/>Identificador da operação mal formatado<br/><small>Badly formatted operation</small> |
| <a id="PXT000149"></a>`PXT000149` | - | **Invalid Payer ISPB**<br/>Número ISPB do PSP do Pagador é inválido ou inexistente<br/><small>Invalid or non-existent payer</small> |
| <a id="PXT000150"></a>`PXT000150` | - | **Invalid Beneficiary ISPB**<br/>Número ISPB do banco recebedor é inválido ou inexistente<br/><small>Invalid or non-existent beneficiary</small> |
| <a id="PXT000151"></a>`PXT000151` | - | **Incorrect Type**<br/>Tipo incorreto para a conta transacional especificada<br/><small>Incorrect type for target account</small> |
| <a id="PXT000152"></a>`PXT000152` | - | **SPI Repeated E2E ID**<br/>O end_to_end_id já foi utilizado<br/><small>The end_to_end_id was already used</small> |
| <a id="PXT000153"></a>`PXT000153` | - | **Invalid Target Account Type**<br/>O tipo de conta destino não pode receber transações PIX<br/><small>The target account type can not receive PIX transactions</small> |
| <a id="PXT000154"></a>`PXT000154` | - | **Invalid ISPB**<br/>Número ISPB é inválido ou inexistente<br/><small>Invalid or non-existent ISPB number</small> |
| <a id="PXT000155"></a>`PXT000155` | - | **Amount too Great**<br/>Valor de pagamento/devolução acima do permitido para a conta de destino creditada<br/><small>Amount too great for credited account</small> |
| <a id="PXT000156"></a>`PXT000156` | - | **QR Code Rejected**<br/>QR Code rejeitado pelo PSP do usuário recebedor<br/><small>QR Code rejected by beneficiary</small> |
| <a id="PXT000157"></a>`PXT000157` | - | **Bacen Service Unavailable**<br/>Não pode enviar a mensagem para a ICOM depois de 3 tentativas<br/><small>Could not sent the message to ICOM after 3 retries</small> |
| <a id="PXT000158"></a>`PXT000158` | - | **Invalid Amount**<br/>O valor do pagamento diverge do valor esperado de {expected_amount}<br/><small>Paid amount diverges from expected amount of {expected_amount}</small> |
| <a id="PXT000159"></a>`PXT000159` | - | **QR code inactive**<br/>QR code não está ativo no instante do pagamento<br/><small>QR code is not active at the time of payment</small> |
| <a id="PXT000160"></a>`PXT000160` | - | **QR code inactive**<br/>QR code não está ativo no instante do pagamento<br/><small>QR code is not active at the time of payment</small> |
| <a id="PXT000161"></a>`PXT000161` | - |  |
| <a id="PXT000162"></a>`PXT000162` | - |  |
| <a id="PXT000163"></a>`PXT000163` | - |  |
| <a id="PXT000164"></a>`PXT000164` | - | **Unmapped Rejection Error Code**<br/>Código de recusa desconhecido do PSP recebedor<br/><small>Settlement failed, unknown error reason code from receiver PSP</small> |
| <a id="PXT000165"></a>`PXT000165` | - | **Request Control Key needed**<br/>Uma request_control_key deve ser fornecida<br/><small>A request_control_key must be provided</small> |
| <a id="PXT000166"></a>`PXT000166` | - | **Invalid Target**<br/>A conta não possui permissão para realizar transferências para a conta enviada<br/><small>Account does not have permission to transfer to the given target account</small> |
| <a id="PXT000167"></a>`PXT000167` | - | **Requester not allowed to access this endpoint**<br/>Requester não possui permissão de realizar transações pix através deste endpoint<br/><small>Requester has no permission to perform pix transfers on this endpoint</small> |
| <a id="PXT000168"></a>`PXT000168` | - | **No approver permission**<br/>Número de documento enviado não pertence a um aprovador da conta<br/><small>Given document number does not belong to an approver for this account</small> |
| <a id="PXT000169"></a>`PXT000169` | - | **tfa_info is required**<br/>Cliente deve enviar objeto tfa_info<br/><small>Client must send object tfa_info</small> |
| <a id="PXT000170"></a>`PXT000170` | - | **Error occurred while sending token**<br/>Um erro inexperado ocorreu ao tentar enviar token<br/><small>An unexpected error occurred while sending token</small> |
| <a id="PXT000171"></a>`PXT000171` | - | **Number of token validation attempts exceeded**<br/>Número máximo de tentativas de validação de token atingida<br/><small>The maximum number of failed token validation attempts has been reached</small> |
| <a id="PXT000172"></a>`PXT000172` | - | **Token Expired**<br/>Token expirado. Reenvie token ou recrie a transferência<br/><small>Token has expired. Resend token or recreate transfer</small> |
| <a id="PXT000173"></a>`PXT000173` | - | **Incorrect Token**<br/>Token enviado não condiz com, o esperado<br/><small>Token sent does not match expected</small> |
| <a id="PXT000174"></a>`PXT000174` | - | **Error Sending Token**<br/>Um erro ocorreu ao enviar token e está sendo investigado<br/><small>An error occurred while sending token and its being investigated</small> |
| <a id="PXT000175"></a>`PXT000175` | - | **Invalid Status**<br/>Pix transfer não está pendente de aprovação por autenticação de dois fatores<br/><small>Pix transfer not in pending_2fa_approval status</small> |
| <a id="PXT000176"></a>`PXT000176` | - | **Error Sending Token**<br/>Um erro ocorreu ao reenviar token e está sendo investigado<br/><small>An error occurred while resending token and its being investigated</small> |
| <a id="PXT000177"></a>`PXT000177` | - | **Pix Transfer Batch key needed**<br/>Uma pix_transfer_batch_key deve ser fornecida<br/><small>A pix_transfer_batch_key must be provided</small> |
| <a id="PXT000178"></a>`PXT000178` | - | **Pix Transfer Batch not found**<br/>Uma pix_transfer_batch não encontrada<br/><small>A pix_transfer_batch not found</small> |
| <a id="PXT000179"></a>`PXT000179` | - | **Empty pix-transfer list received**<br/>Uma lista de transferências pix deve ser fornecida<br/><small>A list of pix transfers must be provided</small> |
| <a id="PXT000180"></a>`PXT000180` | - | **Invalid Status**<br/>Pix transfer em lote não está pendente de aprovação por autenticação de dois fatores<br/><small>Pix transfer Batch not in pending_2fa_approval status</small> |
| <a id="PXT000181"></a>`PXT000181` | - | **Target PSP Timeout**<br/>Timeout do participante recebedor da ordem de pagamento<br/><small>Beneficiary</small> |
| <a id="PXT000182"></a>`PXT000182` | - | **Bad Request**<br/>A Pix transfer enviada está ligada a um lote. Ela não pode ser individualmente aprovada. Por favor aprove o lote<br/><small>The given Pix transfer is tied to a batch. It cannot be individually approved. Please approve batch</small> |
| <a id="PXT000183"></a>`PXT000183` | - | **Invalid Person Type**<br/>Pessoa Física não pode pagar tarifa de PIX<br/><small>Natural Person Cannot Pay for a PIX Fee</small> |
| <a id="PXT000184"></a>`PXT000184` | - | **Outgoing PIX Transfer must hold to be reprocessed**<br/>Transferência PIX de saída com chave {pix_transfer_key} deve aguardar para ser reprocessada<br/><small>Pix transfer key {pix_transfer_key} must wait to be reprocessed</small> |
| <a id="PXT000185"></a>`PXT000185` | - | **Invalid Limit Request Status**<br/>Status de requisição de limite pix inválida para realizar operação<br/><small>Invalid limit request status to perform request</small> |
| <a id="PXT000186"></a>`PXT000186` | - | **Invalid pix transfer Status**<br/>Status de pix inválido para realizar operação<br/><small>Invalid pix transfer status to perform request</small> |
| <a id="PXT000187"></a>`PXT000187` | - | **Reprocessing Blocked. Reversal Transaction Detected**<br/>Pix transfer não pode ser reprocessda devido a presença de reversal<br/><small>Pix transfer cannot be reprocessed due to reversal being detected</small> |
| <a id="PXT000188"></a>`PXT000188` | - | **Session ID needed**<br/>Uma session_id deve ser fornecida<br/><small>A session_id must be provided</small> |
| <a id="PXT000189"></a>`PXT000189` | - | **Token Required**<br/>Um token é necessário para validação via SMS ou email.<br/><small>A token is required for SMS or email validation.</small> |

---

# Cancelar agendamento em lote de pagamento

URL: /documentation/baas/cobranca/2fa_v2/agendamento/cancelar_agendamento_em_lote_de_pagamento

Este endpoint permite cancelar um lote de agendamento de pagamentos enquanto o lote estiver em status cancelável.

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.
:::

:::info Fatura de recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgãos públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um Boleto bancário apresenta.
:::

## Request

### Request Endpoint

ENDPOINT /account/ ACCOUNT_KEY /batch_payment_schedule/ BATCH_PAYMENT_SCHEDULE_KEY /cancel
MÉTODO PATCH

### Request Path Params

| Campo                 | Tipo  | Descrição                                        | Caracteres |
|-----------------------|-------|--------------------------------------------------|------------|
| `account_key` *       | uuid4 | Chave única de identificação da conta.           | 36         |
| `batch_payment_key` * | uuid4 | Chave única de identificação do lote de agendamento. | 36         |

## Response

### Success Response

STATUS 200

Response Body: Lote de agendamento cancelado

```json
{
  "batch_payment_schedule_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
  "total_amount": 1357.3,
  "batch_payment_schedule_status": "canceled",
  "payment_type": "bank_slip"
}
```

### Response Body Params

| Campo                           | Tipo   | Descrição |
|--------------------------------|--------|-----------|
| `batch_payment_schedule_key` * | uuid4  | Chave única de identificação do lote de agendamento. |
| `request_control_key` *        | uuid4  | Chave única de identificação da requisição do cliente (lote). |
| `account_key` *                | uuid4  | Chave da conta debitada. |
| `total_amount` *               | number | Soma dos valores dos itens do lote. |
| `batch_payment_schedule_status` * | [enum](#enumeradores-batch_payment_schedule_status) | Status do lote após a solicitação de cancelamento. |
| `payment_type` *               | [enum](#enumeradores-payment_type) | Tipo do pagamento. |

### Enumeradores batch_payment_schedule_status

| Enumerador             | Descrição                 |
|------------------------|---------------------------|
| `pending_2fa_approval` | Pendente de aprovação 2FA |
| `scheduled`            | Agendado                  |
| `rejected`             | Rejeitado                 |
| `canceled`             | Cancelado                 |
| `error`                | Erro ao agendar           |

### Enumeradores payment_type

| Enumerador        | Descrição              |
|-------------------|------------------------|
| `bank_slip`       | Boleto bancário        |
| `collection_slip` | Fatura de recolhimento |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título      | Descrição (eng)                              | Descrição (pt-br)                                      |
|-------------|-----------|-------------|----------------------------------------------|--------------------------------------------------------|
| 403         | BIP000010 | Forbidden   | User is not allowed to do this action        | Usuário não tem autorização para fazer essa ação       |
| 404         | BIP000011 | Not Found   | The source account key was not found.        | A chave da conta de origem não foi encontrada.         |
| 404         | BIP000083 | Not Found   | Batch payment not found by batch payment key.| Lote de pagamentos não encontrado pela chave do lote.  |
| 400         | BIP000085 | Bad Request | Batch payment status is not pending approval.| Status do lote de pagamentos não é de aprovação pendente. |

---

# Confirmar Agendamento de Boleto Bancário

URL: /documentation/baas/cobranca/2fa_v2/agendamento/confirmar_agendamento_de_boleto_bancario

Este endpoint permite realizar a confirmação do agendamento de pagamento de um boleto bancário.

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /payment_schedule/ PAYMENT_SCHEDULE_KEY /bank_slip/validate_token
MÉTODO PATCH

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |
| `payment_schedule_key` * | uuid4   | Chave única de identificação do agendamento. | 36         |

Request Body: Confirmação de agendamento de boleto bancário

```json
{
  "token": "329adf"
}
```

### Body Params

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `token` * | string | Código de autenticação enviado ao aprovador de movimentações da conta |

## Response

### Success Response

STATUS 200

Response Body: Agendamento confirmado

```json
{
   "payment_schedule_key":"c4325104-d60b-44f3-aae4-49155564a2ea",
   "request_control_key":"b713b2f6-2f48-4d18-b0c9-7186e4edf189",
   "payer_name":"COOPERATIVA INDUSTRIAL MURILO",
   "payer_document_number":"00037025000160",
   "source_account_key":"6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
   "paid_amount":1050.1,
   "payment_date":"2024-04-03",
   "payment_type":"bank_slip",
   "bank_slip": {
        "bank_slip_key":"95080ffd-3ac5-48d7-b3fe-659e4aaba81a",
        "barcode":"00193967000009910000000003615574000000002417",
        "digitable_line":"00190000090361557400500000024174396700000991000",
        "payer_name":"COOPERATIVA TESTE",
        "payer_document_number":"00037025000160",
        "beneficiary_name":"TESTE EQUIPAMENTOS E SERVICOS LTDA",
        "beneficiary_trading_name":"TESTE EQUIPAMENTOS E SERVICOS LTDA",
        "beneficiary_document_number":"52069937000117",
        "beneficiary_bank_ispb":"00000000",
        "guarantor_name":null,
        "guarantor_document_number":null,
        "expiration_date":"2024-03-29",
        "max_payment_data": "2026-03-29",
        "partial_payment_indicator":"allowed",
        "registered_payment_amount":9029.0,
        "nominal_amount":9910.0,
        "total_amount":10129.1,
        "rebate_amount":0.0,
        "discount_amount":0.0,
        "fine_amount":0.0,
        "interest_amount":219.1
    },
   "collection_slip":null,
   "payment_schedule_status":"scheduled"
}
```

### Response Body Params

| Campo               | Tipo    | Descrição                                           |
|---------------------|---------|-----------------------------------------------------|
| `payment_key` *               | uuid4 | Chave única de identificação do pagamento.          |
| `request_control_key` *       | uuid4 | Chave única de identificação da request do cliente. |
| `payer_name` *                | string | Nome do pagador efetivo.                            |
| `payer_document_number` *     | string | Número do documento do pagador efetivo (CPF/CNPJ).  |
| `source_account_key` *        | uuid4 | Chave da conta debitada.                            |
| `paid_amount` *               | number | Valor pago efetivamente.                            |
| `payment_date` *              | string | Data do pagamento.                                  |
| `payment_type` *              | [enum](#enumeradores-payment_type) | Tipo do pagamento.                                  |
| `bank_slip`                   | [object](#objeto-bank_slip) | Boleto bancário.                                    |
| `collection_slip`             | object | Fatura de recolhimento.                             |
| `payment_schedule_status` *            | [enum](#enumeradores-payment_schedule_status) | Status do agendamento.                              |

### Enumeradores payment_type
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

:::danger Aviso
O enumerador `collection_slip` não se aplica para o fluxo de boletos bancários, assim como o objeto collection_slip que sempre será nulo.
:::

### Enumeradores payment_schedule_status
| Enumerador          | Descrição                                                        |
|---------------------|------------------------------------------------------------------|
| `pending_2fa_approval` | Agendamento pendente de autenticação de dois fatores (2FA)       |
| `scheduled`          | Pagamento agendado com sucesso                                   |
| `executed`          | O agendamento foi executado com sucesso e o pagamento referente ao agendamento gerado |
| `rejected`          | O agendamento foi rejeitado e nenhum pagamento foi gerado             |
| `canceled`         | Agendamento cancelado                                            |
| `error`             | Erro ao realizar o agendamento                                   |

### Objeto bank_slip
| Campo                             | Tipo    | Descrição                         |
|-----------------------------------|---------|-----------------------------------|
| `barcode` *                       | string | Código de barras. |
| `digitable_line` *                | string | Linha digitável. |
| `payer_name` *                    | string | Nome do pagador.|
| `payer_document_number` *         | string | Número do documento do pagador (CPF/CNPJ). |
| `beneficiary_name` *              | string | Nome do beneficiário. |
| `beneficiary_trading_name`        | string | Nome fantasia do beneficiário. |
| `beneficiary_document_number` *   | string | Número do documento do beneficiário  (CPF/CNPJ). |
| `beneficiary_bank_ispb` *         | string | Código ispb do banco do beneficiário. |
| `guarantor_name`                  | string | Nome do sacador avalista. |
| `guarantor_document_number`       | string | Número do documento do sacador avalista (CPF/CNPJ). |
| `expiration_date` *               | string | Data de vencimento. |
| `max_payment_date` * | string  | Data máxima de pagamento. |
| `partial_payment_indicator` *     | [enum](#enumeradores-partial_payment_indicator)   | Indicador de pagamento parcial. |
| `registered_payment_amount`       | string | Valor total de pagamento registrado. |
| `nominal_amount` *                | number | Valor original. |
| `total_amount` *                  | number | Valor total. |
| `rebate_amount` *                 | number | Valor do batimento. |
| `discount_amount` *               | number | Valor do desconto. |
| `fine_amount` *                   | number | Valor da multa. |
| `interest_amount` *               | number | Valor do juros. |

### Enumeradores partial_payment_indicator
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `allowed`     | string    | Permitido     |
| `not_allowed` | string    | Não permitido |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 403         | BIP000010 | Forbidden | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404         | BIP000011 | Not Found | The source account key was not found. | A chave da conta de origem não foi encontrada. |
| 400         | BIP000012 | Bad Request | It was not possible to consult the source account at this time. Please try again in a few minutes. | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000013 | Bad Request | The source account is closed. | A conta de origem está fechada. |
| 400         | BIP000014 | Bad Request | The source account is blocked. | A conta de origem está bloqueada. |
| 400         | BIP000022 | Bad Request | Bank slip payment service is closed. | Serviço de pagamento de boleto está fechado. |
| 400         | BIP000023 | Bad Request | The source account has insufficient balance. Payment cannot be made. | A conta de origem possui saldo insuficiente. Pagamento não pode ser realizado. |
| 400         | BIP000025 | Bad Request | It was not possible to pay the bank slip at this time. Please verify your information and, if necessary, contact us for assistance. | Não foi possível pagar o boleto neste momento. Por favor, verifique suas informações e, se necessário, entre em contato conosco para assistência. |
| 400         | BIP000028 | Bad Request | The source account has blocked balance. Payment cannot be made. | A conta de origem possui saldo em conta bloqueado. Pagamento não pode ser realizado. |
| 404         | BIP000056 | Not Found | Payment not found. | Pagamento não encontrado. |
| 400         | BIP000057 | Bad Request | Payment status is not pending approval. | Status de pagamento não é de aprovação pendente. |
| 400         | BIP000058 | Bad Request | Error while validating verification token | Erro ao validar token de verificação |
| 400         | BIP000059 | Bad Request | Number of verification token validation attempts exceeded. | Número de tentativas de validação de token de verificação excedido. |
| 400         | BIP000060 | Bad Request | Verification token expired. | Token de verificação expirado. |
| 400         | BIP000061 | Bad Request | Verification token validation failed. | Falha na validação do token de verificação. |
| 400         | BIP000062 | Bad Request | Payment type is not bank slip. | Tipo de pagamento não é boleto. |
| 400         | BIP000065 | Bad Request | Payment verification time window exceeded. | Janela de tempo de verificação de pagamento excedida. |

---

# Confirmação de Pagamento de Fatura de Recolhimento

URL: /documentation/baas/cobranca/2fa_v2/agendamento/confirmar_agendamento_de_fatura_de_recolhimento

Este endpoint permite realizar a confirmação do pagamento de faturas de recolhimento.

:::info Fatura de recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgão públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um Boleto bancário apresenta.
:::

## Request

### Request Endpoint

ENDPOINT /account/ ACCOUNT_KEY /payment_schedule/ PAYMENT_SCHEDULE_KEY /collection_slip/validate_token
MÉTODO PATCH

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |
| `payment_schedule_key` * | uuid4   | Chave única de identificação do agendamento. | 36         |

Request Body: Confirmação de agendamento de fatura de recolhimento

```json
{
  "token": "329adf"
}
```

### Body Params

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `token` * | string | Código de autenticação enviado ao aprovador de movimentações da conta |

## Response

### Success Response

STATUS 200

Response Body: Agendamento confirmado

```json
{
  "payment_schedule_key": "33860ad0-bcb0-47b7-bbe7-c7e3ec2fc61a",
  "request_control_key": "ae4508df-f2cb-4e28-9f04-a19b7f2758c9",
  "payer_name": "COOPERATIVA INDUSTRIAL MURILO",
  "payer_document_number": "62069937000118",
  "source_account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "paid_amount": 1389.21,
  "payment_date": "2024-04-30",
  "payment_type": "collection_slip",
  "bank_slip": null,
  "collection_slip": {
    "barcode": null,
    "digitable_line": "836200000138892100450006762142420244046000010192",
    "collection_name": "CIA ULTRAGAZ SA-COD",
    "collection_document_number": "00394460005887",
    "expiration_date": "2024-04-15",
    "total_amount": 1389.21
  },
  "payment_status": "scheduled"
}
```

### Response Body Params

| Campo               | Tipo    | Descrição                                           |
|---------------------|---------|-----------------------------------------------------|
| `payment_key` *               | uuid4 | Chave única de identificação do pagamento.          |
| `request_control_key` *       | uuid4 | Chave única de identificação da request do cliente. |
| `payer_name` *                | string | Nome do pagador efetivo.                            |
| `payer_document_number` *     | string | Número do documento do pagador efetivo (CPF/CNPJ).  |
| `source_account_key` *        | uuid4 | Chave da conta debitada.                            |
| `paid_amount` *               | number | Valor pago efetivamente.                            |
| `payment_date` *              | string | Data do pagamento.                                  |
| `payment_type` *              | [enum](#enumeradores-payment_type) | Tipo do pagamento.                                  |
| `bank_slip`                   | object | Boleto bancário.                                    |
| `collection_slip`             | [object](#objeto-collection_slip) | Fatura de recolhimento.                             |
| `payment_schedule_status` *            | [enum](#enumeradores-payment_schedule_status) | Status do agendamento.                              |

### Enumeradores payment_type
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

:::danger Aviso
O enumerador `bank_slip` não se aplica para o fluxo de faturas de recolhimento, assim como o objeto bank_slip que sempre será nulo.
:::

### Enumeradores payment_schedule_status
| Enumerador          | Descrição                                                        |
|---------------------|------------------------------------------------------------------|
| `pending_2fa_approval` | Agendamento pendente de autenticação de dois fatores (2FA)       |
| `scheduled`          | Pagamento agendado com sucesso                                   |
| `executed`          | O agendamento foi executado com sucesso e o pagamento referente ao agendamento gerado |
| `rejected`          | O agendamento foi rejeitado e nenhum pagamento foi gerado             |
| `canceled`         | Agendamento cancelado                                            |
| `error`             | Erro ao realizar o agendamento                                   |

### Objeto collection_slip
| Campo                             | Tipo    | Descrição                         |
|-----------------------------------|---------|-----------------------------------|
| `barcode`          | string | Código de barras. |
| `digitable_line`   | string | Linha digitável. |
| `collection_name` *         | string | Nome do convênio.|
| `collection_document_number`   | string | Número de documento do convênio (CPF/CNPJ).|
| `expiration_date` *  | string  | Data de vencimento. |
| `total_amount` *  | number | Valor total. |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 403         | BIP000010 | Forbidden | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404         | BIP000011 | Not Found | The source account key was not found. | A chave da conta de origem não foi encontrada. |
| 400         | BIP000012 | Bad Request | It was not possible to consult the source account at this time. Please try again in a few minutes. | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000013 | Bad Request | The source account is closed. | A conta de origem está fechada. |
| 400         | BIP000014 | Bad Request | The source account is blocked. | A conta de origem está bloqueada. |s
| 400         | BIP000023 | Bad Request | The source account has insufficient balance. Payment cannot be made. | A conta de origem possui saldo insuficiente. Pagamento não pode ser realizado. |
| 400         | BIP000028 | Bad Request | The source account has blocked balance. Payment cannot be made. | A conta de origem possui saldo em conta bloqueado. Pagamento não pode ser realizado. |
| 400         | BIP000036 | Bad Request | Covenant slip overdue. | Fatura de recolhimento vencida. |
| 400         | BIP000038 | Bad Request | Outside of covenant payment hours. | Fora do horário de pagamento do convênio. |
| 400         | BIP000044 | Bad Request | It was not possible to pay the collection slip at this time. Please verify your information and, if necessary, contact us for assistance. | Não foi possível pagar a fatura de recolhimento neste momento. Por favor, verifique suas informações e, se necessário, entre em contato conosco para assistência. |
| 400         | BIP000045 | Bad Request | Collection slip payment service is closed. | Serviço de pagamento de fatura de recolhimento está fechado. |
| 404         | BIP000056 | Not Found | Payment not found. | Pagamento não encontrado. |
| 400         | BIP000057 | Bad Request | Payment status is not pending approval. | Status de pagamento não é de aprovação pendente. |
| 400         | BIP000058 | Bad Request | Error while validating verification token | Erro ao validar token de verificação |
| 400         | BIP000059 | Bad Request | Number of verification token validation attempts exceeded. | Número de tentativas de validação de token de verificação excedido. |
| 400         | BIP000060 | Bad Request | Verification token expired. | Token de verificação expirado. |
| 400         | BIP000061 | Bad Request | Verification token validation failed. | Falha na validação do token de verificação. |
| 400         | BIP000063 | Bad Request | Payment type is not collection slip. | Tipo de pagamento não é fatura de recolhimento. |
| 400         | BIP000065 | Bad Request | Payment verification time window exceeded. | Janela de tempo de verificação de pagamento excedida. |

---

# Confirmar agendamento em lote de boleto bancário

URL: /documentation/baas/cobranca/2fa_v2/agendamento/confirmar_agendamento_em_lote_de_boleto_bancario

Este endpoint permite validar o token de autenticação de dois fatores (2FA) de um lote de agendamento de boletos bancários em `batch_payment_schedule_status` **`pending_2fa_approval`**.

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/account/ ACCOUNT_KEY /payment/schedule_bank_slip/ BATCH_PAYMENT_SCHEDULE_KEY /validate_token
MÉTODO PATCH

### Request Path Params

| Campo                 | Tipo  | Descrição                                                                                | Caracteres |
| --------------------- | ----- | ---------------------------------------------------------------------------------------- | ---------- |
| `account_key` *       | uuid4 | Chave única de identificação da conta.                                                   | 36         |
| `batch_payment_schedule_key` * | uuid4 | Chave única de identificação do lote de agendamento. | 36         |

Request Body: Validação de token do lote de agendamento

```json
{
  "token": "329adf"
}
```

### Body Params

| Campo   | Tipo   | Descrição                                                                                                        | Caracteres |
| ------- | ------ | ---------------------------------------------------------------------------------------------------------------- | ---------- |
| `token` | string | Código de autenticação enviado ao aprovador de movimentações da conta | 6          |

## Response

### Success Response

STATUS 200

Response Body: Lote de agendamento confirmado

```json
{
  "batch_payment_schedule_key": "c4325104-d60b-44f3-aae4-49155564a2ea",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
  "total_amount": 1357.3,
  "batch_payment_schedule_status": "scheduled",
  "payment_type": "bank_slip"
}
```

### Response Body Params

| Campo                   | Tipo   | Descrição |
| ----------------------- | ------ | --------- |
| `batch_payment_schedule_key` *   | uuid4  | Chave única de identificação do agendamento em lote. |
| `request_control_key` * | uuid4  | Chave única de identificação da requisição do cliente (lote). |
| `account_key` *         | uuid4  | Chave da conta debitada. |
| `total_amount` *        | number | Soma dos valores dos itens do lote. |
| `batch_payment_schedule_status` *        | [enum](#enumeradores-batch_payment_schedule_status) | Status do lote de agendamento após a validação do token. |
| `payment_type` *        | string | Tipo do pagamento; para este fluxo, espera-se `bank_slip`. |

### Enumeradores batch_payment_schedule_status

| Enumerador    | Descrição     |
|---------------|---------------|
| `pending_2fa_approval` | Pendente de aprovação 2FA |
| `scheduled`   | Agendado |
| `rejected`    | Rejeitado |
| `error`       | Erro ao agendar |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título      | Descrição (eng)                               | Descrição (pt-br)                                                |
| ----------- | --------- | ----------- | --------------------------------------------- | ---------------------------------------------------------------- |
| 403         | BIP000010 | Forbidden   | User is not allowed to do this action         | Usuário não tem autorização para fazer essa ação                 |
| 404         | BIP000011 | Not Found   | The source account key was not found.         | A chave da conta de origem não foi encontrada.                   |
| 400         | BIP000058 | Bad Request | Error while validating verification token     | Erro ao validar token de verificação                             |
| 400         | BIP000059 | Bad Request | Number of verification token validation attempts exceeded. | Número de tentativas de validação de token de verificação excedido. |
| 400         | BIP000060 | Bad Request | Verification token expired.                   | Token de verificação expirado.                                   |
| 400         | BIP000061 | Bad Request | Verification token validation failed.       | Falha na validação do token de verificação.                      |
| 400         | BIP000065 | Bad Request | Payment verification time window exceeded.    | Janela de tempo de verificação de pagamento excedida.            |
| 404         | BIP000083 | Not Found   | Batch payment not found by batch payment key. | Lote de pagamentos não encontrado pela chave do lote.            |
| 400         | BIP000085 | Bad Request | Batch payment status is not pending approval. | Status do lote de pagamentos não é de aprovação pendente.        |
| 400         | BIP000086 | Bad Request | A token is required for SMS or email validation. | Um token é necessário para validação via SMS ou email.         |

---

# Confirmar agendamento em lote de fatura de recolhimento

URL: /documentation/baas/cobranca/2fa_v2/agendamento/confirmar_agendamento_em_lote_de_fatura_de_recolhimento

Este endpoint permite validar o token de autenticação de dois fatores (2FA) de um lote de agendamento de faturas de recolhimento em `batch_payment_schedule_status` **`pending_2fa_approval`**.

:::info Fatura de recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgãos públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um Boleto bancário apresenta.
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/account/ ACCOUNT_KEY /payment/schedule_collection_slip/ BATCH_PAYMENT_SCHEDULE_KEY /validate_token
MÉTODO PATCH

### Request Path Params

| Campo                 | Tipo  | Descrição                                                                                | Caracteres |
| --------------------- | ----- | ---------------------------------------------------------------------------------------- | ---------- |
| `account_key` *       | uuid4 | Chave única de identificação da conta.                                                   | 36         |
| `batch_payment_schedule_key` * | uuid4 | Chave única de identificação do lote de agendamento. | 36         |

Request Body: Validação de token do lote de agendamento

```json
{
  "token": "329adf"
}
```

### Body Params

| Campo   | Tipo   | Descrição                                                                                                        | Caracteres |
| ------- | ------ | ---------------------------------------------------------------------------------------------------------------- | ---------- |
| `token` | string | Código de autenticação enviado ao aprovador de movimentações da conta | 6          |

## Response

### Success Response

STATUS 200

Response Body: Lote de agendamento confirmado

```json
{
  "batch_payment_schedule_key": "33860ad0-bcb0-47b7-bbe7-c7e3ec2fc61a",
  "request_control_key": "ae4508df-f2cb-4e28-9f04-a19b7f2758c9",
  "account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "total_amount": 1939.31,
  "batch_payment_schedule_status": "scheduled",
  "payment_type": "collection_slip"
}
```

### Response Body Params

| Campo                   | Tipo   | Descrição |
| ----------------------- | ------ | --------- |
| `batch_payment_schedule_key` *   | uuid4  | Chave única de identificação do agendamento em lote. |
| `request_control_key` * | uuid4  | Chave única de identificação da requisição do cliente (lote). |
| `account_key` *         | uuid4  | Chave da conta debitada. |
| `total_amount` *        | number | Soma dos valores dos itens do lote. |
| `batch_payment_schedule_status` *        | [enum](#enumeradores-batch_payment_schedule_status) | Status do lote de agendamento após a validação do token. |
| `payment_type` *        | string | Tipo do pagamento; para este fluxo, espera-se `collection_slip`. |

### Enumeradores batch_payment_schedule_status

| Enumerador    | Descrição     |
|---------------|---------------|
| `pending_2fa_approval` | Pendente de aprovação 2FA |
| `scheduled`   | Agendado |
| `rejected`    | Rejeitado |
| `error`       | Erro ao agendar |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título      | Descrição (eng)                               | Descrição (pt-br)                                                |
| ----------- | --------- | ----------- | --------------------------------------------- | ---------------------------------------------------------------- |
| 403         | BIP000010 | Forbidden   | User is not allowed to do this action         | Usuário não tem autorização para fazer essa ação                 |
| 404         | BIP000011 | Not Found   | The source account key was not found.         | A chave da conta de origem não foi encontrada.                   |
| 400         | BIP000058 | Bad Request | Error while validating verification token     | Erro ao validar token de verificação                             |
| 400         | BIP000059 | Bad Request | Number of verification token validation attempts exceeded. | Número de tentativas de validação de token de verificação excedido. |
| 400         | BIP000060 | Bad Request | Verification token expired.                   | Token de verificação expirado.                                   |
| 400         | BIP000061 | Bad Request | Verification token validation failed.       | Falha na validação do token de verificação.                      |
| 400         | BIP000065 | Bad Request | Payment verification time window exceeded.    | Janela de tempo de verificação de pagamento excedida.            |
| 404         | BIP000083 | Not Found   | Batch payment not found by batch payment key. | Lote de pagamentos não encontrado pela chave do lote.            |
| 400         | BIP000085 | Bad Request | Batch payment status is not pending approval. | Status do lote de pagamentos não é de aprovação pendente.        |
| 400         | BIP000086 | Bad Request | A token is required for SMS or email validation. | Um token é necessário para validação via SMS ou email.         |

---

# Consultar lote de agendamento de pagamento

URL: /documentation/baas/cobranca/2fa_v2/agendamento/consultar_lote_de_agendamento_de_pagamento

Este endpoint retorna o resumo do lote de agendamento e a lista paginada dos agendamentos que o compõem (boletos bancários ou faturas de recolhimento).

Para localizar `batch_payment_schedule_key`, utilize [Listar lotes de agendamento de pagamento](./listar_lotes_de_agendamento_de_pagamento.md).

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.
:::

:::info Fatura de recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgãos públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um Boleto bancário apresenta.
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/account/ ACCOUNT_KEY /schedule/ BATCH_PAYMENT_SCHEDULE_KEY
MÉTODO GET

### Request Path Params

| Campo                        | Tipo  | Descrição                                          | Caracteres |
|-----------------------------|-------|----------------------------------------------------|------------|
| `account_key` *             | uuid4 | Chave única de identificação da conta.             | 36         |
| `batch_payment_schedule_key` * | uuid4 | Chave única de identificação do lote de agendamento. | 36         |

### Request Query String Params

| Campo       | Tipo   | Descrição                                                                     |
|-------------|--------|-------------------------------------------------------------------------------|
| `page`      | string | Número da página dos itens em `payment_schedules.data`. 1 por padrão.       |
| `page_size` | string | Tamanho da página dos itens em `payment_schedules.data`. 30 por padrão e valor máximo. |

## Response

### Success Response

STATUS 200

Response Body: Detalhes do lote de agendamento

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "total_scheduled": 10,
  "total_pending": 0,
  "total_error": 0,
  "total_amount": 1357.3,
  "batch_payment_schedule_status": "scheduled",
  "payment_schedules": {
    "pagination": {
      "current_page": 1,
      "rows_per_page": 30
    },
    "data": [
      {
        "payment_schedule_key": "c4325104-d60b-44f3-aae4-49155564a2ea",
        "request_control_key": "b713b2f6-2f48-4d18-b0c9-7186e4edf189",
        "payer_name": "COOPERATIVA INDUSTRIAL MURILO",
        "payer_document_number": "00037025000160",
        "source_account_key": "6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
        "paid_amount": 1050.1,
        "payment_date": "2024-04-03",
        "payment_type": "bank_slip",
        "bank_slip": {
          "bank_slip_key": "95080ffd-3ac5-48d7-b3fe-659e4aaba81a",
          "barcode": "00193967000009910000000003615574000000002417",
          "digitable_line": "00190000090361557400500000024174396700000991000",
          "payer_name": "COOPERATIVA TESTE",
          "payer_document_number": "00037025000160",
          "beneficiary_name": "TESTE EQUIPAMENTOS E SERVICOS LTDA",
          "beneficiary_trading_name": "TESTE EQUIPAMENTOS E SERVICOS LTDA",
          "beneficiary_document_number": "52069937000117",
          "beneficiary_bank_ispb": "00000000",
          "guarantor_name": null,
          "guarantor_document_number": null,
          "expiration_date": "2024-03-29",
          "max_payment_date": "2026-03-29",
          "partial_payment_indicator": "allowed",
          "registered_payment_amount": 9029.0,
          "nominal_amount": 9910.0,
          "total_amount": 10129.1,
          "rebate_amount": 0.0,
          "discount_amount": 0.0,
          "fine_amount": 0.0,
          "interest_amount": 219.1
        },
        "collection_slip": null,
        "payment_schedule_status": "scheduled",
        "error_reason": null
      }
    ]
  }
}
```

### Response Body Params

| Campo                           | Tipo                                     | Descrição                                                     |
|--------------------------------|------------------------------------------|---------------------------------------------------------------|
| `request_control_key` *        | uuid4                                    | Chave única de identificação da requisição do cliente (lote). |
| `total_scheduled` *            | int                                      | Quantidade de itens do lote agendados com sucesso.            |
| `total_pending` *              | int                                      | Quantidade de itens ainda pendentes no lote.                  |
| `total_error` *                | int                                      | Quantidade de itens com erro no lote.                         |
| `total_amount` *               | number                                   | Valor total do lote.                                          |
| `batch_payment_schedule_status` * | [enum](#enumeradores-batch_payment_schedule_status) | Status do lote de agendamento.                                |
| `payment_schedules` *          | [object](#objeto-payment_schedules)      | Lista paginada dos agendamentos do lote.                      |

### Objeto payment_schedules

| Campo          | Tipo                         | Descrição                                                |
|----------------|------------------------------|----------------------------------------------------------|
| `pagination` * | [object](#objeto-pagination) | Paginação da lista de agendamentos do lote.             |
| `data` *       | array                        | Itens do lote (agendamentos individuais).               |

Cada elemento de `payment_schedules.data` contém:

| Campo                     | Tipo                                 | Descrição                                                                      |
|--------------------------|--------------------------------------|--------------------------------------------------------------------------------|
| `payment_schedule_key` * | uuid4                                | Chave única de identificação do agendamento.                                   |
| `request_control_key` *  | uuid4                                | Chave única de identificação da requisição do cliente para o item do lote.     |
| `payer_name` *           | string                               | Nome do pagador efetivo.                                                       |
| `payer_document_number` *| string                               | Número de documento do pagador efetivo (CPF/CNPJ).                             |
| `source_account_key` *   | uuid4                                | Chave da conta debitada.                                                       |
| `paid_amount` *          | number                               | Valor agendado para pagamento.                                                 |
| `payment_date` *         | string                               | Data do agendamento.                                                           |
| `payment_type` *         | [enum](#enumeradores-payment_type)   | Tipo do pagamento.                                                             |
| `bank_slip`              | [object](#objeto-bank_slip)          | Boleto bancário. Pode ser `null` quando `payment_type` for `collection_slip`. |
| `collection_slip`        | [object](#objeto-collection_slip)    | Fatura de recolhimento. Pode ser `null` quando `payment_type` for `bank_slip`.|
| `payment_schedule_status` * | [enum](#enumeradores-payment_schedule_status) | Status do agendamento.                                                         |
| `error_reason`           | string                               | Motivo do erro, quando aplicável; caso contrário `null`.                       |

### Objeto pagination

| Campo             | Tipo | Descrição                           |
|------------------|------|-------------------------------------|
| `current_page` * | int  | Página atual retornada.             |
| `rows_per_page` *| int  | Quantidade de registros por página. |

### Enumeradores payment_type

| Enumerador        | Descrição              |
|-------------------|------------------------|
| `bank_slip`       | Boleto bancário        |
| `collection_slip` | Fatura de recolhimento |

### Enumeradores payment_schedule_status

| Enumerador             | Descrição                                                        |
|------------------------|------------------------------------------------------------------|
| `pending_2fa_approval` | Agendamento pendente de autenticação de dois fatores (2FA)       |
| `scheduled`            | Pagamento agendado com sucesso                                   |
| `executed`             | O agendamento foi executado com sucesso e o pagamento foi gerado |
| `rejected`             | O agendamento foi rejeitado e nenhum pagamento foi gerado        |
| `canceled`             | Agendamento cancelado                                            |
| `error`                | Erro ao realizar o agendamento                                   |

### Enumeradores batch_payment_schedule_status

| Enumerador             | Descrição                 |
|------------------------|---------------------------|
| `pending_2fa_approval` | Pendente de aprovação 2FA |
| `scheduled`            | Agendado                  |
| `rejected`             | Rejeitado                 |
| `canceled`             | Cancelado                 |
| `error`                | Erro ao agendar           |

### Objeto bank_slip

| Campo                           | Tipo                                            | Descrição                                           |
|--------------------------------|-------------------------------------------------|-----------------------------------------------------|
| `bank_slip_key` *              | uuid4                                           | Chave única de identificação do boleto bancário.    |
| `barcode` *                    | string                                          | Código de barras.                                   |
| `digitable_line` *             | string                                          | Linha digitável.                                    |
| `payer_name` *                 | string                                          | Nome do pagador.                                    |
| `payer_document_number` *      | string                                          | Número de documento do pagador (CPF/CNPJ).          |
| `beneficiary_name` *           | string                                          | Nome do beneficiário.                               |
| `beneficiary_trading_name`     | string                                          | Nome fantasia do beneficiário.                      |
| `beneficiary_document_number` *| string                                          | Número de documento do beneficiário (CPF/CNPJ).     |
| `beneficiary_bank_ispb` *      | string                                          | Código ispb do banco do beneficiário.               |
| `guarantor_name`               | string                                          | Nome do sacador avalista.                           |
| `guarantor_document_number`    | string                                          | Número de documento do sacador avalista (CPF/CNPJ). |
| `expiration_date` *            | string                                          | Data de vencimento.                                 |
| `max_payment_date` *           | string                                          | Data máxima de pagamento.                           |
| `partial_payment_indicator` *  | [enum](#enumeradores-partial_payment_indicator) | Indicador de pagamento parcial.                     |
| `registered_payment_amount`    | number                                          | Valor total de pagamento registrado.                |
| `nominal_amount` *             | number                                          | Valor original.                                     |
| `total_amount` *               | number                                          | Valor total.                                        |
| `rebate_amount` *              | number                                          | Valor do abatimento.                                |
| `discount_amount` *            | number                                          | Valor do desconto.                                  |
| `fine_amount` *                | number                                          | Valor da multa.                                     |
| `interest_amount` *            | number                                          | Valor dos juros.                                    |

### Enumeradores partial_payment_indicator

| Enumerador    | Descrição     |
|---------------|---------------|
| `allowed`     | Permitido     |
| `not_allowed` | Não permitido |

### Objeto collection_slip

| Campo                          | Tipo   | Descrição                                   |
|--------------------------------|--------|---------------------------------------------|
| `barcode` *                    | string | Código de barras.                           |
| `digitable_line` *             | string | Linha digitável.                            |
| `collection_name` *            | string | Nome do convênio.                           |
| `collection_document_number` * | string | Número de documento do convênio (CPF/CNPJ). |
| `expiration_date` *            | string | Data de vencimento.                         |
| `total_amount` *               | number | Valor total.                                |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título      | Descrição (eng)                                                 | Descrição (pt-br)                                              |
|-------------|-----------|-------------|-----------------------------------------------------------------|----------------------------------------------------------------|
| 400         | BIP000027 | Bad Request | Invalid integer value for page or size query string parameters. | Valor inválido para parâmetros de página ou tamanho de página. |
| 404         | BIP000083 | Not Found   | Batch payment not found by batch payment key.                   | Lote de pagamentos não encontrado pela chave do lote.          |

---

# Listar lotes de agendamento de pagamento

URL: /documentation/baas/cobranca/2fa_v2/agendamento/listar_lotes_de_agendamento_de_pagamento

Este endpoint retorna os lotes de agendamento de pagamentos de boletos bancários e faturas de recolhimento associados à conta, com suporte a filtros e paginação.

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.
:::

:::info Fatura de recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgãos públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um Boleto bancário apresenta.
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/account/ ACCOUNT_KEY /schedules
MÉTODO GET

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |

### Request Query String Params

| Campo                          | Tipo        | Descrição                         |
|--------------------------------|-------------|-----------------------------------|
| `request_control_key`          | uuid4       | Chave única de identificação da requisição do cliente (lote). |
| `batch_payment_schedule_key`   | uuid4       | Chave única de identificação do lote de agendamento. |
| `payment_type`                 | [enum](#enumeradores-payment_type) | Tipo do pagamento do lote. |
| `batch_payment_schedule_status`| [enum](#enumeradores-batch_payment_schedule_status) | Status do lote de agendamento. |
| `date_from`                    | string      | Data inicial. Formato `YYYY-MM-DD`. |
| `date_to`                      | string      | Data final. Formato `YYYY-MM-DD`. |
| `page`                         | string      | Número da página requisitada. 1 por padrão. |
| `page_size`                    | string      | Tamanho da página requisitada na consulta. 30 por padrão e valor máximo. |

### Enumeradores payment_type

| Enumerador        | Tipo   | Descrição              |
|-------------------|--------|------------------------|
| `bank_slip`       | string | Boleto bancário        |
| `collection_slip` | string | Fatura de recolhimento |

### Enumeradores batch_payment_schedule_status

| Enumerador             | Descrição                          |
|------------------------|------------------------------------|
| `pending_2fa_approval` | Pendente de aprovação 2FA          |
| `scheduled`            | Agendado                           |
| `rejected`             | Rejeitado                          |
| `canceled`             | Cancelado                          |
| `error`                | Erro ao agendar                    |

## Response

### Success Response

STATUS 200

Response Body: Listagem de lotes de agendamento

```json
{
  "pagination": {
    "current_page": 1,
    "rows_per_page": 30
  },
  "data": [
    {
      "batch_payment_schedule_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "batch_payment_schedule_status": "scheduled",
      "payment_type": "bank_slip",
      "total_scheduled": 10,
      "total_pending": 0,
      "total_error": 0,
      "total_amount": 1357.3
    }
  ]
}
```

### Response Body Params

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `pagination` *      | [object](#objeto-pagination) | Informações de paginação da consulta. |
| `data` *            | array   | Lista de lotes encontrados. |

Cada elemento de `data` contém:

| Campo                           | Tipo    | Descrição                         |
|---------------------------------|---------|-----------------------------------|
| `batch_payment_schedule_key` *  | uuid4   | Chave única de identificação do lote de agendamento. |
| `request_control_key` *         | uuid4   | Chave única de identificação da requisição do cliente (lote). |
| `batch_payment_schedule_status` * | [enum](#enumeradores-batch_payment_schedule_status-1) | Status atual do lote de agendamento. |
| `payment_type` *                | [enum](#enumeradores-payment_type-1) | Tipo do pagamento do lote. |
| `total_scheduled` *             | int     | Quantidade de itens do lote agendados com sucesso. |
| `total_pending` *               | int     | Quantidade de itens ainda pendentes no lote. |
| `total_error` *                 | int     | Quantidade de itens com erro no lote. |
| `total_amount` *                | number  | Valor total do lote. |

### Objeto pagination

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `current_page` *    | int     | Página atual retornada. |
| `rows_per_page` *   | int     | Quantidade de registros por página. |

### Enumeradores payment_type

| Enumerador        | Descrição              |
|-------------------|------------------------|
| `bank_slip`       | Boleto bancário        |
| `collection_slip` | Fatura de recolhimento |

### Enumeradores batch_payment_schedule_status

| Enumerador             | Descrição                 |
|------------------------|---------------------------|
| `pending_2fa_approval` | Pendente de aprovação 2FA |
| `scheduled`            | Agendado                  |
| `rejected`             | Rejeitado                 |
| `canceled`             | Cancelado                 |
| `error`                | Erro ao agendar           |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 400         | BIP000026 | Bad Request | Invalid payment date format. The correct format is YYYY-MM-DD. | Formato de data de pagamento inválido. O formato correto é YYYY-MM-DD. |
| 400         | BIP000027 | Bad Request | Invalid integer value for page or size query string parameters. | Valor inválido para parâmetros de página ou tamanho de página. |
| 400         | BIP000047 | Bad Request | Invalid payment type. | Tipo de pagamento inválido. |

---

# Reenviar Token Autenticação de Dois Fatores de Agendamento de Boleto Bancário

URL: /documentation/baas/cobranca/2fa_v2/agendamento/reenviar_token_de_agendamento_boleto_bancario

Este endpoint permite realizar o reenvio do token de autenticação de agendamento de Boletos Bancários.

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /payment_schedule/ PAYMENT_SCHEDULE_KEY /bank_slip/resend_token
MÉTODO PATCH

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |
| `payment_schedule_key` * | uuid4   | Chave única de identificação do agendamento. | 36         |

### Body Params

| Campo          | Tipo   | Descrição                                                                                 | Caracteres |
|----------------|--------|-------------------------------------------------------------------------------------------|------------|
| `contact_type` | enumerator | Forma de envio do token de autenticação | **[Enumerador contact_type](#enumerador-contact_type)** |

:::info Informação
Caso não seja enviado um `contact_type`, o token será enviado da forma solicitada originalmente.
:::

| Enumerador | Descrição                                         |
|------------|---------------------------------------------------|
| **sms**    | Envio por Mensagem de Texto para telefone celular |
| **email**  | Envio por correio eletrônico                      |

## Response

### Success Response

STATUS 200

Response Body: Token reenviado com sucesso

```json
{
   "payment_schedule_key":"c4325104-d60b-44f3-aae4-49155564a2ea",
   "request_control_key":"b713b2f6-2f48-4d18-b0c9-7186e4edf189",
   "payer_name":"COOPERATIVA INDUSTRIAL MURILO",
   "payer_document_number":"00037025000160",
   "source_account_key":"6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
   "paid_amount":1050.1,
   "payment_date":"2024-04-03",
   "payment_type":"bank_slip",
   "bank_slip": {
        "bank_slip_key":"95080ffd-3ac5-48d7-b3fe-659e4aaba81a",
        "barcode":"00193967000009910000000003615574000000002417",
        "digitable_line":"00190000090361557400500000024174396700000991000",
        "payer_name":"COOPERATIVA TESTE",
        "payer_document_number":"00037025000160",
        "beneficiary_name":"TESTE EQUIPAMENTOS E SERVICOS LTDA",
        "beneficiary_trading_name":"TESTE EQUIPAMENTOS E SERVICOS LTDA",
        "beneficiary_document_number":"52069937000117",
        "beneficiary_bank_ispb":"00000000",
        "guarantor_name":null,
        "guarantor_document_number":null,
        "expiration_date":"2024-03-29",
        "max_payment_data": "2026-03-29",
        "partial_payment_indicator":"allowed",
        "registered_payment_amount":9029.0,
        "nominal_amount":9910.0,
        "total_amount":10129.1,
        "rebate_amount":0.0,
        "discount_amount":0.0,
        "fine_amount":0.0,
        "interest_amount":219.1
    },
   "collection_slip":null,
   "payment_schedule_status":"pending_2fa_approval"
}
```

### Response Body Params

| Campo               | Tipo    | Descrição                                           |
|---------------------|---------|-----------------------------------------------------|
| `payment_key` *               | uuid4 | Chave única de identificação do pagamento.          |
| `request_control_key` *       | uuid4 | Chave única de identificação da request do cliente. |
| `payer_name` *                | string | Nome do pagador efetivo.                            |
| `payer_document_number` *     | string | Número documento do pagador efetivo (CPF/CNPJ).     |
| `source_account_key` *        | uuid4 | Chave da conta debitada.                            |
| `transaction_key` *           | uuid4 | Chave da transação do pagamento.                    |
| `transaction_revert_key`      | uuid4 | Chave da transação de reversão do pagamento.        |
| `paid_amount` *               | number | Valor pago efetivamente.                            |
| `payment_date` *              | string | Data do pagamento.                                  |
| `payment_type` *              | [enum](#enumeradores-payment_type) | Tipo do pagamento.                                  |
| `bank_slip`                   | [object](#objeto-bank_slip) | Boleto bancário.                                    |
| `collection_slip`             | object | Fatura de recolhimento.                             |
| `payment_schedule_status` *            | [enum](#enumeradores-payment_schedule_status) | Status do agendamento.                              |

### Enumeradores payment_type
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

:::danger Aviso
O enumerador `collection_slip` não se aplica para o fluxo de boletos bancários, assim como o objeto collection_slip que sempre será nulo.
:::

### Enumeradores payment_schedule_status
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `pending_2fa_approval`    | string  | pendente de aprovação de dois fatores |

### Objeto bank_slip
| Campo                             | Tipo    | Descrição                         |
|-----------------------------------|---------|-----------------------------------|
| `barcode` *                       | string | Código de barras. |
| `digitable_line` *                | string | Linha digitável. |
| `payer_name` *                    | string | Nome do pagador.|
| `payer_document_number` *         | string | Número de documento do pagador (CPF/CNPJ). |
| `beneficiary_name` *              | string | Nome do beneficiário. |
| `beneficiary_trading_name`        | string | Nome fantasia do beneficiário. |
| `beneficiary_document_number` *   | string | Número de documento do beneficiário (CPF/CNPJ). |
| `beneficiary_bank_ispb` *         | string | Código ispb do banco do beneficiário. |
| `guarantor_name`                  | string | Nome do sacador avalista. |
| `guarantor_document_number`       | string | Número de documento do sacador avalista (CPF/CNPJ). |
| `expiration_date` *               | string | Data de vencimento. |
| `max_payment_date` * | string  | Data máxima de pagamento. |
| `partial_payment_indicator` *     | [enum](#enumeradores-partial_payment_indicator)   | Indicador de pagamento parcial. |
| `registered_payment_amount`       | string | Valor total de pagamento registrado. |
| `nominal_amount` *                | number | Valor original. |
| `total_amount` *                  | number | Valor total. |
| `rebate_amount` *                 | number | Valor do abatimento. |
| `discount_amount` *               | number | Valor do desconto. |
| `fine_amount` *                   | number | Valor da multa. |
| `interest_amount` *               | number | Valor do juros. |

### Enumeradores partial_payment_indicator
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `allowed`     | string    | Permitido     |
| `not_allowed` | string    | Não permitido |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 403         | BIP000010 | Forbidden | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404         | BIP000011 | Not Found | The source account key was not found. | A chave da conta de origem não foi encontrada. |
| 400         | BIP000012 | Bad Request | It was not possible to consult the source account at this time. Please try again in a few minutes. | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000013 | Bad Request | The source account is closed. | A conta de origem está fechada. |
| 400         | BIP000014 | Bad Request | The source account is blocked. | A conta de origem está bloqueada. |
| 404         | BIP000056 | Not Found | Payment not found. | Pagamento não encontrado. |
| 400         | BIP000057 | Bad Request | Payment status is not pending approval. | Status de pagamento não é de aprovação pendente. |
| 400         | BIP000062 | Bad Request | Payment type is not bank slip. | Tipo de pagamento não é boleto. |
| 400         | BIP000064 | Bad Request | Error resending verification token | Erro ao reenviar token de verificação |
| 400         | BIP000065 | Bad Request | Payment verification time window exceeded. | Janela de tempo de verificação de pagamento excedida. |

---

# Reenviar Token Autenticação de Dois Fatores de Agendamento de Fatura de Recolhimento

URL: /documentation/baas/cobranca/2fa_v2/agendamento/reenviar_token_de_agendamento_de_fatura_de_recolhimento

Este endpoint permite realizar o reenvio do token de autenticação de agendamento de Faturas de Recolhimento.

:::info Fatura de recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgão públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um Boleto bancário apresenta.
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /payment_schedule/ PAYMENT_SCHEDULE_KEY /collection_slip/resend_token
MÉTODO PATCH

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |
| `payment_schedule_key` * | uuid4   | Chave única de identificação do agendamento. | 36         |

## Response

### Success Response

STATUS 200

Response Body: Token reenviado com sucesso

```json
{
  "payment_schedule_key": "33860ad0-bcb0-47b7-bbe7-c7e3ec2fc61a",
  "request_control_key": "ae4508df-f2cb-4e28-9f04-a19b7f2758c9",
  "payer_name": "COOPERATIVA INDUSTRIAL MURILO",
  "payer_document_number": "62069937000118",
  "source_account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "paid_amount": 1389.21,
  "payment_date": "2024-04-30",
  "payment_type": "collection_slip",
  "bank_slip": null,
  "collection_slip": {
    "barcode": null,
    "digitable_line": "836200000138892100450006762142420244046000010192",
    "collection_name": "CIA ULTRAGAZ SA-COD",
    "collection_document_number": "00394460005887",
    "expiration_date": "2024-04-15",
    "total_amount": 1389.21
  },
  "payment_schedule_status": "pending_2fa_approval"
}
```

### Response Body Params

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `payment_key` *               | uuid4 | Chave única de identificação do pagamento. |
| `request_control_key` *       | uuid4 | Chave única de identificação da request do cliente. |
| `payer_name` *                | string | Nome do pagador efetivo.|
| `payer_document_number` *     | string | Número de documento do pagador efetivo (CPF/CNPJ). |
| `source_account_key` *        | uuid4 | Chave da conta debitada. |
| `transaction_key` *           | uuid4 | Chave da transação do pagamento. |
| `transaction_revert_key`      | uuid4 | Chave da transação de reversão do pagamento. |
| `paid_amount` *               | number | Valor pago efetivamente. |
| `payment_date` *              | string | Data do pagamento. |
| `payment_type` *              | [enum](#enumeradores-payment_type) | Tipo do pagamento. |
| `bank_slip`                   | object | Boleto bancário. |
| `collection_slip`             | [object](#objeto-collection_slip) | Fatura de recolhimento. |
| `payment_schedule_status` *            | [enum](#enumeradores-payment_schedule_status) | Status do pagamento. |

### Enumeradores payment_type
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

:::danger Aviso
O enumerador `bank_slip` não se aplica para o fluxo de faturas de recolhimento, assim como o objeto bank_slip que sempre será nulo.
:::

### Enumeradores payment_schedule_status
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `pending_2fa_approval`    | string  | pendente de aprovação de dois fatores |

### Objeto collection_slip
| Campo                             | Tipo    | Descrição                         |
|-----------------------------------|---------|-----------------------------------|
| `barcode`          | string | Código de barras. |
| `digitable_line`   | string | Linha digitável. |
| `collection_name` *         | string | Nome do convênio.|
| `collection_document_number`   | string | Número de documento do convênio (CPF/CNPJ).|
| `expiration_date` *  | string  | Data de vencimento. |
| `total_amount` *  | number | Valor total. |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 403         | BIP000010 | Forbidden | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404         | BIP000011 | Not Found | The source account key was not found. | A chave da conta de origem não foi encontrada. |
| 400         | BIP000012 | Bad Request | It was not possible to consult the source account at this time. Please try again in a few minutes. | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000013 | Bad Request | The source account is closed. | A conta de origem está fechada. |
| 400         | BIP000014 | Bad Request | The source account is blocked. | A conta de origem está bloqueada. |
| 404         | BIP000056 | Not Found | Payment not found. | Pagamento não encontrado. |
| 400         | BIP000057 | Bad Request | Payment status is not pending approval. | Status de pagamento não é de aprovação pendente. |
| 400         | BIP000063 | Bad Request | Payment type is not collection slip. | Tipo de pagamento não é fatura de recolhimento. |
| 400         | BIP000064 | Bad Request | Error resending verification token | Erro ao reenviar token de verificação |
| 400         | BIP000065 | Bad Request | Payment verification time window exceeded. | Janela de tempo de verificação de pagamento excedida. |

---

# Reenviar token de autenticação de dois fatores de agendamento em lote de boleto bancário

URL: /documentation/baas/cobranca/2fa_v2/agendamento/reenviar_token_de_agendamento_em_lote_de_boleto_bancario

Este endpoint permite **reenviar** o token de autenticação de dois fatores (2FA) para um lote de agendamento de boletos bancários que esteja em `batch_payment_schedule_status` **`pending_2fa_approval`**.

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/account/ ACCOUNT_KEY /payment/schedule_bank_slip/ BATCH_PAYMENT_SCHEDULE_KEY /resend_token
MÉTODO PATCH

### Request Path Params

| Campo                 | Tipo  | Descrição                                                                                | Caracteres |
| --------------------- | ----- | ---------------------------------------------------------------------------------------- | ---------- |
| `account_key` *       | uuid4 | Chave única de identificação da conta.                                                   | 36         |
| `batch_payment_schedule_key` * | uuid4 | Chave única de identificação do lote de agendamento. | 36         |

### Request Body

Request Body (opcional)

```json
{
  "contact_type": "sms"
}
```

### Body Params

| Campo          | Tipo       | Descrição                               | Caracteres                                              |
| -------------- | ---------- | --------------------------------------- | ------------------------------------------------------- |
| `contact_type` | enumerator | Forma de envio do token de autenticação | **[Enumerador contact_type](#enumerador-contact_type)** |

:::info Informação
Caso não seja enviado um `contact_type`, o token será enviado da forma solicitada originalmente no agendamento do lote (`tfa_info.contact_type`).
:::

### Enumerador contact_type

| Enumerador | Descrição                                         |
| ---------- | ------------------------------------------------- |
| **sms**    | Envio por mensagem de texto para telefone celular |
| **email**  | Envio por correio eletrônico                      |

## Response

### Success Response

STATUS 200

Response Body: Token reenviado com sucesso

```json
{
  "batch_payment_schedule_key": "c4325104-d60b-44f3-aae4-49155564a2ea",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
  "total_amount": 1357.3,
  "batch_payment_schedule_status": "pending_2fa_approval",
  "payment_type": "bank_slip"
}
```

### Response Body Params

| Campo                   | Tipo   | Descrição |
| ----------------------- | ------ | --------- |
| `batch_payment_schedule_key` *   | uuid4  | Chave única de identificação do agendamento em lote. |
| `request_control_key` * | uuid4  | Chave única de identificação da requisição do cliente (lote). |
| `account_key` *         | uuid4  | Chave da conta debitada. |
| `total_amount` *        | number | Soma dos valores dos itens do lote. |
| `batch_payment_schedule_status` *        | string | Após o reenvio, o lote permanece aguardando validação do token (`pending_2fa_approval`). |
| `payment_type` *        | string | Tipo do pagamento; para este fluxo, espera-se `bank_slip`. |

Em seguida, utilize [Confirmar agendamento em lote de boleto bancário](./confirmar_agendamento_em_lote_de_boleto_bancario.md) para concluir o 2FA.

### Error Response

STATUS 4XX

Response Body

```json
{
  "title": "Título",
  "description": "Description in english",
  "translation": "Descrição em português",
  "code": "Código"
}
```

| Código HTTP | Código QI | Título      | Descrição (eng)                                                                                    | Descrição (pt-br)                                                                                         |
| ----------- | --------- | ----------- | -------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| 403         | BIP000010 | Forbidden   | User is not allowed to do this action                                                              | Usuário não tem autorização para fazer essa ação                                                          |
| 404         | BIP000011 | Not Found   | The source account key was not found.                                                              | A chave da conta de origem não foi encontrada.                                                            |
| 400         | BIP000012 | Bad Request | It was not possible to consult the source account at this time. Please try again in a few minutes. | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000059 | Bad Request | Number of verification token validation attempts exceeded.                                         | Número de tentativas de validação de token de verificação excedido.                                       |
| 400         | BIP000064 | Bad Request | Error resending verification token                                                                 | Erro ao reenviar token de verificação                                                                     |
| 400         | BIP000065 | Bad Request | Payment verification time window exceeded.                                                         | Janela de tempo de verificação de pagamento excedida.                                                     |
| 404         | BIP000083 | Not Found   | Batch payment not found by batch payment key.                                                      | Lote de pagamentos não encontrado pela chave do lote.                                                     |
| 400         | BIP000085 | Bad Request | Batch payment status is not pending approval.                                                      | Status do lote de pagamentos não é de aprovação pendente.                                                 |

---

# Reenviar token de autenticação de dois fatores de agendamento em lote de fatura de recolhimento

URL: /documentation/baas/cobranca/2fa_v2/agendamento/reenviar_token_de_agendamento_em_lote_de_fatura_de_recolhimento

Este endpoint permite **reenviar** o token de autenticação de dois fatores (2FA) para um lote de agendamento de faturas de recolhimento que esteja em `batch_payment_schedule_status` **`pending_2fa_approval`**.

:::info Fatura de recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgãos públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um Boleto bancário apresenta.
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/account/ ACCOUNT_KEY /payment/schedule_collection_slip/ BATCH_PAYMENT_SCHEDULE_KEY /resend_token
MÉTODO PATCH

### Request Path Params

| Campo                 | Tipo  | Descrição                                                                                | Caracteres |
| --------------------- | ----- | ---------------------------------------------------------------------------------------- | ---------- |
| `account_key` *       | uuid4 | Chave única de identificação da conta.                                                   | 36         |
| `batch_payment_schedule_key` * | uuid4 | Chave única de identificação do lote de agendamento. | 36         |

### Request Body

Request Body (opcional)

```json
{
  "contact_type": "sms"
}
```

### Body Params

| Campo          | Tipo       | Descrição                               | Caracteres                                              |
| -------------- | ---------- | --------------------------------------- | ------------------------------------------------------- |
| `contact_type` | enumerator | Forma de envio do token de autenticação | **[Enumerador contact_type](#enumerador-contact_type)** |

:::info Informação
Caso não seja enviado um `contact_type`, o token será enviado da forma solicitada originalmente no agendamento do lote (`tfa_info.contact_type`).
:::

### Enumerador contact_type

| Enumerador | Descrição                                         |
| ---------- | ------------------------------------------------- |
| **sms**    | Envio por mensagem de texto para telefone celular |
| **email**  | Envio por correio eletrônico                      |

## Response

### Success Response

STATUS 200

Response Body: Token reenviado com sucesso

```json
{
  "batch_payment_schedule_key": "33860ad0-bcb0-47b7-bbe7-c7e3ec2fc61a",
  "request_control_key": "ae4508df-f2cb-4e28-9f04-a19b7f2758c9",
  "account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "total_amount": 1939.31,
  "batch_payment_schedule_status": "pending_2fa_approval",
  "payment_type": "collection_slip"
}
```

### Response Body Params

| Campo                   | Tipo   | Descrição |
| ----------------------- | ------ | --------- |
| `batch_payment_schedule_key` *   | uuid4  | Chave única de identificação do agendamento em lote. |
| `request_control_key` * | uuid4  | Chave única de identificação da requisição do cliente (lote). |
| `account_key` *         | uuid4  | Chave da conta debitada. |
| `total_amount` *        | number | Soma dos valores dos itens do lote. |
| `batch_payment_schedule_status` *        | string | Após o reenvio, o lote permanece aguardando validação do token (`pending_2fa_approval`). |
| `payment_type` *        | string | Tipo do pagamento; para este fluxo, espera-se `collection_slip`. |

Em seguida, utilize [Confirmar agendamento em lote de fatura de recolhimento](./confirmar_agendamento_em_lote_de_fatura_de_recolhimento.md) para concluir o 2FA.

### Error Response

STATUS 4XX

Response Body

```json
{
  "title": "Título",
  "description": "Description in english",
  "translation": "Descrição em português",
  "code": "Código"
}
```

| Código HTTP | Código QI | Título      | Descrição (eng)                                                                                    | Descrição (pt-br)                                                                                         |
| ----------- | --------- | ----------- | -------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| 403         | BIP000010 | Forbidden   | User is not allowed to do this action                                                              | Usuário não tem autorização para fazer essa ação                                                          |
| 404         | BIP000011 | Not Found   | The source account key was not found.                                                              | A chave da conta de origem não foi encontrada.                                                            |
| 400         | BIP000012 | Bad Request | It was not possible to consult the source account at this time. Please try again in a few minutes. | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000059 | Bad Request | Number of verification token validation attempts exceeded.                                         | Número de tentativas de validação de token de verificação excedido.                                       |
| 400         | BIP000064 | Bad Request | Error resending verification token                                                                 | Erro ao reenviar token de verificação                                                                     |
| 400         | BIP000065 | Bad Request | Payment verification time window exceeded.                                                         | Janela de tempo de verificação de pagamento excedida.                                                     |
| 404         | BIP000083 | Not Found   | Batch payment not found by batch payment key.                                                      | Lote de pagamentos não encontrado pela chave do lote.                                                     |
| 400         | BIP000085 | Bad Request | Batch payment status is not pending approval.                                                      | Status do lote de pagamentos não é de aprovação pendente.                                                 |

---

# Solicitar Agendamento de Pagamento de Boleto Bancário com Autenticação de Dois Fatores (2FA)

URL: /documentation/baas/cobranca/2fa_v2/agendamento/solicitar_agendamento_de_boleto_bancario

Este endpoint permite realizar a solicitação de agendamento de pagamento de boletos bancários. 
A solicitação deve ser realizado após a consulta, utilizando as informações retornadas 
para garantir o funcionamento correto do fluxo, evitando falhas durante o processo.

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). 
Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de 
pagamento autorizadas a funcionar pelo Banco Central.
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /payment_schedule/bank_slip
MÉTODO POST

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |

Request Body: Solicitação de agendamento com linha digitável

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "digitable_line": "00190000090361557400500000024174396700000991000",
  "payment_amount": 1156.8,
  "payment_date": "2024-03-30",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  }
}
```
Request Body: Solicitação de agendamento com código de barras

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "barcode": "00190000090361557400500000024174396700000991000",
  "payment_amount": 1156.8,
  "payment_date": "2024-03-30",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  }
}
```

### Body Params

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da request do cliente. |    
| `barcode`               | string    | Código de barras. |
| `digitable_line`        | string    | Linha digitável. |
| `payment_amount` *      | number    | Valor a ser pago. |
| `payment_date` *        | string | Data do agendamento.                                |
| `tfa_info` *            | [object](#objeto-tfa_info)    | Objeto contendo o documento da pessoa aprovadora da conta e a forma de contato. | 

:::danger Aviso
O `payment_amount` deve sempre igual ao `total_amount` retornado na consulta do boleto bancário caso o pagamento parcial não seja permitido para o boleto bancário. Para títulos em que o pagamento parcial é permitido, o cliente pode escolher o `payment_amount`, desde que a soma do mesmo com o `registered_payment_amount` do boleto bancário não seja superior que o `total_amount`.
:::

### Objeto tfa_info
| Campo                       | Tipo    | Descrição                         |
|-----------------------------|---------|-----------------------------------|
| `approver_document_number`* | string | Número de documento da pessoa aprovadora da conta. | 
| `contact_type`*             | enumerator | Forma de envio do token de autenticação | **[Enumerador contact_type](#enumerador-contact_type)** |

| Enumerador | Descrição                                         |
|------------|---------------------------------------------------|
| **sms**    | Envio por Mensagem de Texto para telefone celular |
| **email**  | Envio por correio eletrônico                      |

## Response

### Success Response

STATUS 201

Response Body: Agendamento pendente de aprovação de dois fatores

```json
{
   "payment_schedule_key":"c4325104-d60b-44f3-aae4-49155564a2ea",
   "request_control_key":"b713b2f6-2f48-4d18-b0c9-7186e4edf189",
   "payer_name":"COOPERATIVA INDUSTRIAL MURILO",
   "payer_document_number":"00037025000160",
   "source_account_key":"6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
   "paid_amount":1050.1,
   "payment_date":"2024-04-03",
   "payment_type":"bank_slip",
   "bank_slip": {
        "barcode":"00193967000009910000000003615574000000002417",
        "digitable_line":"00190000090361557400500000024174396700000991000",
        "payer_name":"COOPERATIVA TESTE",
        "payer_document_number":"00037025000160",
        "beneficiary_name":"TESTE EQUIPAMENTOS E SERVICOS LTDA",
        "beneficiary_trading_name":"TESTE EQUIPAMENTOS E SERVICOS LTDA",
        "beneficiary_document_number":"52069937000117",
        "beneficiary_bank_ispb":"00000000",
        "guarantor_name":null,
        "guarantor_document_number":null,
        "expiration_date":"2024-03-29",
        "max_payment_data": "2026-03-29",
        "partial_payment_indicator":"allowed",
        "registered_payment_amount":9029.0,
        "nominal_amount":9910.0,
        "total_amount":10129.1,
        "rebate_amount":0.0,
        "discount_amount":0.0,
        "fine_amount":0.0,
        "interest_amount":219.1
    },
   "collection_slip":null,
   "payment_schedule_status":"pending_2fa_approval"
}
```

### Response Body Params

| Campo               | Tipo    | Descrição                                           |
|---------------------|---------|-----------------------------------------------------|
| `payment_key` *               | uuid4 | Chave única de identificação do pagamento.          |
| `request_control_key` *       | uuid4 | Chave única de identificação da request do cliente. |
| `payer_name` *                | string | Nome do pagador efetivo.                            |
| `payer_document_number` *     | string | Número do documento do pagador efetivo  (CPF/CNPJ). |
| `source_account_key` *        | uuid4 | Chave da conta debitada.                            |
| `transaction_key` *           | uuid4 | Chave da transação do pagamento.                    |
| `transaction_revert_key`      | uuid4 | Chave da transação de reversão do pagamento.        |
| `paid_amount` *               | number | Valor pago efetivamente.                            |
| `payment_date` *              | string | Data do agendamento.                                |
| `payment_type` *              | [enum](#enumeradores-payment_type) | Tipo do pagamento.                                  |
| `bank_slip`                   | [object](#objeto-bank_slip) | Boleto bancário.                                    |
| `collection_slip`             | object | Fatura de recolhimento.                             |
| `payment_schedule_status` *            | [enum](#enumeradores-payment_schedule_status) | Status do agendamento.                              |

### Enumeradores payment_type
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

:::danger Aviso
O enumerador `collection_slip` não se aplica para o fluxo de boletos bancários, assim como o objeto collection_slip que sempre será nulo.
:::

### Enumeradores payment_schedule_status
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `pending_2fa_approval`    | string  | pendente de aprovação de dois fatores |

### Objeto bank_slip
| Campo                             | Tipo    | Descrição                         |
|-----------------------------------|---------|-----------------------------------|
| `barcode` *                       | string | Código de barras. |
| `digitable_line` *                | string | Linha digitável. |
| `payer_name` *                    | string | Nome do pagador.|
| `payer_document_number` *         | string | Número do documento do pagador (CPF/CNPJ). |
| `beneficiary_name` *              | string | Nome do beneficiário. |
| `beneficiary_trading_name`        | string | Nome fantasia do beneficiário. |
| `beneficiary_document_number` *   | string | Número do documento do beneficiário (CPF/CNPJ). |
| `beneficiary_bank_ispb` *         | string | Código ispb do banco do beneficiário. |
| `guarantor_name`                  | string | Nome do sacador avalista. |
| `guarantor_document_number`       | string | Número do documento do sacador avalista (CPF/CNPJ). |
| `expiration_date` *               | string | Data de vencimento. |
| `max_payment_date` * | string  | Data máxima de pagamento. |
| `partial_payment_indicator` *     | [enum](#enumeradores-partial_payment_indicator)   | Indicador de pagamento parcial. |
| `registered_payment_amount`       | string | Valor total de pagamento registrado. |
| `nominal_amount` *                | number | Valor original. |
| `total_amount` *                  | number | Valor total. |
| `rebate_amount` *                 | number | Valor do abatimento. |
| `discount_amount` *               | number | Valor do desconto. |
| `fine_amount` *                   | number | Valor da multa. |
| `interest_amount` *               | number | Valor do juros. |

### Enumeradores partial_payment_indicator
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `allowed`     | string    | Permitido     |
| `not_allowed` | string    | Não permitido |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 400         | BIP000001 | Bad Request | The barcode or digitable line must have 44 or 47 characters. | O código de barras ou linha digitável deve ter 44 ou 47 caracteres. |
| 400         | BIP000002 | Bad Request | The bill sent does not correspond to a bank slip. | A conta enviado não corresponde a um boleto bancário. |
| 400         | BIP000003 | Bad Request | The digitable line sent is invalid. | A linha digitável enviada é inválida. |
| 404         | BIP000004 | Not Found | The bank slip was not found. | O boleto não foi encontrado. |
| 400         | BIP000005 | Bad Request | It was not possible to consult the bank slip at this time. Please try again in a few minutes. | Não foi possível consultar o boleto neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000006 | Bad Request | Bank slip already written off | Boleto já baixado |
| 400         | BIP000007 | Bad Request | Bank slip blocked for payment | Boleto bloqueado para pagamento |
| 400         | BIP000008 | Bad Request | Bank slip already paid | Boleto já pago |
| 400         | BIP000009 | Bad Request | Invalid bank slip. Please consult issuing bank | Boleto inválido. Favor consultar banco emissor |
| 403         | BIP000010 | Forbidden | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404         | BIP000011 | Not Found | The source account key was not found. | A chave da conta de origem não foi encontrada. |
| 400         | BIP000012 | Bad Request | It was not possible to consult the source account at this time. Please try again in a few minutes. | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000013 | Bad Request | The source account is closed. | A conta de origem está fechada. |
| 400         | BIP000014 | Bad Request | The source account is blocked. | A conta de origem está bloqueada. |
| 400         | BIP000015 | Bad Request | Payment date is greater than the maximum payment date. | A data de pagamento é maior que a data máxima de pagamento. |
| 400         | BIP000016 | Bad Request | Payment date is smaller than the calculation date. | A data de pagamento é menor que a data de cálculo. |
| 400         | BIP000017 | Bad Request | Invalid payment amount. | Valor de pagamento inválido. |
| 400         | BIP000018 | Bad Request | Partial payment is not allowed. | Pagamento parcial não é permitido. |
| 400         | BIP000019 | Bad Request | The payment amount is greater than the available amount. | O valor do pagamento é maior que o valor disponível. |
| 400         | BIP000020 | Bad Request | All partial payments for this bank slip have already been made. | Todos os pagamentos parciais deste boleto já foram realizados. |
| 400         | BIP000024 | Bad Request | Request control key already exists. | Chave de controle da requisição já existe. |
| 403         | BIP000052 | Forbidden | Given document number does not belong to an approver for this account | Número de documento enviado não pertence a um aprovador da conta |
| 400         | BIP000053 | Bad Request | Error getting approver data | Erro ao obter dados do aprovador |
| 400         | BIP000054 | Bad Request | TFA info required | Informações de TFA necessárias |
| 400         | BIP000055 | Bad Request | Error sending verification token | Erro ao enviar token de verificação |
| 400         | BIP000065 | Bad Request | Payment verification time window exceeded. | Janela de tempo de verificação de pagamento excedida. |

## Ambiente de Sandbox

Em nosso ambiente de sandbox, disponibilizamos linhas digitáveis mockadas para a simulação de pagamentos bem-sucedidos e testes de cenários de erro.

| Linha digitável |
|-----------------|
| 00190000090361557400500000024174396700000991000 |
| 00190000090282802601919212747174596760001294161 |
| 23793390014000000455277000249001596900000103995 |
| 75691434020137513680900001040013196770002417240 |
| 21390001171200000570700168167484796770000148206 |
| 34191090083273252027893634770007296690012513600 |
| 42297048060005815702500130494123896770000239491 |
| 07090010287045349010776686070590896770001160123 |
| 74891123702849020818918378871083196690000050000 |
| 23792374119000209350986000372408496610000122810 |

---

# Solicitar Agendamento de Pagamento de Facutara de Recolhimento com Autenticação de Dois Fatores (2FA)

URL: /documentation/baas/cobranca/2fa_v2/agendamento/solicitar_agendamento_de_pagamento_de_fatura_de_recolhimento

Este endpoint permite realizar a solicitação de agendamento de pagamento de faturas de recolhimento com autenticação de dois fatores. 
A solicitação deve ser realizado após a consulta, utilizando as informações retornadas para garantir o funcionamento correto do fluxo,
evitando falhas durante o processo.

:::info Fatura de recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgão públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um Boleto bancário apresenta.
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /payment_schedule/collection_slip
MÉTODO POST

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |

Request Body: Solicitação de com linha digitável

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "digitable_line": "00190000090361557400500000024174396700000991000",
  "payment_amount": 1156.8,
  "payment_date": "2024-03-30",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  }
}
```
Request Body: Solicitação de agendamento com código de barras

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "barcode": "00190000090361557400500000024174396700000991000",
  "payment_amount": 1156.8,
  "payment_date": "2024-03-30",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  }
}
```

### Body Params

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da request do cliente. |    
| `barcode`               | string    | Código de barras. |
| `digitable_line`        | string    | Linha digitável. |
| `payment_amount` *      | number    | Valor a ser pago. |
| `tfa_info` *            | [object](#objeto-tfa_info)    | Objeto contendo o documento da pessoa aprovadora da conta e a forma de contato. | 

:::danger Aviso
O `payment_amount` deve sempre igual ao `total_amount` retornado na consulta do boleto bancário.
:::

### Objeto tfa_info
| Campo                       | Tipo    | Descrição                         |
|-----------------------------|---------|-----------------------------------|
| `approver_document_number`* | string | Número de documento da pessoa aprovadora da conta (CPF/CNPJ). | 
| `contact_type`*             | enumerator | Forma de envio do token de autenticação | **[Enumerador contact_type](#enumerador-contact_type)** |

| Enumerador | Descrição                                         |
|------------|---------------------------------------------------|
| **sms**    | Envio por Mensagem de Texto para telefone celular |
| **email**  | Envio por correio eletrônico                      |

## Response

### Success Response

STATUS 201

Response Body: Agendamento pendente de aprovação de dois fatores

```json
{
  "payment_key": "33860ad0-bcb0-47b7-bbe7-c7e3ec2fc61a",
  "request_control_key": "ae4508df-f2cb-4e28-9f04-a19b7f2758c9",
  "payer_name": "COOPERATIVA INDUSTRIAL MURILO",
  "payer_document_number": "62069937000118",
  "source_account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "paid_amount": 1389.21,
  "payment_date": "2024-04-30",
  "payment_type": "collection_slip",
  "bank_slip": null,
  "collection_slip": {
    "barcode": null,
    "digitable_line": "836200000138892100450006762142420244046000010192",
    "collection_name": "CIA ULTRAGAZ SA-COD",
    "collection_document_number": "00394460005887",
    "expiration_date": "2024-04-15",
    "total_amount": 1389.21
  },
  "payment_schedule_status": "pending_2fa_approval"
}
```

### Response Body Params

| Campo               | Tipo    | Descrição                                           |
|---------------------|---------|-----------------------------------------------------|
| `payment_key` *               | uuid4 | Chave única de identificação do pagamento.          |
| `request_control_key` *       | uuid4 | Chave única de identificação da request do cliente. |
| `payer_name` *                | string | Nome do pagador efetivo.                            |
| `payer_document_number` *     | string | Documento do pagador efetivo (CPF/CNPJ).            |
| `source_account_key` *        | uuid4 | Chave da conta debitada.                            |
| `transaction_key` *           | uuid4 | Chave da transação do pagamento.                    |
| `transaction_revert_key`      | uuid4 | Chave da transação de reversão do pagamento.        |
| `paid_amount` *               | number | Valor pago efetivamente.                            |
| `payment_date` *              | string | Data do agendamento.                                |
| `payment_type` *              | [enum](#enumeradores-payment_type) | Tipo do pagamento.                                  |
| `bank_slip`                   | object | Boleto bancário.                                    |
| `collection_slip`             | [object](#objeto-collection_slip) | Fatura de recolhimento.                             |
| `payment_schedule_status` *            | [enum](#enumeradores-payment_schedule_status) | Status do agendamento.                              |

### Enumeradores payment_type
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

:::danger Aviso
O enumerador `bank_slip` não se aplica para o fluxo de faturas de recolhimento, assim como o objeto bank_slip que sempre será nulo.
:::

### Enumeradores payment_schedule_status
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `pending_2fa_approval`    | string  | pendente de aprovação de dois fatores |

### Objeto collection_slip
| Campo                             | Tipo    | Descrição                         |
|-----------------------------------|---------|-----------------------------------|
| `barcode`          | string | Código de barras. |
| `digitable_line`   | string | Linha digitável. |
| `collection_name` *         | string | Nome do convênio.|
| `collection_document_number`   | string | Número de documento do convênio (CPF/CNPJ).|
| `expiration_date` *  | string  | Data de vencimento. |
| `total_amount` *  | number | Valor total. |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 400         | BIP000032 | Bad Request | The bill sent does not correspond to a collection slip. | A conta enviada não corresponde a uma fatura de recolhimento. |
| 400         | BIP000033 | Bad Request | The barcode or digitable line of the collection slip must have 44 or 48 characters. | O código de barras ou linha digitável da fatura de recolhimento deve ter 44 ou 48 caracteres. |
| 403         | BIP000010 | Forbidden | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404         | BIP000011 | Not Found | The source account key was not found. | A chave da conta de origem não foi encontrada. |
| 400         | BIP000012 | Bad Request | It was not possible to consult the source account at this time. Please try again in a few minutes. | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000013 | Bad Request | The source account is closed. | A conta de origem está fechada. |
| 400         | BIP000014 | Bad Request | The source account is blocked. | A conta de origem está bloqueada. |
| 400         | BIP000024 | Bad Request | Request control key already exists. | Chave de controle da requisição já existe. |
| 400         | BIP000028 | Bad Request | The source account has blocked balance. Payment cannot be made. | A conta de origem possui saldo em conta bloqueado. Pagamento não pode ser realizado. |
| 400         | BIP000034 | Bad Request | Collection slip already paid. | Fatura de recolhimento já paga. |
| 400         | BIP000035 | Bad Request | Covenant slip invalid barcode. | Código de barras da fatura de recolhimento inválido. |
| 400         | BIP000036 | Bad Request | Covenant slip overdue. | Fatura de recolhimento vencida. |
| 400         | BIP000037 | Bad Request | Error in collection slip consultation. | Erro na consulta da fatura de recolhimento. |
| 400         | BIP000038 | Bad Request | Outside of covenant payment hours. | Fora do horário de pagamento do convênio. |
| 400         | BIP000039 | Bad Request | Collection slip not accepted. | Fatura de recolhimento não aceita. |
| 400         | BIP000040 | Bad Request | Minimum advance not reached. | Mínimo de dias de adiantamento não atingido. |
| 400         | BIP000041 | Bad Request | Max payment amount exceeded. | Valor máximo de pagamento excedido. |
| 400         | BIP000044 | Bad Request | It was not possible to pay the collection slip at this time. Please verify your information and, if necessary, contact us for assistance. | Não foi possível pagar a fatura de recolhimento neste momento. Por favor, verifique suas informações e, se necessário, entre em contato conosco para assistência. |
| 403         | BIP000052 | Forbidden | Given document number does not belong to an approver for this account | Número de documento enviado não pertence a um aprovador da conta |
| 400         | BIP000053 | Bad Request | Error getting approver data | Erro ao obter dados do aprovador |
| 400         | BIP000054 | Bad Request | TFA info required | Informações de TFA necessárias |
| 400         | BIP000055 | Bad Request | Error sending verification token | Erro ao enviar token de verificação |
| 400         | BIP000065 | Bad Request | Payment verification time window exceeded. | Janela de tempo de verificação de pagamento excedida. |

## Ambiente de Sandbox

Em nosso ambiente de sandbox, disponibilizamos linhas digitáveis mockadas para a simulação de pagamentos bem-sucedidos e testes de cenários de erro.

| Linha digitável |
|---|
| 828300000007411100972013905080001546763201900028 |
| 838000000009235700481007241345219112001474229880 |
| 848000000006308600802021201071261517689002201070 |
| 858200000015000000643025703477209504800448091020 |
| 858500000037350000643217212883260006147448091022 |

---

# Solicitar agendamento em lote de boleto bancário com autenticação de dois fatores (2FA)

URL: /documentation/baas/cobranca/2fa_v2/agendamento/solicitar_agendamento_em_lote_de_boleto_bancario

Este endpoint permite solicitar o **agendamento em lote** de boletos bancários em uma única requisição, com autenticação de dois fatores quando aplicável.

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/account/ ACCOUNT_KEY /payments_schedule/batch_bank_slip
MÉTODO POST

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |

Request Body: Agendamento em lote de boletos bancários

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "bank_slip_payment_schedules": [
    {
      "request_control_key": "c7915a43-212f-5813-9adc-d3ed5d3d3bfd",
      "digitable_line": "00190000090361557400500000024174396700000991000",
      "payment_amount": 1156.8,
      "payment_date": "2026-04-10"
    },
    {
      "request_control_key": "d8a26b54-323a-4924-0aed-e4fe6e4e4c0e",
      "barcode": "00190000090361557400500000024174396700000991000",
      "payment_amount": 200.5,
      "payment_date": "2026-04-15"
    }
  ],
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  }
}
```

### Body Params

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da requisição do cliente (lote). |
| `bank_slip_payment_schedules` * | array     | Lista de agendamentos de boleto bancário. Limite de **1000** itens por requisição. |
| `tfa_info` *            | [object](#objeto-tfa_info)    | Objeto contendo o documento da pessoa aprovadora da conta e a forma de contato. |

Cada elemento de `bank_slip_payment_schedules` deve conter:

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da requisição do cliente para aquele item do lote. |
| `barcode`               | string    | Código de barras. |
| `digitable_line`        | string    | Linha digitável. |
| `payment_amount` *      | number    | Valor a ser pago. |
| `payment_date` *        | string    | Data do agendamento do item. |

:::danger Aviso
Para cada item, o `payment_amount` deve seguir as regras do título retornadas na consulta do boleto bancário. Se o pagamento parcial não for permitido, o valor deve corresponder ao total atualizado do título.
:::

### Objeto tfa_info

| Campo                       | Tipo    | Descrição                         |
|-----------------------------|---------|-----------------------------------|
| `approver_document_number`* | string | Número de documento da pessoa aprovadora da conta (CPF/CNPJ). |
| `contact_type`*             | enumerator | Forma de envio do token de autenticação | **[Enumerador contact_type](#enumerador-contact_type)** |

| Enumerador | Descrição                                         |
|------------|---------------------------------------------------|
| **sms**    | Envio por mensagem de texto para telefone celular |
| **email**  | Envio por correio eletrônico                      |

## Response

### Success Response

STATUS 202

Response Body: Lote de agendamento pendente de aprovação de dois fatores

```json
{
  "batch_payment_schedule_key": "c4325104-d60b-44f3-aae4-49155564a2ea",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
  "total_amount": 1357.3,
  "batch_payment_schedule_status": "pending_2fa_approval",
  "payment_type": "bank_slip"
}
```

### Response Body Params

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `batch_payment_schedule_key` *       | uuid4 | Chave única de identificação do agendamento em lote. |
| `request_control_key` *     | uuid4 | Chave única de identificação da requisição do cliente (lote). |
| `account_key` *             | uuid4 | Chave da conta debitada. |
| `total_amount` *            | number | Soma dos valores (`payment_amount`) dos itens do lote. |
| `batch_payment_schedule_status` *         | [enum](#enumeradores-batch_payment_schedule_status) | Status do lote de agendamento após a solicitação. |
| `payment_type` *            | [enum](#enumeradores-payment_type) | Tipo do pagamento. |

### Enumeradores batch_payment_schedule_status

| Enumerador    | Descrição     |
|---------------|---------------|
| `pending_2fa_approval` | Pendente de aprovação 2FA |
| `scheduled`   | Agendado |
| `rejected`    | Rejeitado |
| `error`       | Erro ao agendar |

### Enumeradores payment_type

| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

:::danger Aviso
O enumerador `collection_slip` não se aplica ao fluxo de agendamento em lote de boletos bancários deste endpoint; para este caso, espera-se `payment_type` com valor `bank_slip`.
:::

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 403         | BIP000010 | Forbidden | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404         | BIP000011 | Not Found | The source account key was not found. | A chave da conta de origem não foi encontrada. |
| 400         | BIP000012 | Bad Request | It was not possible to consult the source account at this time. Please try again in a few minutes. | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000024 | Bad Request | Request control key already exists. | Chave de controle da requisição já existe. |
| 400         | BIP000052 | Bad Request | Given document number does not belong to an approver for this account | Número de documento enviado não pertence a um aprovador da conta |
| 400         | BIP000053 | Bad Request | Error getting approver data | Erro ao obter dados do aprovador |
| 400         | BIP000054 | Bad Request | TFA info required | Informações de TFA necessárias |
| 400         | BIP000055 | Bad Request | Error sending verification token | Erro ao enviar token de verificação |
| 400         | BIP000065 | Bad Request | Payment verification time window exceeded. | Janela de tempo de verificação de pagamento excedida. |

---

# Solicitar agendamento em lote de fatura de recolhimento com autenticação de dois fatores (2FA)

URL: /documentation/baas/cobranca/2fa_v2/agendamento/solicitar_agendamento_em_lote_de_fatura_de_recolhimento

Este endpoint permite solicitar o **agendamento em lote** de faturas de recolhimento (convênio/tributo) em uma única requisição, com autenticação de dois fatores quando aplicável.

:::info Fatura de recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgãos públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um Boleto bancário apresenta.
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/account/ ACCOUNT_KEY /payments_schedule/batch_collection_slip
MÉTODO POST

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |

Request Body: Agendamento em lote de faturas de recolhimento

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "collection_slip_payment_schedules": [
    {
      "request_control_key": "c7915a43-212f-5813-9adc-d3ed5d3d3bfd",
      "digitable_line": "836200000138892100450006762142420244046000010192",
      "payment_amount": 1389.21,
      "payment_date": "2026-04-10"
    },
    {
      "request_control_key": "d8a26b54-323a-4924-0aed-e4fe6e4e4c0e",
      "barcode": "836200000138892100450006762142420244046000010192",
      "payment_amount": 550.10,
      "payment_date": "2026-04-15"
    }
  ],
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  }
}
```

### Body Params

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da requisição do cliente (lote). |
| `collection_slip_payment_schedules` * | array     | Lista de agendamentos de fatura de recolhimento. Limite de **1000** itens por requisição. |
| `tfa_info` *            | [object](#objeto-tfa_info)    | Objeto contendo o documento da pessoa aprovadora da conta e a forma de contato. |

Cada elemento de `collection_slip_payment_schedules` deve conter:

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da requisição do cliente para aquele item do lote. |
| `barcode`               | string    | Código de barras. |
| `digitable_line`        | string    | Linha digitável. |
| `payment_amount` *      | number    | Valor a ser pago. |
| `payment_date` *        | string    | Data do agendamento do item. |

### Objeto tfa_info

| Campo                       | Tipo    | Descrição                         |
|-----------------------------|---------|-----------------------------------|
| `approver_document_number`* | string | Número de documento da pessoa aprovadora da conta (CPF/CNPJ). |
| `contact_type`*             | enumerator | Forma de envio do token de autenticação | **[Enumerador contact_type](#enumerador-contact_type)** |

| Enumerador | Descrição                                         |
|------------|---------------------------------------------------|
| **sms**    | Envio por mensagem de texto para telefone celular |
| **email**  | Envio por correio eletrônico                      |

## Response

### Success Response

STATUS 202

Response Body: Lote de agendamento pendente de aprovação de dois fatores

```json
{
  "batch_payment_schedule_key": "33860ad0-bcb0-47b7-bbe7-c7e3ec2fc61a",
  "request_control_key": "ae4508df-f2cb-4e28-9f04-a19b7f2758c9",
  "account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "total_amount": 1939.31,
  "batch_payment_schedule_status": "pending_2fa_approval",
  "payment_type": "collection_slip"
}
```

### Response Body Params

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `batch_payment_schedule_key` *       | uuid4 | Chave única de identificação do agendamento em lote. |
| `request_control_key` *     | uuid4 | Chave única de identificação da requisição do cliente (lote). |
| `account_key` *             | uuid4 | Chave da conta debitada. |
| `total_amount` *            | number | Soma dos valores (`payment_amount`) dos itens do lote. |
| `batch_payment_schedule_status` *         | [enum](#enumeradores-batch_payment_schedule_status) | Status do lote de agendamento após a solicitação. |
| `payment_type` *            | [enum](#enumeradores-payment_type) | Tipo do pagamento. |

### Enumeradores batch_payment_schedule_status

| Enumerador    | Descrição     |
|---------------|---------------|
| `pending_2fa_approval` | Pendente de aprovação 2FA |
| `scheduled`   | Agendado |
| `rejected`    | Rejeitado |
| `error`       | Erro ao agendar |

### Enumeradores payment_type

| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

:::danger Aviso
O enumerador `bank_slip` não se aplica ao fluxo de agendamento em lote de faturas de recolhimento deste endpoint; para este caso, espera-se `payment_type` com valor `collection_slip`.
:::

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 400         | BIP000032 | Bad Request | The bill sent does not correspond to a collection slip. | A conta enviada não corresponde a uma fatura de recolhimento. |
| 400         | BIP000033 | Bad Request | The barcode or digitable line of the collection slip must have 44 or 48 characters. | O código de barras ou linha digitável da fatura de recolhimento deve ter 44 ou 48 caracteres. |
| 403         | BIP000010 | Forbidden | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404         | BIP000011 | Not Found | The source account key was not found. | A chave da conta de origem não foi encontrada. |
| 400         | BIP000012 | Bad Request | It was not possible to consult the source account at this time. Please try again in a few minutes. | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000024 | Bad Request | Request control key already exists. | Chave de controle da requisição já existe. |
| 403         | BIP000052 | Forbidden | Given document number does not belong to an approver for this account | Número de documento enviado não pertence a um aprovador da conta |
| 400         | BIP000053 | Bad Request | Error getting approver data | Erro ao obter dados do aprovador |
| 400         | BIP000054 | Bad Request | TFA info required | Informações de TFA necessárias |
| 400         | BIP000055 | Bad Request | Error sending verification token | Erro ao enviar token de verificação |
| 400         | BIP000065 | Bad Request | Payment verification time window exceeded. | Janela de tempo de verificação de pagamento excedida. |

---

# Confirmação de lote de pagamento de boleto bancário

URL: /documentation/baas/cobranca/2fa_v2/confirmacao_de_lote_de_boleto_bancario

Este documento descreve a **mesma rota** de [Confirmação de lote de pagamento de boleto bancário](../confirmacao_de_lote_de_boleto_bancario.md) quando a operação exige **autenticação de dois fatores (2FA)** na etapa de confirmação: o corpo da requisição deve incluir **`tfa_info`** junto com `batch_status: approved` ou `batch_status: rejected`. Em seguida, o lote pode ficar em `pending_2fa_approval` (aprovação) ou `pending_2fa_rejection` (rejeição) até a **validação do token**.

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/account/**ACCOUNT_KEY**/payment/batch_bank_slip/**PAYMENT_BATCH_KEY**/confirmation
MÉTODO PATCH

### Request Path Params

| Campo                 | Tipo  | Descrição                                                                                | Caracteres |
| --------------------- | ----- | ---------------------------------------------------------------------------------------- | ---------- |
| `account_key` *       | uuid4 | Chave única de identificação da conta.                                                   | 36         |
| `payment_batch_key` * | uuid4 | Chave única de identificação do lote (`batch_payment_key` retornado na criação do lote). | 36         |

### Request Body

**Request Body: Rejeição do lote (com `tfa_info`)**

```json
{
  "batch_status": "rejected",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  }
}
```

**Request Body: Aprovação do lote (com `tfa_info`)**

```json
{
  "batch_status": "approved",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  }
}
```

### Body Params

| Campo            | Tipo   | Descrição                                                                                                                                                                                                                                                                                                                                              |
| ---------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `batch_status` * | string | Decisão sobre o lote. Valores: `approved` (seguir com o processamento) ou `rejected` (cancelar o lote). Ver [enumerador batch_confirmation_status](#enumerador-batch_confirmation_status).                                                                                                                                                     |
| `tfa_info`       | object | Obrigatório neste fluxo com `batch_status: approved` ou `batch_status: rejected`; informe aprovador e canal de envio do token em [objeto tfa_info](#objeto-tfa_info). |

### Enumerador batch_confirmation_status

| Valor      | Descrição                                                     |
| ---------- | ------------------------------------------------------------- |
| `approved` | Aprovar o lote e continuar o fluxo de processamento.          |
| `rejected` | Rejeitar o lote; não há processamento assíncrono dos boletos. |

### Objeto tfa_info

| Campo                        | Tipo   | Descrição                                                                                                                                          |
| ---------------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| `approver_document_number` * | string | Documento (CPF) da pessoa aprovadora que receberá o token. Obrigatório quando `tfa_info` é enviado.                                                |
| `contact_type` *             | string | Canal para envio do token (por exemplo `sms` ou `email`), conforme regras da operação e cadastro. Obrigatório quando `tfa_info` é enviado. |

## Response

O status HTTP e o campo `batch_status` na resposta dependem da decisão enviada e de o fluxo exigir validação do token após esta chamada.

### Resposta: lote rejeitado — pendência de validação do token (2FA)

STATUS 202

Quando `batch_status` no corpo da requisição é `rejected` e a requisição inclui `tfa_info`, a API responde com **202**. O lote fica aguardando validação do token; o corpo retorna `batch_status` como `pending_2fa_rejection`. Após a validação do token, a decisão de rejeição é aplicada.

**Response Body: Lote aguardando validação do token (decisão de rejeição)**

```json
{
  "batch_payment_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
  "total_amount": 1357.3,
  "batch_status": "pending_2fa_approval",
  "payment_type": "bank_slip"
}
```

### Resposta: lote aprovado — pendência de validação do token (2FA)

STATUS 202

Quando `batch_status` no corpo é `approved` e a requisição inclui `tfa_info`, a API responde com **202**. O lote fica aguardando validação do token; o corpo retorna `batch_status` como `pending_2fa_approval`. Os passos seguintes (envio do código, validação e reenvio) estão em [Validação de token de lote de pagamento de boleto bancário](./validacao_de_token_de_lote_de_boleto_bancario.md) e [Reenviar token de confirmação de lote de pagamento de boleto bancário](./solicitacao_de_reenvio_de_token_de_lote_de_boleto_bancario.md).

**Response Body: Lote aguardando validação do token**

```json
{
  "batch_payment_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
  "total_amount": 1357.3,
  "batch_status": "pending_2fa_rejection",
  "payment_type": "bank_slip"
}
```

### Response Body Params

| Campo                   | Tipo   | Descrição                                                                                                                                                                                                                                                                     |
| ----------------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `batch_payment_key` *   | uuid4  | Chave única de identificação do pagamento em lote.                                                                                                                                                                                                                            |
| `request_control_key` * | uuid4  | Chave única de identificação da requisição do cliente (lote).                                                                                                                                                                                                                 |
| `account_key` *         | uuid4  | Chave da conta debitada.                                                                                                                                                                                                                                                      |
| `total_amount` *        | number | Soma dos valores dos itens do lote.                                                                                                                                                                                                                                           |
| `batch_status` *        | string | Nesta chamada, o lote permanece em `pending_2fa_approval` (aprovação) ou `pending_2fa_rejection` (rejeição) até a validação do token. Após a validação, o status final reflete a decisão enviada na confirmação (`approved` ou `rejected`). |
| `payment_type` *        | string | Tipo do pagamento; para este fluxo, espera-se `bank_slip`.                                                                                                                                                                                                                    |

### Error Response

STATUS 4XX

**Response Body**

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título      | Descrição (eng)                               | Descrição (pt-br)                                     |
| ----------- | --------- | ----------- | --------------------------------------------- | ----------------------------------------------------- |
| 400         | BIP000013 | Bad Request | The source account is closed.                 | A conta de origem está fechada.                       |
| 400         | BIP000050 | Bad Request | Requester configuration does not exist        | Configuração do requester não existe.                 |
| 400         | BIP000054 | Bad Request | TFA info required.                            | Informações de TFA necessárias.                       |
| 404         | BIP000083 | Not Found   | Batch payment not found by batch payment key. | Lote de pagamentos não encontrado pela chave do lote. |
| 400         | BIP000084 | Bad Request | Batch payment status is not pending.          | O status do lote de pagamentos não está pendente.     |

---

# Confirmação de lote de pagamento de fatura de recolhimento (convênio/tributo)

URL: /documentation/baas/cobranca/2fa_v2/confirmacao_de_lote_de_fatura_de_recolhimento

Este documento descreve a **mesma rota** de [Confirmação de lote de pagamento de fatura de recolhimento (convênio/tributo)](../confirmacao_de_lote_de_fatura_de_recolhimento.md) quando a operação exige **autenticação de dois fatores (2FA)** na etapa de confirmação: o corpo da requisição deve incluir **`tfa_info`** junto com `batch_status: approved` ou `batch_status: rejected`. Em seguida, o lote pode ficar em `pending_2fa_approval` (aprovação) ou `pending_2fa_rejection` (rejeição) até a **validação do token**.

:::info Fatura de recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgãos públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um boleto bancário apresenta.
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/account/**ACCOUNT_KEY**/payment/batch_collection_slip/**PAYMENT_BATCH_KEY**/confirmation
MÉTODO PATCH

### Request Path Params

| Campo                 | Tipo  | Descrição                                                                                | Caracteres |
| --------------------- | ----- | ---------------------------------------------------------------------------------------- | ---------- |
| `account_key` *       | uuid4 | Chave única de identificação da conta.                                                   | 36         |
| `payment_batch_key` * | uuid4 | Chave única de identificação do lote (`batch_payment_key` retornado na criação do lote). | 36         |

### Request Body

**Request Body: Rejeição do lote (com `tfa_info`)**

```json
{
  "batch_status": "rejected",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  }
}
```

**Request Body: Aprovação do lote (com `tfa_info`)**

```json
{
  "batch_status": "approved",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  }
}
```

### Body Params

| Campo            | Tipo   | Descrição                                                                                                                                                                                                                                                                                                                                              |
| ---------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `batch_status` * | string | Decisão sobre o lote. Valores: `approved` (seguir com o processamento) ou `rejected` (cancelar o lote). Ver [enumerador batch_confirmation_status](#enumerador-batch_confirmation_status).                                                                                                                                                     |
| `tfa_info`       | object | Obrigatório neste fluxo com `batch_status: approved` ou `batch_status: rejected`; informe aprovador e canal de envio do token em [objeto tfa_info](#objeto-tfa_info). |

### Enumerador batch_confirmation_status

Valores aceitos no corpo da requisição para `batch_status`:

| Valor      | Descrição                                                                     |
| ---------- | ----------------------------------------------------------------------------- |
| `approved` | Aprovar o lote e continuar o fluxo de processamento.                          |
| `rejected` | Rejeitar o lote; não há processamento assíncrono das faturas de recolhimento. |

### Objeto tfa_info

| Campo                        | Tipo   | Descrição                                                                                                                                          |
| ---------------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| `approver_document_number` * | string | Documento (CPF) da pessoa aprovadora que receberá o token. Obrigatório quando `tfa_info` é enviado.                                                |
| `contact_type` *             | string | Canal para envio do token (por exemplo `sms` ou `email`), conforme regras da operação e cadastro. Obrigatório quando `tfa_info` é enviado. |

## Response

O status HTTP e o campo `batch_status` na resposta dependem da decisão enviada e de o fluxo exigir validação do token após esta chamada.

### Resposta: lote rejeitado — pendência de validação do token (2FA)

STATUS 202

Quando `batch_status` no corpo da requisição é `rejected` e a requisição inclui `tfa_info`, a API responde com **202**. O lote fica aguardando validação do token; o corpo retorna `batch_status` como `pending_2fa_rejection`. Após a validação do token, a decisão de rejeição é aplicada.

**Response Body: Lote aguardando validação do token (decisão de rejeição)**

```json
{
  "batch_payment_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "total_amount": 2778.42,
  "batch_status": "pending_2fa_rejection",
  "payment_type": "collection_slip"
}
```

### Resposta: lote aprovado — pendência de validação do token (2FA)

STATUS 202

Quando `batch_status` no corpo é `approved` e a requisição inclui `tfa_info`, a API responde com **202**. O lote fica aguardando validação do token; o corpo retorna `batch_status` como `pending_2fa_approval`. Os passos seguintes estão em [Validação de token de lote de pagamento de fatura de recolhimento (convênio/tributo)](./validacao_de_token_de_lote_de_fatura_de_recolhimento.md) e [Reenviar token de confirmação de lote de pagamento de fatura de recolhimento (convênio/tributo)](./solicitacao_de_reenvio_de_token_de_lote_de_fatura_de_recolhimento.md).

**Response Body: Lote aguardando validação do token**

```json
{
  "batch_payment_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "total_amount": 2778.42,
  "batch_status": "pending_2fa_rejection",
  "payment_type": "collection_slip"
}
```

### Response Body Params

| Campo                   | Tipo   | Descrição                                                                                                                                                                                                                                                                                    |
| ----------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `batch_payment_key` *   | uuid4  | Chave única de identificação do pagamento em lote.                                                                                                                                                                                                                                           |
| `request_control_key` * | uuid4  | Chave única de identificação da requisição do cliente (lote).                                                                                                                                                                                                                                |
| `account_key` *         | uuid4  | Chave da conta debitada.                                                                                                                                                                                                                                                                     |
| `total_amount` *        | number | Soma dos valores dos itens do lote.                                                                                                                                                                                                                                                          |
| `batch_status` *        | string | Nesta chamada, o lote permanece em `pending_2fa_approval` (aprovação) ou `pending_2fa_rejection` (rejeição) até a validação do token. Após a validação, o status final reflete a decisão enviada na confirmação (`approved` ou `rejected`). |
| `payment_type` *        | string | Tipo do pagamento; para este fluxo, espera-se `collection_slip`.                                                                                                                                                                                                                             |

### Error Response

STATUS 4XX

**Response Body**

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título      | Descrição (eng)                               | Descrição (pt-br)                                     |
| ----------- | --------- | ----------- | --------------------------------------------- | ----------------------------------------------------- |
| 400         | BIP000013 | Bad Request | The source account is closed.                 | A conta de origem está fechada.                       |
| 400         | BIP000050 | Bad Request | Requester configuration does not exist        | Configuração do requester não existe.                 |
| 400         | BIP000054 | Bad Request | TFA info required.                            | Informações de TFA necessárias.                       |
| 404         | BIP000083 | Not Found   | Batch payment not found by batch payment key. | Lote de pagamentos não encontrado pela chave do lote. |
| 400         | BIP000084 | Bad Request | Batch payment status is not pending.          | O status do lote de pagamentos não está pendente.     |

---

# Confirmação de Pagamento de Boleto Bancário

URL: /documentation/baas/cobranca/2fa_v2/confirmacao_de_pagamento_de_boleto_bancario

Este endpoint permite realizar a confirmação do pagamento de boleto bancário.

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.
:::

## Request

### Request Endpoint

ENDPOINT /account/ ACCOUNT_KEY /payment/ PAYMENT_KEY /bank_slip/validate_token
MÉTODO PATCH

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |
| `payment_key` *     | uuid4   | Chave única de identificação do pagamento.  | 36     |

### Autenticação via Email e SMS

Request Body: Confirmação de pagamento de boleto bancário

```json
{
  "token": "329adf"
}
```

### Autenticação via Dispositivo

Para aprovar e finalizar a autenticação via dispositivo, a requisição deve ser enviada com um payload vazio. A validação ocorre internamente, sem necessidade de informações adicionais no corpo da requisição. É importante destacar que este endpoint só deve ser utilizado após a [solicitação de transação](./solicitacao_de_pagamento_de_boleto_bancario.md) ter sido iniciada.

Request Body: Confirmação de pagamento de boleto bancário

```json
{

}
```

### Body Params

| Campo     | Tipo   | Descrição                                                             | Caracteres |
|-----------|--------|-----------------------------------------------------------------------|------------|
| `token`   | string | Código de autenticação enviado ao aprovador de movimentações da conta **obrigatório para TFA via SMS ou e-mail**| 6          |

## Response

### Success Response

STATUS 200

Response Body: Pagamento executado

```json
{
   "payment_key":"c4325104-d60b-44f3-aae4-49155564a2ea",
   "request_control_key":"b713b2f6-2f48-4d18-b0c9-7186e4edf189",
   "payer_name":"COOPERATIVA INDUSTRIAL MURILO",
   "payer_document_number":"00037025000160",
   "source_account_key":"6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
   "transaction_key":"4e80070a-a0bb-4be2-8178-55fbd73a3704",
   "transaction_revert_key":null,
   "paid_amount":1050.1,
   "payment_date":"2024-04-03",
   "payment_type":"bank_slip",
   "bank_slip": {
        "bank_slip_key":"95080ffd-3ac5-48d7-b3fe-659e4aaba81a",
        "barcode":"00193967000009910000000003615574000000002417",
        "digitable_line":"00190000090361557400500000024174396700000991000",
        "payer_name":"COOPERATIVA TESTE",
        "payer_document_number":"00037025000160",
        "beneficiary_name":"TESTE EQUIPAMENTOS E SERVICOS LTDA",
        "beneficiary_trading_name":"TESTE EQUIPAMENTOS E SERVICOS LTDA",
        "beneficiary_document_number":"52069937000117",
        "beneficiary_bank_ispb":"00000000",
        "guarantor_name":null,
        "guarantor_document_number":null,
        "expiration_date":"2024-03-29",
        "max_payment_data": "2026-03-29",
        "partial_payment_indicator":"allowed",
        "registered_payment_amount":9029.0,
        "nominal_amount":9910.0,
        "total_amount":10129.1,
        "rebate_amount":0.0,
        "discount_amount":0.0,
        "fine_amount":0.0,
        "interest_amount":219.1
    },
   "collection_slip":null,
   "payment_status":"executed"
}
```

STATUS 202

Response Body: Pagamento pendente de execução

```json
{
   "payment_key":"c4325104-d60b-44f3-aae4-49155564a2ea",
   "request_control_key":"b713b2f6-2f48-4d18-b0c9-7186e4edf189",
   "payer_name":"COOPERATIVA INDUSTRIAL MURILO",
   "payer_document_number":"00037025000160",
   "source_account_key":"6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
   "transaction_key":"4e80070a-a0bb-4be2-8178-55fbd73a3704",
   "transaction_revert_key":null,
   "paid_amount":1050.1,
   "payment_date":"2024-04-03",
   "payment_type":"bank_slip",
   "bank_slip": {
        "bank_slip_key":"95080ffd-3ac5-48d7-b3fe-659e4aaba81a",
        "barcode":"00193967000009910000000003615574000000002417",
        "digitable_line":"00190000090361557400500000024174396700000991000",
        "payer_name":"COOPERATIVA TESTE",
        "payer_document_number":"00037025000160",
        "beneficiary_name":"TESTE EQUIPAMENTOS E SERVICOS LTDA",
        "beneficiary_trading_name":"TESTE EQUIPAMENTOS E SERVICOS LTDA",
        "beneficiary_document_number":"52069937000117",
        "beneficiary_bank_ispb":"00000000",
        "guarantor_name":null,
        "guarantor_document_number":null,
        "expiration_date":"2024-03-29",
        "max_payment_data": "2026-03-29",
        "partial_payment_indicator":"allowed",
        "registered_payment_amount":9029.0,
        "nominal_amount":9910.0,
        "total_amount":10129.1,
        "rebate_amount":0.0,
        "discount_amount":0.0,
        "fine_amount":0.0,
        "interest_amount":219.1
    },
   "collection_slip":null,
   "payment_status": "pending_execution"
}
```

:::info Informação
Caso seja retornado **HTTP Status 202** com o campo `payment_status` com valor **pending_execution**, o pagamento não deve ser retentado.

Este pagamento será processado assincronamente. É necessário verificar o status da transferência por meio
da consulta de pagamento, ou aguardar envio do webhook de pagamento pendente descrito na [página de webhooks](/documentation/baas/cobranca/webhooks).
:::

### Response Body Params

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `payment_key` *               | uuid4 | Chave única de identificação do pagamento. |
| `request_control_key` *       | uuid4 | Chave única de identificação da request do cliente. |
| `payer_name` *                | string | Nome do pagador efetivo.|
| `payer_document_number` *     | string | Número do documento do pagador efetivo (CPF/CNPJ). |
| `source_account_key` *        | uuid4 | Chave da conta debitada. |
| `transaction_key` *           | uuid4 | Chave da transação do pagamento. |
| `transaction_revert_key`      | uuid4 | Chave da transação de reversão do pagamento. |
| `paid_amount` *               | number | Valor pago efetivamente. |
| `payment_date` *              | string | Data do pagamento. |
| `payment_type` *              | [enum](#enumeradores-payment_type) | Tipo do pagamento. |
| `bank_slip`                   | [object](#objeto-bank_slip) | Boleto bancário. |
| `collection_slip`             | object | Fatura de recolhimento. |
| `payment_status` *            | [enum](#enumeradores-payment_status) | Status do pagamento. |

### Enumeradores payment_type
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

:::danger Aviso
O enumerador `collection_slip` não se aplica para o fluxo de boletos bancários, assim como o objeto collection_slip que sempre será nulo.
:::

### Enumeradores payment_status
| Enumerador    | Descrição     |
|---------------|---------------|
| `pending_execution`     | Pendente de execução |
| `executed`    | Executado |
| `reverted`    | Revertido |
| `rejected`    | Rejeitado |
| `error`       | Erro      |

:::danger Aviso
Para pagamentos aonde a QI não receber uma resposta da CIP em até dois minutos, o pagamento será retornado com o status `pending_execution`. Após a QI receber a resposta da CIP, será enviado para o cliente o webhook de pagamento pendente descrito na [página de webhooks](/documentation/baas/cobranca/webhooks).
:::

### Objeto bank_slip
| Campo                             | Tipo    | Descrição                         |
|-----------------------------------|---------|-----------------------------------|
| `barcode` *                       | string | Código de barras. |
| `digitable_line` *                | string | Linha digitável. |
| `payer_name` *                    | string | Nome do pagador.|
| `payer_document_number` *         | string | Número do documento do pagador (CPF/CNPJ). |
| `beneficiary_name` *              | string | Nome do beneficiário. |
| `beneficiary_trading_name`        | string | Nome fantasia do beneficiário. |
| `beneficiary_document_number` *   | string | Número do documento do beneficiário  (CPF/CNPJ). |
| `beneficiary_bank_ispb` *         | string | Código ispb do banco do beneficiário. |
| `guarantor_name`                  | string | Nome do sacador avalista. |
| `guarantor_document_number`       | string | Número do documento do sacador avalista (CPF/CNPJ). |
| `expiration_date` *               | string | Data de vencimento. |
| `max_payment_date` * | string  | Data máxima de pagamento. |
| `partial_payment_indicator` *     | [enum](#enumeradores-partial_payment_indicator)   | Indicador de pagamento parcial. |
| `registered_payment_amount`       | string | Valor total de pagamento registrado. |
| `nominal_amount` *                | number | Valor original. |
| `total_amount` *                  | number | Valor total. |
| `rebate_amount` *                 | number | Valor do batimento. |
| `discount_amount` *               | number | Valor do desconto. |
| `fine_amount` *                   | number | Valor da multa. |
| `interest_amount` *               | number | Valor do juros. |

### Enumeradores partial_payment_indicator
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `allowed`     | string    | Permitido     |
| `not_allowed` | string    | Não permitido |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 403         | BIP000010 | Forbidden | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404         | BIP000011 | Not Found | The source account key was not found. | A chave da conta de origem não foi encontrada. |
| 400         | BIP000012 | Bad Request | It was not possible to consult the source account at this time. Please try again in a few minutes. | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000013 | Bad Request | The source account is closed. | A conta de origem está fechada. |
| 400         | BIP000014 | Bad Request | The source account is blocked. | A conta de origem está bloqueada. |
| 400         | BIP000022 | Bad Request | Bank slip payment service is closed. | Serviço de pagamento de boleto está fechado. |
| 400         | BIP000023 | Bad Request | The source account has insufficient balance. Payment cannot be made. | A conta de origem possui saldo insuficiente. Pagamento não pode ser realizado. |
| 400         | BIP000025 | Bad Request | It was not possible to pay the bank slip at this time. Please verify your information and, if necessary, contact us for assistance. | Não foi possível pagar o boleto neste momento. Por favor, verifique suas informações e, se necessário, entre em contato conosco para assistência. |
| 400         | BIP000028 | Bad Request | The source account has blocked balance. Payment cannot be made. | A conta de origem possui saldo em conta bloqueado. Pagamento não pode ser realizado. |
| 400         | BIP000029 | Bad Request | Bank slip payment write off rejected. | Baixa de pagamento de boleto rejeitada. |
| 404         | BIP000056 | Not Found | Payment not found. | Pagamento não encontrado. |
| 400         | BIP000057 | Bad Request | Payment status is not pending approval. | Status de pagamento não é de aprovação pendente. |
| 400         | BIP000058 | Bad Request | Error while validating verification token | Erro ao validar token de verificação |
| 400         | BIP000059 | Bad Request | Number of verification token validation attempts exceeded. | Número de tentativas de validação de token de verificação excedido. |
| 400         | BIP000060 | Bad Request | Verification token expired. | Token de verificação expirado. |
| 400         | BIP000061 | Bad Request | Verification token validation failed. | Falha na validação do token de verificação. |
| 400         | BIP000062 | Bad Request | Payment type is not bank slip. | Tipo de pagamento não é boleto. |
| 400         | BIP000065 | Bad Request | Payment verification time window exceeded. | Janela de tempo de verificação de pagamento excedida. |
| 400                      | BIP000086            | Bad Request                                | A token is required for SMS or email validation.                    | Um token é necessário para validação via SMS ou email.             |

---

# Confirmação de Pagamento de Fatura de Recolhimento

URL: /documentation/baas/cobranca/2fa_v2/confirmacao_de_pagamento_de_fatura_de_recolhimento

Este endpoint permite realizar a confirmação do pagamento de faturas de recolhimento.

:::info Fatura de recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgão públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um Boleto bancário apresenta.
:::

## Request

### Request Endpoint

ENDPOINT /account/ ACCOUNT_KEY /payment/ PAYMENT_KEY /collection_slip/validate_token
MÉTODO PATCH

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |
| `payment_key` *     | uuid4   | Chave única de identificação do pagamento.  | 36     |

### Autenticação via Email e SMS

Request Body: Confirmação de pagamento de fatura de recolhimento

```json
{
  "token": "329adf"
}
```

### Autenticação via Dispositivo

Para aprovar e finalizar a autenticação via dispositivo, a requisição deve ser enviada com um payload vazio. A validação ocorre internamente, sem necessidade de informações adicionais no corpo da requisição. É importante destacar que este endpoint só deve ser utilizado após a [solicitação de transação](./solicitacao_de_pagamento_de_fatura_de_recolhimento.md) ter sido iniciada.

Request Body: Confirmação de pagamento de fatura de recolhimento

```json
{

}
```

### Body Params

| Campo     | Tipo   | Descrição                                                             | Caracteres |
|-----------|--------|-----------------------------------------------------------------------|------------|
| `token`   | string | Código de autenticação enviado ao aprovador de movimentações da conta **obrigatório para TFA via SMS ou e-mail**| 6          |

## Response

### Success Response

STATUS 200

Response Body: Pagamento executado

```json
{
  "payment_key": "33860ad0-bcb0-47b7-bbe7-c7e3ec2fc61a",
  "request_control_key": "ae4508df-f2cb-4e28-9f04-a19b7f2758c9",
  "payer_name": "COOPERATIVA INDUSTRIAL MURILO",
  "payer_document_number": "62069937000118",
  "source_account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "transaction_key": "fc9ccfd0-2f21-4207-9772-69238be74152",
  "transaction_revert_key": null,
  "paid_amount": 1389.21,
  "payment_date": "2024-04-30",
  "payment_type": "collection_slip",
  "bank_slip": null,
  "collection_slip": {
    "barcode": null,
    "digitable_line": "836200000138892100450006762142420244046000010192",
    "collection_name": "CIA ULTRAGAZ SA-COD",
    "collection_document_number": "00394460005887",
    "expiration_date": "2024-04-15",
    "total_amount": 1389.21
  },
  "payment_status": "executed"
}
```

### Response Body Params

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `payment_key` *               | uuid4 | Chave única de identificação do pagamento. |
| `request_control_key` *       | uuid4 | Chave única de identificação da request do cliente. |
| `payer_name` *                | string | Nome do pagador efetivo.|
| `payer_document_number` *     | string | Número do documento do pagador efetivo (CPF/CNPJ). |
| `source_account_key` *        | uuid4 | Chave da conta debitada. |
| `transaction_key` *           | uuid4 | Chave da transação do pagamento. |
| `transaction_revert_key`      | uuid4 | Chave da transação de reversão do pagamento. |
| `paid_amount` *               | number | Valor pago efetivamente. |
| `payment_date` *              | string | Data do pagamento. |
| `payment_type` *              | [enum](#enumeradores-payment_type) | Tipo do pagamento. |
| `bank_slip`                   | object | Boleto bancário. |
| `collection_slip`             | [object](#objeto-collection_slip) | Fatura de recolhimento. |
| `payment_status` *            | [enum](#enumeradores-payment_status) | Status do pagamento. |

### Enumeradores payment_type
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

:::danger Aviso
O enumerador `bank_slip` não se aplica para o fluxo de faturas de recolhimento, assim como o objeto bank_slip que sempre será nulo.
:::

### Enumeradores payment_status
| Enumerador    | Descrição     |
|---------------|---------------|
| `executed`    | Executado |
| `reverted`    | Revertido |
| `rejected`    | Rejeitado |
| `error`       | Erro      |

### Objeto collection_slip
| Campo                             | Tipo    | Descrição                         |
|-----------------------------------|---------|-----------------------------------|
| `barcode`          | string | Código de barras. |
| `digitable_line`   | string | Linha digitável. |
| `collection_name` *         | string | Nome do convênio.|
| `collection_document_number`   | string | Número de documento do convênio (CPF/CNPJ).|
| `expiration_date` *  | string  | Data de vencimento. |
| `total_amount` *  | number | Valor total. |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 403         | BIP000010 | Forbidden | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404         | BIP000011 | Not Found | The source account key was not found. | A chave da conta de origem não foi encontrada. |
| 400         | BIP000012 | Bad Request | It was not possible to consult the source account at this time. Please try again in a few minutes. | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000013 | Bad Request | The source account is closed. | A conta de origem está fechada. |
| 400         | BIP000014 | Bad Request | The source account is blocked. | A conta de origem está bloqueada. |s
| 400         | BIP000023 | Bad Request | The source account has insufficient balance. Payment cannot be made. | A conta de origem possui saldo insuficiente. Pagamento não pode ser realizado. |
| 400         | BIP000028 | Bad Request | The source account has blocked balance. Payment cannot be made. | A conta de origem possui saldo em conta bloqueado. Pagamento não pode ser realizado. |
| 400         | BIP000034 | Bad Request | Collection slip already paid. | Fatura de recolhimento já paga. |
| 400         | BIP000036 | Bad Request | Covenant slip overdue. | Fatura de recolhimento vencida. |
| 400         | BIP000038 | Bad Request | Outside of covenant payment hours. | Fora do horário de pagamento do convênio. |
| 400         | BIP000044 | Bad Request | It was not possible to pay the collection slip at this time. Please verify your information and, if necessary, contact us for assistance. | Não foi possível pagar a fatura de recolhimento neste momento. Por favor, verifique suas informações e, se necessário, entre em contato conosco para assistência. |
| 400         | BIP000045 | Bad Request | Collection slip payment service is closed. | Serviço de pagamento de fatura de recolhimento está fechado. |
| 404         | BIP000056 | Not Found | Payment not found. | Pagamento não encontrado. |
| 400         | BIP000057 | Bad Request | Payment status is not pending approval. | Status de pagamento não é de aprovação pendente. |
| 400         | BIP000058 | Bad Request | Error while validating verification token | Erro ao validar token de verificação |
| 400         | BIP000059 | Bad Request | Number of verification token validation attempts exceeded. | Número de tentativas de validação de token de verificação excedido. |
| 400         | BIP000060 | Bad Request | Verification token expired. | Token de verificação expirado. |
| 400         | BIP000061 | Bad Request | Verification token validation failed. | Falha na validação do token de verificação. |
| 400         | BIP000063 | Bad Request | Payment type is not collection slip. | Tipo de pagamento não é fatura de recolhimento. |
| 400         | BIP000065 | Bad Request | Payment verification time window exceeded. | Janela de tempo de verificação de pagamento excedida. |
| 400                      | BIP000086            | Bad Request                                | A token is required for SMS or email validation.                    | Um token é necessário para validação via SMS ou email.             |

---

# Introdução a Autenticação de Dois Fatores

URL: /documentation/baas/cobranca/2fa_v2/introducao_ao_pagamento_2fa

Neste tipo de pagamento, é necessário a confirmação do pagamento via token enviado à pessoa com poderes de aprovação de
movimentação na conta pagadora.

A solicitação de pagamento por parceiros integradores configurados para a utilização de autenticação de dois
fatores é realizada de forma similar ao descrito
em [pagamento de boleto bancário](/documentation/baas/cobranca/pagar_boleto_bancario) e [pagamento de fatura de recolhimento](/documentation/baas/cobranca/pagar_fatura_de_recolhimento). 
A diferença ocorre na adição do objeto `tfa_info` na requisição, contendo informações sobre o aprovador da transferência e a forma de contato, e o status da
solicitação no retorna da requisição. O status da solicitação sempre será retornado como **pending_2fa_approval**.

## Fluxo para uma pagamento com autorização

O pagamento bem sucedido seguirá o seguinte fluxo de processos:

- Realização da [solicitação de pagamento de boleto bancário](/documentation/baas/cobranca/2fa_v2/solicitacao_de_pagamento_de_boleto_bancario) ou [solicitação de pagamento de fatura de recolhimento](/documentation/baas/cobranca/2fa_v2/solicitacao_de_pagamento_de_fatura_de_recolhimento) e recebimento da resposta de forma síncrona com status de **pending_2fa_approval** e a `payment_key`.
- O aprovador indicado receberá um `token` de 6 dígitos compostos por algarismos.
- O requisitante realiza a [confirmação do pagamento de boleto bancário](/documentation/baas/cobranca/2fa_v2/confirmacao_de_pagamento_de_boleto_bancario) ou [confirmação do pagamento de fatura de recolhimento](/documentation/baas/cobranca/2fa_v2/confirmacao_de_pagamento_de_fatura_de_recolhimento) com a `payment_key` e o `token`.
- O pagamento será concluída de forma síncrona.

## Observações

- Cada pagamento possui um limite máximo de tentativas de validação do `token` de 5 vezes. Quando este limite é alcançado o pagamento será colocado em status de rejeitado (**rejected**) automaticamente.
- Cada `token` possui duração máxima de 5 minutos.
- Um pagamento pode ter seu `token` renovado e reenviado para o aprovador da conta. Este processo reinicia o tempo de 5 minutos e não reinicia o contador de tentativas inválidas. O `token` anterior torna-se inválido.
- Uma vez aprovado o pagamento, este será concluído de forma síncrona.
- O evento de notificação para o envio de `token` ao aprovador é **baas.token_validation.bill_payment.payment.single**. É possível [personalizar](/documentation/notificacoes/template) a mensagem enviada.
- As formas de envio (`contact_type`) de token implementadas são por **sms** e **email**.

---

# Solicitação de pagamento de Boleto Bancário com Autenticação de Dois Fatores

URL: /documentation/baas/cobranca/2fa_v2/solicitacao_de_pagamento_de_boleto_bancario

Este endpoint permite realizar a solicitação de pagamento de boletos bancários. A solicitação deve ser realizado após a consulta, utilizando as informações retornadas para garantir o funcionamento correto do fluxo, evitando falhas durante o processo.

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.
:::

## Request

### Request Endpoint

ENDPOINT /account/ ACCOUNT_KEY /payment/bank_slip
MÉTODO POST

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |

## Autenticação via Email e SMS

Request Body: Solicitação de boleto bancário com linha digitável com TFA por SMS ou Email

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "digitable_line": "00190000090361557400500000024174396700000991000",
  "payment_amount": 1156.8,
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  }
}
```
Request Body: Solicitação de boleto bancário com código de barras com TFA por SMS ou Email

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "barcode": "00190000090361557400500000024174396700000991000",
  "payment_amount": 1156.8,
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  }
}
```

## Autenticação via Dispositivo

Além das formas já existentes de autenticação via **sms** e **email**, é possível autenticar a transação utilizando um dispositivo [previamente cadastrado](/documentation/baas/dispositivo/create/solicitacao_cadastro_dispositivo). Nesse caso, o `session_id` deve ser obtido na **Device Scan** e enviado no `tfa_info`.

Request Body: Solicitação de boleto bancário com linha digitável com TFA por Dispositivo

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "digitable_line": "00190000090361557400500000024174396700000991000",
  "payment_amount": 1156.8,
  "tfa_info": {
    "approver_document_number": "98765432100",
    "session_id": "b2f18d3a-67c2-4a7f-98e5-1d3f5c6b8a72",
    "contact_type": "device"
  }
}
```
Request Body: Solicitação de boleto bancário com código de barras com TFA por Dispositivo

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "barcode": "00190000090361557400500000024174396700000991000",
  "payment_amount": 1156.8,
  "tfa_info": {
    "approver_document_number": "98765432100",
    "session_id": "b2f18d3a-67c2-4a7f-98e5-1d3f5c6b8a72",
    "contact_type": "device"
  }
}
```
### Body Params

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da request do cliente. |    
| `barcode`               | string    | Código de barras. |
| `digitable_line`        | string    | Linha digitável. |
| `payment_amount` *      | number    | Valor a ser pago. |
| `tfa_info` *            | [object](#objeto-tfa_info)    | Objeto contendo o documento da pessoa aprovadora da conta e a forma de contato. | 

:::danger Aviso
O `payment_amount` deve sempre igual ao `total_amount` retornado na consulta do boleto bancário caso o pagamento parcial não seja permitido para o boleto bancário. Para títulos em que o pagamento parcial é permitido, o cliente pode escolher o `payment_amount`, desde que a soma do mesmo com o `registered_payment_amount` do boleto bancário não seja superior que o `total_amount`.
:::

### Objeto tfa_info
| Campo                             | Tipo    | Descrição                         |
|-----------------------------------|---------|-----------------------------------|
| `approver_document_number`* | string | Número de documento da pessoa aprovadora da conta (CPF/CNPJ). | 
| `session_id`| string | Chave única de identificação da sessão do dispositivo no formato UUID v4 (obrigatório para TFA via dispositivo). |   36         |
| `contact_type`*             | enumerator | Método de validação do token de autenticação | **[Enumerador contact_type](#enumerador-contact_type)** |

| Enumerador | Descrição                                         |
|------------|---------------------------------------------------|
| **sms**    | Envio por Mensagem de Texto para telefone celular |
| **email**  | Envio por correio eletrônico                      |
| **device** | Validação por token do dispositivo                |

## Response

### Success Response

STATUS 201

Response Body: Pagamento pendente de aprovação de dois fatores

```json
{
   "payment_key":"c4325104-d60b-44f3-aae4-49155564a2ea",
   "request_control_key":"b713b2f6-2f48-4d18-b0c9-7186e4edf189",
   "payer_name":"COOPERATIVA INDUSTRIAL MURILO",
   "payer_document_number":"00037025000160",
   "source_account_key":"6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
   "transaction_key":"4e80070a-a0bb-4be2-8178-55fbd73a3704",
   "transaction_revert_key":null,
   "paid_amount":1050.1,
   "payment_date":"2024-04-03",
   "payment_type":"bank_slip",
   "bank_slip": {
        "bank_slip_key":"95080ffd-3ac5-48d7-b3fe-659e4aaba81a",
        "barcode":"00193967000009910000000003615574000000002417",
        "digitable_line":"00190000090361557400500000024174396700000991000",
        "payer_name":"COOPERATIVA TESTE",
        "payer_document_number":"00037025000160",
        "beneficiary_name":"TESTE EQUIPAMENTOS E SERVICOS LTDA",
        "beneficiary_trading_name":"TESTE EQUIPAMENTOS E SERVICOS LTDA",
        "beneficiary_document_number":"52069937000117",
        "beneficiary_bank_ispb":"00000000",
        "guarantor_name":null,
        "guarantor_document_number":null,
        "expiration_date":"2024-03-29",
        "max_payment_data": "2026-03-29",
        "partial_payment_indicator":"allowed",
        "registered_payment_amount":9029.0,
        "nominal_amount":9910.0,
        "total_amount":10129.1,
        "rebate_amount":0.0,
        "discount_amount":0.0,
        "fine_amount":0.0,
        "interest_amount":219.1
    },
   "collection_slip":null,
   "payment_status":"pending_2fa_approval"
}
```

### Response Body Params

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `payment_key` *               | uuid4 | Chave única de identificação do pagamento. |
| `request_control_key` *       | uuid4 | Chave única de identificação da request do cliente. |
| `payer_name` *                | string | Nome do pagador efetivo.|
| `payer_document_number` *     | string | Número do documento do pagador efetivo  (CPF/CNPJ). |
| `source_account_key` *        | uuid4 | Chave da conta debitada. |
| `transaction_key` *           | uuid4 | Chave da transação do pagamento. |
| `transaction_revert_key`      | uuid4 | Chave da transação de reversão do pagamento. |
| `paid_amount` *               | number | Valor pago efetivamente. |
| `payment_date` *              | string | Data do pagamento. |
| `payment_type` *              | [enum](#enumeradores-payment_type) | Tipo do pagamento. |
| `bank_slip`                   | [object](#objeto-bank_slip) | Boleto bancário. |
| `collection_slip`             | object | Fatura de recolhimento. |
| `payment_status` *            | [enum](#enumeradores-payment_status) | Status do pagamento. |

### Enumeradores payment_type
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

:::danger Aviso
O enumerador `collection_slip` não se aplica para o fluxo de boletos bancários, assim como o objeto collection_slip que sempre será nulo.
:::

### Enumeradores payment_status
| Enumerador    | Descrição     |
|---------------|---------------|
| `pending_2fa_approval`    | pendente de aprovação de dois fatores |

### Objeto bank_slip
| Campo                             | Tipo    | Descrição                         |
|-----------------------------------|---------|-----------------------------------|
| `barcode` *                       | string | Código de barras. |
| `digitable_line` *                | string | Linha digitável. |
| `payer_name` *                    | string | Nome do pagador.|
| `payer_document_number` *         | string | Número do documento do pagador (CPF/CNPJ). |
| `beneficiary_name` *              | string | Nome do beneficiário. |
| `beneficiary_trading_name`        | string | Nome fantasia do beneficiário. |
| `beneficiary_document_number` *   | string | Número do documento do beneficiário (CPF/CNPJ). |
| `beneficiary_bank_ispb` *         | string | Código ispb do banco do beneficiário. |
| `guarantor_name`                  | string | Nome do sacador avalista. |
| `guarantor_document_number`       | string | Número do documento do sacador avalista (CPF/CNPJ). |
| `expiration_date` *               | string | Data de vencimento. |
| `max_payment_date` * | string  | Data máxima de pagamento. |
| `partial_payment_indicator` *     | [enum](#enumeradores-partial_payment_indicator)   | Indicador de pagamento parcial. |
| `registered_payment_amount`       | string | Valor total de pagamento registrado. |
| `nominal_amount` *                | number | Valor original. |
| `total_amount` *                  | number | Valor total. |
| `rebate_amount` *                 | number | Valor do abatimento. |
| `discount_amount` *               | number | Valor do desconto. |
| `fine_amount` *                   | number | Valor da multa. |
| `interest_amount` *               | number | Valor do juros. |

### Enumeradores partial_payment_indicator
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `allowed`     | string    | Permitido     |
| `not_allowed` | string    | Não permitido |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 400         | BIP000001 | Bad Request | The barcode or digitable line must have 44 or 47 characters. | O código de barras ou linha digitável deve ter 44 ou 47 caracteres. |
| 400         | BIP000002 | Bad Request | The bill sent does not correspond to a bank slip. | A conta enviado não corresponde a um boleto bancário. |
| 400         | BIP000003 | Bad Request | The digitable line sent is invalid. | A linha digitável enviada é inválida. |
| 404         | BIP000004 | Not Found | The bank slip was not found. | O boleto não foi encontrado. |
| 400         | BIP000005 | Bad Request | It was not possible to consult the bank slip at this time. Please try again in a few minutes. | Não foi possível consultar o boleto neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000006 | Bad Request | Bank slip already written off | Boleto já baixado |
| 400         | BIP000007 | Bad Request | Bank slip blocked for payment | Boleto bloqueado para pagamento |
| 400         | BIP000008 | Bad Request | Bank slip already paid | Boleto já pago |
| 400         | BIP000009 | Bad Request | Invalid bank slip. Please consult issuing bank | Boleto inválido. Favor consultar banco emissor |
| 403         | BIP000010 | Forbidden | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404         | BIP000011 | Not Found | The source account key was not found. | A chave da conta de origem não foi encontrada. |
| 400         | BIP000012 | Bad Request | It was not possible to consult the source account at this time. Please try again in a few minutes. | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000013 | Bad Request | The source account is closed. | A conta de origem está fechada. |
| 400         | BIP000014 | Bad Request | The source account is blocked. | A conta de origem está bloqueada. |
| 400         | BIP000015 | Bad Request | Payment date is greater than the maximum payment date. | A data de pagamento é maior que a data máxima de pagamento. |
| 400         | BIP000016 | Bad Request | Payment date is smaller than the calculation date. | A data de pagamento é menor que a data de cálculo. |
| 400         | BIP000017 | Bad Request | Invalid payment amount. | Valor de pagamento inválido. |
| 400         | BIP000018 | Bad Request | Partial payment is not allowed. | Pagamento parcial não é permitido. |
| 400         | BIP000019 | Bad Request | The payment amount is greater than the available amount. | O valor do pagamento é maior que o valor disponível. |
| 400         | BIP000020 | Bad Request | All partial payments for this bank slip have already been made. | Todos os pagamentos parciais deste boleto já foram realizados. |
| 400         | BIP000024 | Bad Request | Request control key already exists. | Chave de controle da requisição já existe. |
| 403         | BIP000052 | Forbidden | Given document number does not belong to an approver for this account | Número de documento enviado não pertence a um aprovador da conta |
| 400         | BIP000053 | Bad Request | Error getting approver data | Erro ao obter dados do aprovador |
| 400         | BIP000054 | Bad Request | TFA info required | Informações de TFA necessárias |
| 400         | BIP000055 | Bad Request | Error sending verification token | Erro ao enviar token de verificação |
| 400         | BIP000065 | Bad Request | Payment verification time window exceeded. | Janela de tempo de verificação de pagamento excedida. |
| 400                      | BIP000079            | Bad Request | A session_id must be provided token                      | Uma session_id deve ser fornecida                |

## Ambiente de Sandbox

Em nosso ambiente de sandbox, disponibilizamos linhas digitáveis mockadas para a simulação de pagamentos bem-sucedidos e testes de cenários de erro.

| Linha digitável |
|-----------------|
| 00190000090361557400500000024174396700000991000 |
| 00190000090282802601919212747174596760001294161 |
| 23793390014000000455277000249001596900000103995 |
| 75691434020137513680900001040013196770002417240 |
| 21390001171200000570700168167484796770000148206 |
| 34191090083273252027893634770007296690012513600 |
| 42297048060005815702500130494123896770000239491 |
| 07090010287045349010776686070590896770001160123 |
| 74891123702849020818918378871083196690000050000 |
| 23792374119000209350986000372408496610000122810 |

---

# Solicitação de Pagamento de Fatura de Recolhimento com Autenticação de Dois Fatores

URL: /documentation/baas/cobranca/2fa_v2/solicitacao_de_pagamento_de_fatura_de_recolhimento

Este endpoint permite realizar a solicitação de pagamento de faturas de recolhimento com autenticação de dois fatores. A solicitação deve ser realizado após a consulta, utilizando as informações retornadas para garantir o funcionamento correto do fluxo, evitando falhas durante o processo.

:::info Fatura de recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgão públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um Boleto bancário apresenta.
:::

## Request

### Request Endpoint

ENDPOINT /account/ ACCOUNT_KEY /payment/collection_slip
MÉTODO POST

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |

## Autenticação via Email e SMS

Request Body: Solicitação de fatura de recolhimento com linha digitável com TFA por SMS ou Email

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "digitable_line": "00190000090361557400500000024174396700000991000",
  "payment_amount": 1156.8,
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  }
}
```
Request Body: Solicitação de fatura de recolhimento com código de barras com TFA por SMS ou Email

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "barcode": "00190000090361557400500000024174396700000991000",
  "payment_amount": 1156.8,
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  }
}
```

## Autenticação via Dispositivo

Além das formas já existentes de autenticação via **sms** e **email**, é possível autenticar a transação utilizando um dispositivo [previamente cadastrado](/documentation/baas/dispositivo/create/solicitacao_cadastro_dispositivo). Nesse caso, o `session_id` deve ser obtido na **Device Scan** e enviado no `tfa_info`.

Request Body: Solicitação de fatura de recolhimento com linha digitável com TFA por Dispositivo

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "digitable_line": "00190000090361557400500000024174396700000991000",
  "payment_amount": 1156.8,
  "tfa_info": {
    "approver_document_number": "98765432100",
    "session_id": "b2f18d3a-67c2-4a7f-98e5-1d3f5c6b8a72",
    "contact_type": "device"
  }
}
```
Request Body: Solicitação de fatura de recolhimento com código de barras com TFA por Dispositivo

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "barcode": "00190000090361557400500000024174396700000991000",
  "payment_amount": 1156.8,
  "tfa_info": {
    "approver_document_number": "98765432100",
    "session_id": "b2f18d3a-67c2-4a7f-98e5-1d3f5c6b8a72",
    "contact_type": "device"
  }
}
```

### Body Params

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da request do cliente. |    
| `barcode`               | string    | Código de barras. |
| `digitable_line`        | string    | Linha digitável. |
| `payment_amount` *      | number    | Valor a ser pago. |
| `tfa_info` *            | [object](#objeto-tfa_info)    | Objeto contendo o documento da pessoa aprovadora da conta e a forma de contato. | 

:::danger Aviso
O `payment_amount` deve sempre igual ao `total_amount` retornado na consulta do boleto bancário.
:::

### Objeto tfa_info
| Campo                             | Tipo    | Descrição                         |
|-----------------------------------|---------|-----------------------------------|
| `approver_document_number`* | string | Número de documento da pessoa aprovadora da conta (CPF/CNPJ). | 
| `session_id`| string | Chave única de identificação da sessão do dispositivo no formato UUID v4 (obrigatório para TFA via dispositivo). |   36         |
| `contact_type`*             | enumerator | Método de validação do token de autenticação | **[Enumerador contact_type](#enumerador-contact_type)** |

| Enumerador | Descrição                                         |
|------------|---------------------------------------------------|
| **sms**    | Envio por Mensagem de Texto para telefone celular |
| **email**  | Envio por correio eletrônico                      |
| **device** | Validação por token do dispositivo                |

## Response

### Success Response

STATUS 201

Response Body: Pagamento pendente de aprovação de dois fatores

```json
{
  "payment_key": "33860ad0-bcb0-47b7-bbe7-c7e3ec2fc61a",
  "request_control_key": "ae4508df-f2cb-4e28-9f04-a19b7f2758c9",
  "payer_name": "COOPERATIVA INDUSTRIAL MURILO",
  "payer_document_number": "62069937000118",
  "source_account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "transaction_key": "fc9ccfd0-2f21-4207-9772-69238be74152",
  "transaction_revert_key": null,
  "paid_amount": 1389.21,
  "payment_date": "2024-04-30",
  "payment_type": "collection_slip",
  "bank_slip": null,
  "collection_slip": {
    "barcode": null,
    "digitable_line": "836200000138892100450006762142420244046000010192",
    "collection_name": "CIA ULTRAGAZ SA-COD",
    "collection_document_number": "00394460005887",
    "expiration_date": "2024-04-15",
    "total_amount": 1389.21
  },
  "payment_status": "pending_2fa_approval"
}
```

### Response Body Params

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `payment_key` *               | uuid4 | Chave única de identificação do pagamento. |
| `request_control_key` *       | uuid4 | Chave única de identificação da request do cliente. |
| `payer_name` *                | string | Nome do pagador efetivo.|
| `payer_document_number` *     | string | Documento do pagador efetivo (CPF/CNPJ). |
| `source_account_key` *        | uuid4 | Chave da conta debitada. |
| `transaction_key` *           | uuid4 | Chave da transação do pagamento. |
| `transaction_revert_key`      | uuid4 | Chave da transação de reversão do pagamento. |
| `paid_amount` *               | number | Valor pago efetivamente. |
| `payment_date` *              | string | Data do pagamento. |
| `payment_type` *              | [enum](#enumeradores-payment_type) | Tipo do pagamento. |
| `bank_slip`                   | object | Boleto bancário. |
| `collection_slip`             | [object](#objeto-collection_slip) | Fatura de recolhimento. |
| `payment_status` *            | [enum](#enumeradores-payment_status) | Status do pagamento. |

### Enumeradores payment_type
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

:::danger Aviso
O enumerador `bank_slip` não se aplica para o fluxo de faturas de recolhimento, assim como o objeto bank_slip que sempre será nulo.
:::

### Enumeradores payment_status
| Enumerador    | Descrição     |
|---------------|---------------|
| `pending_2fa_approval`    | pendente de aprovação de dois fatores |

### Objeto collection_slip
| Campo                             | Tipo    | Descrição                         |
|-----------------------------------|---------|-----------------------------------|
| `barcode`          | string | Código de barras. |
| `digitable_line`   | string | Linha digitável. |
| `collection_name` *         | string | Nome do convênio.|
| `collection_document_number`   | string | Número de documento do convênio (CPF/CNPJ).|
| `expiration_date` *  | string  | Data de vencimento. |
| `total_amount` *  | number | Valor total. |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 400         | BIP000032 | Bad Request | The bill sent does not correspond to a collection slip. | A conta enviada não corresponde a uma fatura de recolhimento. |
| 400         | BIP000033 | Bad Request | The barcode or digitable line of the collection slip must have 44 or 48 characters. | O código de barras ou linha digitável da fatura de recolhimento deve ter 44 ou 48 caracteres. |
| 403         | BIP000010 | Forbidden | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404         | BIP000011 | Not Found | The source account key was not found. | A chave da conta de origem não foi encontrada. |
| 400         | BIP000012 | Bad Request | It was not possible to consult the source account at this time. Please try again in a few minutes. | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000013 | Bad Request | The source account is closed. | A conta de origem está fechada. |
| 400         | BIP000014 | Bad Request | The source account is blocked. | A conta de origem está bloqueada. |
| 400         | BIP000024 | Bad Request | Request control key already exists. | Chave de controle da requisição já existe. |
| 400         | BIP000028 | Bad Request | The source account has blocked balance. Payment cannot be made. | A conta de origem possui saldo em conta bloqueado. Pagamento não pode ser realizado. |
| 400         | BIP000034 | Bad Request | Collection slip already paid. | Fatura de recolhimento já paga. |
| 400         | BIP000035 | Bad Request | Covenant slip invalid barcode. | Código de barras da fatura de recolhimento inválido. |
| 400         | BIP000036 | Bad Request | Covenant slip overdue. | Fatura de recolhimento vencida. |
| 400         | BIP000037 | Bad Request | Error in collection slip consultation. | Erro na consulta da fatura de recolhimento. |
| 400         | BIP000038 | Bad Request | Outside of covenant payment hours. | Fora do horário de pagamento do convênio. |
| 400         | BIP000039 | Bad Request | Collection slip not accepted. | Fatura de recolhimento não aceita. |
| 400         | BIP000040 | Bad Request | Minimum advance not reached. | Mínimo de dias de adiantamento não atingido. |
| 400         | BIP000041 | Bad Request | Max payment amount exceeded. | Valor máximo de pagamento excedido. |
| 400         | BIP000044 | Bad Request | It was not possible to pay the collection slip at this time. Please verify your information and, if necessary, contact us for assistance. | Não foi possível pagar a fatura de recolhimento neste momento. Por favor, verifique suas informações e, se necessário, entre em contato conosco para assistência. |
| 403         | BIP000052 | Forbidden | Given document number does not belong to an approver for this account | Número de documento enviado não pertence a um aprovador da conta |
| 400         | BIP000053 | Bad Request | Error getting approver data | Erro ao obter dados do aprovador |
| 400         | BIP000054 | Bad Request | TFA info required | Informações de TFA necessárias |
| 400         | BIP000055 | Bad Request | Error sending verification token | Erro ao enviar token de verificação |
| 400         | BIP000065 | Bad Request | Payment verification time window exceeded. | Janela de tempo de verificação de pagamento excedida. |
| 400                      | BIP000079            | Bad Request | A session_id must be provided token                      | Uma session_id deve ser fornecida                |

## Ambiente de Sandbox

Em nosso ambiente de sandbox, disponibilizamos linhas digitáveis mockadas para a simulação de pagamentos bem-sucedidos e testes de cenários de erro.

| Linha digitável |
|---|
| 828300000007411100972013905080001546763201900028 |
| 838000000009235700481007241345219112001474229880 |
| 848000000006308600802021201071261517689002201070 |
| 858200000015000000643025703477209504800448091020 |
| 858500000037350000643217212883260006147448091022 |

---

# Reenviar Token Autenticação de Dois Fatores de Pagamentos de Boleto Bancário

URL: /documentation/baas/cobranca/2fa_v2/solicitacao_de_reenvio_de_token_de_boleto_bancario

Este endpoint permite realizar o reenvio do token de autenticação de pagamentos de Boleto Bancário.

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária
de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco
Central.
:::

## Request

### Request Endpoint

ENDPOINT /account/ ACCOUNT_KEY /payment/ PAYMENT_KEY /bank_slip/resend_token
MÉTODO PATCH

### Request Path Params

| Campo           | Tipo  | Descrição                                  | Caracteres |
|-----------------|-------|--------------------------------------------|------------|
| `account_key` * | uuid4 | Chave única de identificação da conta.     | 36         |
| `payment_key` * | uuid4 | Chave única de identificação do pagamento. | 36         |

### Body Params

| Campo          | Tipo       | Descrição                               | Caracteres                                              |
|----------------|------------|-----------------------------------------|---------------------------------------------------------|
| `contact_type` | enumerator | Forma de envio do token de autenticação | **[Enumerador contact_type](#enumerador-contact_type)** |

:::info Informação
Caso não seja enviado um `contact_type`, o token será enviado da forma solicitada originalmente.
:::

| Enumerador | Descrição                                         |
|------------|---------------------------------------------------|
| **sms**    | Envio por Mensagem de Texto para telefone celular |
| **email**  | Envio por correio eletrônico                      |

## Response

### Success Response

STATUS 200

Response Body: Token reenviado com sucesso

```json
{
  "payment_key": "c4325104-d60b-44f3-aae4-49155564a2ea",
  "request_control_key": "b713b2f6-2f48-4d18-b0c9-7186e4edf189",
  "payer_name": "COOPERATIVA INDUSTRIAL MURILO",
  "payer_document_number": "00037025000160",
  "source_account_key": "6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
  "transaction_key": "4e80070a-a0bb-4be2-8178-55fbd73a3704",
  "transaction_revert_key": null,
  "paid_amount": 1050.1,
  "payment_date": "2024-04-03",
  "payment_type": "bank_slip",
  "bank_slip": {
    "bank_slip_key": "95080ffd-3ac5-48d7-b3fe-659e4aaba81a",
    "barcode": "00193967000009910000000003615574000000002417",
    "digitable_line": "00190000090361557400500000024174396700000991000",
    "payer_name": "COOPERATIVA TESTE",
    "payer_document_number": "00037025000160",
    "beneficiary_name": "TESTE EQUIPAMENTOS E SERVICOS LTDA",
    "beneficiary_trading_name": "TESTE EQUIPAMENTOS E SERVICOS LTDA",
    "beneficiary_document_number": "52069937000117",
    "beneficiary_bank_ispb": "00000000",
    "guarantor_name": null,
    "guarantor_document_number": null,
    "expiration_date": "2024-03-29",
    "max_payment_data": "2026-03-29",
    "partial_payment_indicator": "allowed",
    "registered_payment_amount": 9029.0,
    "nominal_amount": 9910.0,
    "total_amount": 10129.1,
    "rebate_amount": 0.0,
    "discount_amount": 0.0,
    "fine_amount": 0.0,
    "interest_amount": 219.1
  },
  "collection_slip": null,
  "payment_status": "pending_2fa_approval"
}
```

### Response Body Params

| Campo                     | Tipo                                 | Descrição                                           |
|---------------------------|--------------------------------------|-----------------------------------------------------|
| `payment_key` *           | uuid4                                | Chave única de identificação do pagamento.          |
| `request_control_key` *   | uuid4                                | Chave única de identificação da request do cliente. |
| `payer_name` *            | string                               | Nome do pagador efetivo.                            |
| `payer_document_number` * | string                               | Número documento do pagador efetivo (CPF/CNPJ).     |
| `source_account_key` *    | uuid4                                | Chave da conta debitada.                            |
| `transaction_key` *       | uuid4                                | Chave da transação do pagamento.                    |
| `transaction_revert_key`  | uuid4                                | Chave da transação de reversão do pagamento.        |
| `paid_amount` *           | number                               | Valor pago efetivamente.                            |
| `payment_date` *          | string                               | Data do pagamento.                                  |
| `payment_type` *          | [enum](#enumeradores-payment_type)   | Tipo do pagamento.                                  |
| `bank_slip`               | [object](#objeto-bank_slip)          | Boleto bancário.                                    |
| `collection_slip`         | object                               | Fatura de recolhimento.                             |
| `payment_status` *        | [enum](#enumeradores-payment_status) | Status do pagamento.                                |

### Enumeradores payment_type

| Enumerador        | Tipo   | Descrição              |
|-------------------|--------|------------------------|
| `bank_slip`       | string | Boleto bancário        |
| `collection_slip` | string | Fatura de recolhimento |

:::danger Aviso
O enumerador `collection_slip` não se aplica para o fluxo de boletos bancários, assim como o objeto collection_slip que
sempre será nulo.
:::

### Enumeradores payment_status

| Enumerador             | Descrição                             |
|------------------------|---------------------------------------|
| `pending_2fa_approval` | pendente de aprovação de dois fatores |

### Objeto bank_slip

| Campo                           | Tipo                                            | Descrição                                           |
|---------------------------------|-------------------------------------------------|-----------------------------------------------------|
| `barcode` *                     | string                                          | Código de barras.                                   |
| `digitable_line` *              | string                                          | Linha digitável.                                    |
| `payer_name` *                  | string                                          | Nome do pagador.                                    |
| `payer_document_number` *       | string                                          | Número de documento do pagador (CPF/CNPJ).          |
| `beneficiary_name` *            | string                                          | Nome do beneficiário.                               |
| `beneficiary_trading_name`      | string                                          | Nome fantasia do beneficiário.                      |
| `beneficiary_document_number` * | string                                          | Número de documento do beneficiário (CPF/CNPJ).     |
| `beneficiary_bank_ispb` *       | string                                          | Código ispb do banco do beneficiário.               |
| `guarantor_name`                | string                                          | Nome do sacador avalista.                           |
| `guarantor_document_number`     | string                                          | Número de documento do sacador avalista (CPF/CNPJ). |
| `expiration_date` *             | string                                          | Data de vencimento.                                 |
| `max_payment_date` *            | string                                          | Data máxima de pagamento.                           |
| `partial_payment_indicator` *   | [enum](#enumeradores-partial_payment_indicator) | Indicador de pagamento parcial.                     |
| `registered_payment_amount`     | string                                          | Valor total de pagamento registrado.                |
| `nominal_amount` *              | number                                          | Valor original.                                     |
| `total_amount` *                | number                                          | Valor total.                                        |
| `rebate_amount` *               | number                                          | Valor do abatimento.                                |
| `discount_amount` *             | number                                          | Valor do desconto.                                  |
| `fine_amount` *                 | number                                          | Valor da multa.                                     |
| `interest_amount` *             | number                                          | Valor do juros.                                     |

### Enumeradores partial_payment_indicator

| Enumerador    | Tipo   | Descrição     |
|---------------|--------|---------------|
| `allowed`     | string | Permitido     |
| `not_allowed` | string | Não permitido |

### Error Response

STATUS 4XX

Response Body

```json
{
  "title": "Título",
  "description": "Description in english",
  "translation": "Descrição em português",
  "code": "Código"
}
```

| Código HTTP | Código QI | Título      | Descrição (eng)                                                                                    | Descrição (pt-br)                                                                                         |
|-------------|-----------|-------------|----------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|
| 403         | BIP000010 | Forbidden   | User is not allowed to do this action                                                              | Usuário não tem autorização para fazer essa ação                                                          |
| 404         | BIP000011 | Not Found   | The source account key was not found.                                                              | A chave da conta de origem não foi encontrada.                                                            |
| 400         | BIP000012 | Bad Request | It was not possible to consult the source account at this time. Please try again in a few minutes. | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000013 | Bad Request | The source account is closed.                                                                      | A conta de origem está fechada.                                                                           |
| 400         | BIP000014 | Bad Request | The source account is blocked.                                                                     | A conta de origem está bloqueada.                                                                         |
| 404         | BIP000056 | Not Found   | Payment not found.                                                                                 | Pagamento não encontrado.                                                                                 |
| 400         | BIP000057 | Bad Request | Payment status is not pending approval.                                                            | Status de pagamento não é de aprovação pendente.                                                          |
| 400         | BIP000062 | Bad Request | Payment type is not bank slip.                                                                     | Tipo de pagamento não é boleto.                                                                           |
| 400         | BIP000064 | Bad Request | Error resending verification token                                                                 | Erro ao reenviar token de verificação                                                                     |
| 400         | BIP000065 | Bad Request | Payment verification time window exceeded.                                                         | Janela de tempo de verificação de pagamento excedida.                                                     |

---

# Reenviar Token de Autenticação de Dois Fatores para Pagamentos de Fatura de Recolhimento

URL: /documentation/baas/cobranca/2fa_v2/solicitacao_de_reenvio_de_token_de_fatura_de_recolhimento

Este endpoint permite realizar o reenvio do token de autenticação de pagamentos de faturas de recolhimento.

:::info Fatura de recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgão públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um Boleto bancário apresenta.
:::

## Request

### Request Endpoint

ENDPOINT /account/ ACCOUNT_KEY /payment/ PAYMENT_KEY /collection_slip/resend_token
MÉTODO PATCH

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |
| `payment_key` *     | uuid4   | Chave única de identificação do pagamento.  | 36     |

### Body Params

| Campo          | Tipo   | Descrição                                                                                 | Caracteres |
|----------------|--------|-------------------------------------------------------------------------------------------|------------|
| `contact_type` | enumerator | Forma de envio do token de autenticação | **[Enumerador contact_type](#enumerador-contact_type)** |

:::info Informação
Caso não seja enviado um `contact_type`, o token será enviado da forma solicitada originalmente.
:::

| Enumerador | Descrição                                         |
|------------|---------------------------------------------------|
| **sms**    | Envio por Mensagem de Texto para telefone celular |
| **email**  | Envio por correio eletrônico                      |

## Response

### Success Response

STATUS 200

Response Body: Token reenviado com sucesso

```json
{
  "payment_key": "33860ad0-bcb0-47b7-bbe7-c7e3ec2fc61a",
  "request_control_key": "ae4508df-f2cb-4e28-9f04-a19b7f2758c9",
  "payer_name": "COOPERATIVA INDUSTRIAL MURILO",
  "payer_document_number": "62069937000118",
  "source_account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "transaction_key": "fc9ccfd0-2f21-4207-9772-69238be74152",
  "transaction_revert_key": null,
  "paid_amount": 1389.21,
  "payment_date": "2024-04-30",
  "payment_type": "collection_slip",
  "bank_slip": null,
  "collection_slip": {
    "barcode": null,
    "digitable_line": "836200000138892100450006762142420244046000010192",
    "collection_name": "CIA ULTRAGAZ SA-COD",
    "collection_document_number": "00394460005887",
    "expiration_date": "2024-04-15",
    "total_amount": 1389.21
  },
  "payment_status": "pending_2fa_approval"
}
```

### Response Body Params

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `payment_key` *               | uuid4 | Chave única de identificação do pagamento. |
| `request_control_key` *       | uuid4 | Chave única de identificação da request do cliente. |
| `payer_name` *                | string | Nome do pagador efetivo.|
| `payer_document_number` *     | string | Número de documento do pagador efetivo (CPF/CNPJ). |
| `source_account_key` *        | uuid4 | Chave da conta debitada. |
| `transaction_key` *           | uuid4 | Chave da transação do pagamento. |
| `transaction_revert_key`      | uuid4 | Chave da transação de reversão do pagamento. |
| `paid_amount` *               | number | Valor pago efetivamente. |
| `payment_date` *              | string | Data do pagamento. |
| `payment_type` *              | [enum](#enumeradores-payment_type) | Tipo do pagamento. |
| `bank_slip`                   | object | Boleto bancário. |
| `collection_slip`             | [object](#objeto-collection_slip) | Fatura de recolhimento. |
| `payment_status` *            | [enum](#enumeradores-payment_status) | Status do pagamento. |

### Enumeradores payment_type
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

:::danger Aviso
O enumerador `bank_slip` não se aplica para o fluxo de faturas de recolhimento, assim como o objeto bank_slip que sempre será nulo.
:::

### Enumeradores payment_status
| Enumerador    | Descrição     |
|---------------|---------------|
| `pending_2fa_approval`    | pendente de aprovação de dois fatores |

### Objeto collection_slip
| Campo                             | Tipo    | Descrição                         |
|-----------------------------------|---------|-----------------------------------|
| `barcode`          | string | Código de barras. |
| `digitable_line`   | string | Linha digitável. |
| `collection_name` *         | string | Nome do convênio.|
| `collection_document_number`   | string | Número de documento do convênio (CPF/CNPJ).|
| `expiration_date` *  | string  | Data de vencimento. |
| `total_amount` *  | number | Valor total. |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 403         | BIP000010 | Forbidden | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404         | BIP000011 | Not Found | The source account key was not found. | A chave da conta de origem não foi encontrada. |
| 400         | BIP000012 | Bad Request | It was not possible to consult the source account at this time. Please try again in a few minutes. | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000013 | Bad Request | The source account is closed. | A conta de origem está fechada. |
| 400         | BIP000014 | Bad Request | The source account is blocked. | A conta de origem está bloqueada. |
| 404         | BIP000056 | Not Found | Payment not found. | Pagamento não encontrado. |
| 400         | BIP000057 | Bad Request | Payment status is not pending approval. | Status de pagamento não é de aprovação pendente. |
| 400         | BIP000063 | Bad Request | Payment type is not collection slip. | Tipo de pagamento não é fatura de recolhimento. |
| 400         | BIP000064 | Bad Request | Error resending verification token | Erro ao reenviar token de verificação |
| 400         | BIP000065 | Bad Request | Payment verification time window exceeded. | Janela de tempo de verificação de pagamento excedida. |

---

# Reenviar token de confirmação de lote de pagamento de boleto bancário

URL: /documentation/baas/cobranca/2fa_v2/solicitacao_de_reenvio_de_token_de_lote_de_boleto_bancario

Este endpoint permite **reenviar** o token de autenticação de dois fatores (2FA) para um lote de boletos bancários que esteja aguardando validação do token. Um novo token é gerado e enviado ao aprovador. Se o **limite de tentativas de validação** do token tiver sido excedido, o reenvio pode não ser permitido.

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/account/**ACCOUNT_KEY**/payment/batch_bank_slip/**PAYMENT_BATCH_KEY**/resend_token
MÉTODO PATCH

### Request Path Params

| Campo                 | Tipo  | Descrição                                                                                | Caracteres |
| --------------------- | ----- | ---------------------------------------------------------------------------------------- | ---------- |
| `account_key` *       | uuid4 | Chave única de identificação da conta.                                                   | 36         |
| `payment_batch_key` * | uuid4 | Chave única de identificação do lote (`batch_payment_key` retornado na criação do lote). | 36         |

### Request Body

Request Body (opcional)

```json
{
  "contact_type": "sms"
}
```

### Body Params

| Campo          | Tipo       | Descrição                               | Caracteres                                              |
| -------------- | ---------- | --------------------------------------- | ------------------------------------------------------- |
| `contact_type` | enumerator | Forma de envio do token de autenticação | **[Enumerador contact_type](#enumerador-contact_type)** |

:::info Informação
Caso não seja enviado um `contact_type`, o token será enviado da forma solicitada originalmente (`tfa_info.contact_type`).
:::

### Enumerador contact_type

| Enumerador | Descrição                                         |
| ---------- | ------------------------------------------------- |
| **sms**    | Envio por mensagem de texto para telefone celular |
| **email**  | Envio por correio eletrônico                      |

## Response

### Success Response

STATUS 200

Response Body: Token reenviado com sucesso

```json
{
  "batch_payment_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
  "total_amount": 1357.3,
  "batch_status": "pending_2fa_approval",
  "payment_type": "bank_slip"
}
```

### Response Body Params

| Campo                   | Tipo   | Descrição                                                                                                                                                                                                                                                                                    |
| ----------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `batch_payment_key` *   | uuid4  | Chave única de identificação do pagamento em lote.                                                                                                                                                                                                                                           |
| `request_control_key` * | uuid4  | Chave única de identificação da requisição do cliente (lote).                                                                                                                                                                                                                                |
| `account_key` *         | uuid4  | Chave da conta debitada.                                                                                                                                                                                                                                                                     |
| `total_amount` *        | number | Soma dos valores dos itens do lote.                                                                                                                                                                                                                                                          |
| `batch_status` *        | string | Após o reenvio, o lote permanece aguardando validação do token. O ciclo de `batch_status` está alinhado ao descrito na documentação de **solicitação de pagamento em lote** fornecida à operação (enumeradores `batch_payment_status`). |
| `payment_type` *        | string | Tipo do pagamento; para este fluxo, espera-se `bank_slip`.                                                                                                                                                                                                                                   |

Em seguida, utilize [Validação de token de lote de pagamento de boleto bancário](./validacao_de_token_de_lote_de_boleto_bancario.md) para concluir o 2FA.

### Error Response

STATUS 4XX

Response Body

```json
{
  "title": "Título",
  "description": "Description in english",
  "translation": "Descrição em português",
  "code": "Código"
}
```

| Código HTTP | Código QI | Título      | Descrição (eng)                                                                                    | Descrição (pt-br)                                                                                         |
| ----------- | --------- | ----------- | -------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| 403         | BIP000010 | Forbidden   | User is not allowed to do this action                                                              | Usuário não tem autorização para fazer essa ação                                                          |
| 404         | BIP000011 | Not Found   | The source account key was not found.                                                              | A chave da conta de origem não foi encontrada.                                                            |
| 400         | BIP000012 | Bad Request | It was not possible to consult the source account at this time. Please try again in a few minutes. | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000013 | Bad Request | The source account is closed.                                                                      | A conta de origem está fechada.                                                                           |
| 400         | BIP000014 | Bad Request | The source account is blocked.                                                                     | A conta de origem está bloqueada.                                                                         |
| 400         | BIP000059 | Bad Request | Number of verification token validation attempts exceeded.                                         | Número de tentativas de validação de token de verificação excedido.                                       |
| 400         | BIP000064 | Bad Request | Error resending verification token                                                                 | Erro ao reenviar token de verificação                                                                     |
| 400         | BIP000065 | Bad Request | Payment verification time window exceeded.                                                         | Janela de tempo de verificação de pagamento excedida.                                                     |
| 404         | BIP000083 | Not Found   | Batch payment not found by batch payment key.                                                      | Lote de pagamentos não encontrado pela chave do lote.                                                     |
| 400         | BIP000085 | Bad Request | Batch payment status is not pending approval.                                                      | Status do lote de pagamentos não é de aprovação pendente.                                                 |
| 400         | BIP000086 | Bad Request | A token is required for SMS or email validation.                    | Um token é necessário para validação via SMS ou email.             |

---

# Reenviar token de confirmação de lote de pagamento de fatura de recolhimento (convênio/tributo)

URL: /documentation/baas/cobranca/2fa_v2/solicitacao_de_reenvio_de_token_de_lote_de_fatura_de_recolhimento

Este endpoint permite **reenviar** o token de autenticação de dois fatores (2FA) para um lote de faturas de recolhimento que esteja aguardando validação do token. Um novo token é gerado e enviado ao aprovador. Se o **limite de tentativas de validação** do token tiver sido excedido, o reenvio pode não ser permitido.

:::info Fatura de recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgãos públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um Boleto bancário apresenta.
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/account/**ACCOUNT_KEY**/payment/batch_collection_slip/**PAYMENT_BATCH_KEY**/resend_token
MÉTODO PATCH

### Request Path Params

| Campo                 | Tipo  | Descrição                                                                                | Caracteres |
| --------------------- | ----- | ---------------------------------------------------------------------------------------- | ---------- |
| `account_key` *       | uuid4 | Chave única de identificação da conta.                                                   | 36         |
| `payment_batch_key` * | uuid4 | Chave única de identificação do lote (`batch_payment_key` retornado na criação do lote). | 36         |

### Request Body

Request Body (opcional)

```json
{
  "contact_type": "sms"
}
```

### Body Params

| Campo          | Tipo       | Descrição                               | Caracteres                                              |
| -------------- | ---------- | --------------------------------------- | ------------------------------------------------------- |
| `contact_type` | enumerator | Forma de envio do token de autenticação | **[Enumerador contact_type](#enumerador-contact_type)** |

:::info Informação
Caso não seja enviado um `contact_type`, o token será enviado da forma solicitada originalmente (`tfa_info.contact_type`).
:::

### Enumerador contact_type

| Enumerador | Descrição                                         |
| ---------- | ------------------------------------------------- |
| **sms**    | Envio por mensagem de texto para telefone celular |
| **email**  | Envio por correio eletrônico                      |

## Response

### Success Response

STATUS 200

Response Body: Token reenviado com sucesso

```json
{
  "batch_payment_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "total_amount": 2778.42,
  "batch_status": "pending_2fa_approval",
  "payment_type": "collection_slip"
}
```

### Response Body Params

| Campo                   | Tipo   | Descrição                                                                                                                                                                                                                                                                                                      |
| ----------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `batch_payment_key` *   | uuid4  | Chave única de identificação do pagamento em lote.                                                                                                                                                                                                                                                             |
| `request_control_key` * | uuid4  | Chave única de identificação da requisição do cliente (lote).                                                                                                                                                                                                                                                  |
| `account_key` *         | uuid4  | Chave da conta debitada.                                                                                                                                                                                                                                                                                       |
| `total_amount` *        | number | Soma dos valores dos itens do lote.                                                                                                                                                                                                                                                                            |
| `batch_status` *        | string | Após o reenvio, o lote permanece aguardando validação do token. O ciclo de `batch_status` está alinhado ao descrito na documentação de **solicitação de pagamento em lote** fornecida à operação (enumeradores `batch_payment_status`). |
| `payment_type` *        | string | Tipo do pagamento; para este fluxo, espera-se `collection_slip`.                                                                                                                                                                                                                                               |

Em seguida, utilize [Validação de token de lote de pagamento de fatura de recolhimento (convênio/tributo)](./validacao_de_token_de_lote_de_fatura_de_recolhimento.md) para concluir o 2FA.

### Error Response

STATUS 4XX

Response Body

```json
{
  "title": "Título",
  "description": "Description in english",
  "translation": "Descrição em português",
  "code": "Código"
}
```

| Código HTTP | Código QI | Título      | Descrição (eng)                                                                                    | Descrição (pt-br)                                                                                         |
| ----------- | --------- | ----------- | -------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| 403         | BIP000010 | Forbidden   | User is not allowed to do this action                                                              | Usuário não tem autorização para fazer essa ação                                                          |
| 404         | BIP000011 | Not Found   | The source account key was not found.                                                              | A chave da conta de origem não foi encontrada.                                                            |
| 400         | BIP000012 | Bad Request | It was not possible to consult the source account at this time. Please try again in a few minutes. | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000013 | Bad Request | The source account is closed.                                                                      | A conta de origem está fechada.                                                                           |
| 400         | BIP000014 | Bad Request | The source account is blocked.                                                                     | A conta de origem está bloqueada.                                                                         |                                                |
| 400         | BIP000059 | Bad Request | Number of verification token validation attempts exceeded.                                         | Número de tentativas de validação de token de verificação excedido.                                       |
| 400         | BIP000064 | Bad Request | Error resending verification token                                                                 | Erro ao reenviar token de verificação                                                                     |
| 400         | BIP000065 | Bad Request | Payment verification time window exceeded.                                                         | Janela de tempo de verificação de pagamento excedida.                                                     |
| 404         | BIP000083 | Not Found   | Batch payment not found by batch payment key.                                                      | Lote de pagamentos não encontrado pela chave do lote.                                                     |
| 400         | BIP000085 | Bad Request | Batch payment status is not pending approval.                                                      | Status do lote de pagamentos não é de aprovação pendente.
| 400         | BIP000086 | Bad Request | A token is required for SMS or email validation.                    | Um token é necessário para validação via SMS ou email.             |

---

# Solicitar pagamento em lote de boleto bancário com autenticação de dois fatores

URL: /documentation/baas/cobranca/2fa_v2/solicitar_pagamento_lote_de_boleto_bancario_com_confirmacao_de_lote

Este endpoint permite solicitar o pagamento de múltiplos boletos bancários em uma única requisição, com **`tfa_info`** quando a operação exigir autenticação de dois fatores **nesta solicitação**.

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.
:::

:::info Fluxo após a solicitação
Após a solicitação, o lote pode permanecer aguardando a [confirmação do lote com autenticação de dois fatores](./confirmacao_de_lote_de_boleto_bancario.md), conforme as regras da operação. Nesta etapa de confirmação, siga o fluxo com `tfa_info` descrito nessa documentação.
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/account/ ACCOUNT_KEY /payments/batch_bank_slip
MÉTODO POST

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |

Request Body: Pagamento em lote de boletos bancários (sem TFA nesta etapa)

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "bank_slip_payments": [
    {
      "request_control_key": "c7915a43-212f-5813-9adc-d3ed5d3d3bfd",
      "digitable_line": "00190000090361557400500000024174396700000991000",
      "payment_amount": 1156.8
    },
    {
      "request_control_key": "d8a26b54-323a-4924-0aed-e4fe6e4e4c0e",
      "barcode": "00190000090361557400500000024174396700000991000",
      "payment_amount": 200.5
    }
  ]
}
```

### Body Params

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da requisição do cliente (lote). |
| `bank_slip_payments` * | array     | Lista de pagamentos de boleto bancário. Limite de **1000** itens por requisição. |

Cada elemento de `bank_slip_payments` deve conter:

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da requisição do cliente para aquele item do lote. |
| `barcode`               | string    | Código de barras. |
| `digitable_line`        | string    | Linha digitável. |
| `payment_amount` *      | number    | Valor a ser pago. |

:::danger Aviso
Para cada item, o `payment_amount` enviado deve ser compatível com o que a consulta interna do boleto determinar: se o pagamento parcial **não** for permitido para aquele título, o valor deve corresponder ao total atualizado; se for permitido, o `payment_amount` pode seguir as regras do título (incluindo, quando aplicável, valores acima do nominal), como no fluxo de pagamento unitário de boleto bancário.
:::

### Objeto tfa_info

| Campo                        | Tipo   | Descrição                                                                                                                                          |
| ---------------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| `approver_document_number` * | string | Documento (CPF/CNPJ) da pessoa aprovadora que receberá o token ou aprovará via dispositivo. Obrigatório quando `tfa_info` é enviado.                |
| `session_id`                 | string | Chave única de identificação da sessão do dispositivo no formato UUID v4 (**obrigatório** para TFA via dispositivo).                               |
| `contact_type` *             | string | Canal para envio ou validação do token: **[Enumerador contact_type](#enumerador-contact_type)**. Obrigatório quando `tfa_info` é enviado. |

#### Enumerador contact_type

| Enumerador | Descrição                                         |
|------------|---------------------------------------------------|
| **sms**    | Envio por mensagem de texto para telefone celular |
| **email**  | Envio por correio eletrônico                      |
| **device** | Validação por token do dispositivo                |

## Response

### Success Response

STATUS 202

Response Body: Lote aceito para processamento

```json
{
  "batch_payment_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
  "total_amount": 1357.3,
  "batch_status": "pending",
  "payment_type": "bank_slip"
}
```

Response Body: exemplo ilustrativo (`batch_status` aprovado)

```json
{
  "batch_payment_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
  "total_amount": 1357.3,
  "batch_status": "approved",
  "payment_type": "bank_slip"
}
```

:::info Processamento do lote
O campo `batch_status` na resposta indica o **estado imediato** do lote após esta solicitação (por exemplo, pendente de confirmação, pendente de aprovação 2FA ou já encaminhado ao processamento), conforme o fluxo aplicável. Quando houver etapa de [confirmação do lote](./confirmacao_de_lote_de_boleto_bancario.md), siga essa documentação para aprovar ou rejeitar o lote com autenticação de dois fatores. Os valores possíveis de `batch_status` estão em [batch_payment_status](#enumeradores-batch_payment_status).
:::

### Response Body Params

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `batch_payment_key` *       | uuid4 | Chave única de identificação do pagamento em lote. |
| `request_control_key` *     | uuid4 | Chave única de identificação da requisição do cliente (lote). |
| `account_key` *             | uuid4 | Chave da conta debitada. |
| `total_amount` *            | number | Soma dos valores (`payment_amount`) dos itens do lote. |
| `batch_status` *         | [enum](#enumeradores-batch_payment_status) | Status do lote logo após a solicitação; depende do fluxo (confirmação, 2FA e processamento imediato). |
| `payment_type` *            | [enum](#enumeradores-payment_type) | Tipo do pagamento. |

### Enumeradores batch_payment_status

| Enumerador    | Descrição     |
|---------------|---------------|
| `pending`     | Pendente de processamento |
| `pending_2fa_approval` | Pendente de aprovação 2FA |
| `rejected`    | Rejeitado |
| `approved`    | Aprovado |
| `processed`   | Processado |

### Enumeradores payment_type

| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

:::danger Aviso
O enumerador `collection_slip` não se aplica ao fluxo de lote de boletos bancários deste endpoint; para este caso, espera-se `payment_type` com valor `bank_slip`.
:::

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 403         | BIP000010 | Forbidden | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404         | BIP000011 | Not Found | The source account key was not found. | A chave da conta de origem não foi encontrada. |
| 400         | BIP000012 | Bad Request | It was not possible to consult the source account at this time. Please try again in a few minutes. | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000024 | Bad Request | Request control key already exists. | Chave de controle da requisição já existe. |
| 400         | BIP000050 | Bad Request | Requester configuration does not exist. | Configuração do requester não existe. |
| 400         | BIP000052 | Bad Request | Given document number does not belong to an approver for this account | Número de documento enviado não pertence a um aprovador da conta |
| 400         | BIP000053 | Bad Request | Error getting approver data | Erro ao obter dados do aprovador |
| 400         | BIP000054 | Bad Request | TFA info required | Informações de TFA necessárias |
| 400         | BIP000055 | Bad Request | Error sending verification token | Erro ao enviar token de verificação |
| 400         | BIP000065 | Bad Request | Payment verification time window exceeded. | Janela de tempo de verificação de pagamento excedida. |
| 400         | BIP000079 | Bad Request | A session_id must be provided token | Uma session_id deve ser fornecida |
| 400         | BIP000080 | Bad Request | Beneficiary bank code of this bank slip is not allowed. | Banco beneficiário desse boleto não é permitido. |
| 400         | BIP000081 | Bad Request | A list of bank slip payments must be provided. | Uma lista de boletos bancários deve ser fornecida. |

---

# Solicitar pagamento em lote de boleto bancário com autenticação de dois fatores

URL: /documentation/baas/cobranca/2fa_v2/solicitar_pagamento_lote_de_boleto_bancario_sem_confirmacao_de_lote

Este endpoint permite solicitar o pagamento de múltiplos boletos bancários em uma única requisição, com **`tfa_info`** quando a operação exigir autenticação de dois fatores **nesta solicitação**.

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/account/ ACCOUNT_KEY /payments/batch_bank_slip
MÉTODO POST

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |

## Autenticação via email e SMS

Request Body: lote com linha digitável e TFA por SMS ou email

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  },
  "bank_slip_payments": [
    {
      "request_control_key": "c7915a43-212f-5813-9adc-d3ed5d3d3bfd",
      "digitable_line": "00190000090361557400500000024174396700000991000",
      "payment_amount": 1156.8
    }
  ]
}
```

Request Body: lote com código de barras e TFA por SMS ou email

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  },
  "bank_slip_payments": [
    {
      "request_control_key": "c7915a43-212f-5813-9adc-d3ed5d3d3bfd",
      "barcode": "00190000090361557400500000024174396700000991000",
      "payment_amount": 1156.8
    }
  ]
}
```

## Autenticação via dispositivo

Além das formas já existentes de autenticação via **sms** e **email**, é possível autenticar a transação utilizando um dispositivo [previamente cadastrado](/documentation/baas/dispositivo/create/solicitacao_cadastro_dispositivo). Nesse caso, o `session_id` deve ser obtido na **Device Scan** e enviado no `tfa_info`.

Request Body: lote com linha digitável e TFA por dispositivo

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "session_id": "b2f18d3a-67c2-4a7f-98e5-1d3f5c6b8a72",
    "contact_type": "device"
  },
  "bank_slip_payments": [
    {
      "request_control_key": "c7915a43-212f-5813-9adc-d3ed5d3d3bfd",
      "digitable_line": "00190000090361557400500000024174396700000991000",
      "payment_amount": 1156.8
    }
  ]
}
```

Request Body: lote com código de barras e TFA por dispositivo

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "session_id": "b2f18d3a-67c2-4a7f-98e5-1d3f5c6b8a72",
    "contact_type": "device"
  },
  "bank_slip_payments": [
    {
      "request_control_key": "c7915a43-212f-5813-9adc-d3ed5d3d3bfd",
      "barcode": "00190000090361557400500000024174396700000991000",
      "payment_amount": 1156.8
    }
  ]
}
```

### Body Params

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da requisição do cliente (lote). |
| `tfa_info`       | object | Quando o 2FA for exigido **nesta etapa** (solicitação do lote), envie aprovador e canal de envio do token no [objeto `tfa_info`](#objeto-tfa_info). Caso o fluxo não exija 2FA na solicitação, omita o campo. |
| `bank_slip_payments` * | array     | Lista de pagamentos de boleto bancário. Limite de **1000** itens por requisição. |

Cada elemento de `bank_slip_payments` deve conter:

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da requisição do cliente para aquele item do lote. |
| `barcode`               | string    | Código de barras. |
| `digitable_line`        | string    | Linha digitável. |
| `payment_amount` *      | number    | Valor a ser pago. |

:::danger Aviso
Para cada item, o `payment_amount` enviado deve ser compatível com o que a consulta interna do boleto determinar: se o pagamento parcial **não** for permitido para aquele título, o valor deve corresponder ao total atualizado; se for permitido, o `payment_amount` pode seguir as regras do título (incluindo, quando aplicável, valores acima do nominal), como no fluxo de pagamento unitário de boleto bancário.
:::

### Objeto tfa_info

| Campo                        | Tipo   | Descrição                                                                                                                                          |
| ---------------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| `approver_document_number` * | string | Documento (CPF/CNPJ) da pessoa aprovadora que receberá o token ou aprovará via dispositivo. Obrigatório quando `tfa_info` é enviado.                |
| `session_id`                 | string | Chave única de identificação da sessão do dispositivo no formato UUID v4 (**obrigatório** para TFA via dispositivo).                               |
| `contact_type` *             | string | Canal para envio ou validação do token: **[Enumerador contact_type](#enumerador-contact_type)**. Obrigatório quando `tfa_info` é enviado. |

#### Enumerador contact_type

| Enumerador | Descrição                                         |
|------------|---------------------------------------------------|
| **sms**    | Envio por mensagem de texto para telefone celular |
| **email**  | Envio por correio eletrônico                      |
| **device** | Validação por token do dispositivo                |

## Response

### Success Response

STATUS 201

Response Body: Lote pendente de aprovação de dois fatores

```json
{
  "batch_payment_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
  "total_amount": 1357.3,
  "batch_status": "pending_2fa_approval",
  "payment_type": "bank_slip"
}
```

:::info Processamento do lote
O campo `batch_status` na resposta indica o **estado imediato** do lote após esta solicitação (por exemplo, pendente de aprovação 2FA ou já encaminhado ao processamento), conforme o fluxo aplicável. O 2FA pode integrar esta solicitação (`tfa_info`) ou outras etapas do fluxo, conforme a operação. Os valores possíveis de `batch_status` estão em [batch_payment_status](#enumeradores-batch_payment_status).
:::

### Response Body Params

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `batch_payment_key` *       | uuid4 | Chave única de identificação do pagamento em lote. |
| `request_control_key` *     | uuid4 | Chave única de identificação da requisição do cliente (lote). |
| `account_key` *             | uuid4 | Chave da conta debitada. |
| `total_amount` *            | number | Soma dos valores (`payment_amount`) dos itens do lote. |
| `batch_status` *         | [enum](#enumeradores-batch_payment_status) | Status do lote logo após a solicitação; depende do fluxo (2FA e processamento imediato). |
| `payment_type` *            | [enum](#enumeradores-payment_type) | Tipo do pagamento. |

### Enumeradores batch_payment_status

| Enumerador    | Descrição     |
|---------------|---------------|
| `pending`     | Pendente de processamento |
| `pending_2fa_approval` | Lote pendente de 2FA para aprovação |
| `pending_2fa_rejection` | Lote pendente de 2FA para rejeição |
| `rejected`    | Rejeitado |
| `approved`    | Aprovado |
| `processed`   | Processado |

### Enumeradores payment_type

| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

:::danger Aviso
O enumerador `collection_slip` não se aplica ao fluxo de lote de boletos bancários deste endpoint; para este caso, espera-se `payment_type` com valor `bank_slip`.
:::

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 403         | BIP000010 | Forbidden | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404         | BIP000011 | Not Found | The source account key was not found. | A chave da conta de origem não foi encontrada. |
| 400         | BIP000012 | Bad Request | It was not possible to consult the source account at this time. Please try again in a few minutes. | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000024 | Bad Request | Request control key already exists. | Chave de controle da requisição já existe. |
| 400         | BIP000050 | Bad Request | Requester configuration does not exist. | Configuração do requester não existe. |
| 400         | BIP000052 | Bad Request | Given document number does not belong to an approver for this account | Número de documento enviado não pertence a um aprovador da conta |
| 400         | BIP000053 | Bad Request | Error getting approver data | Erro ao obter dados do aprovador |
| 400         | BIP000054 | Bad Request | TFA info required | Informações de TFA necessárias |
| 400         | BIP000055 | Bad Request | Error sending verification token | Erro ao enviar token de verificação |
| 400         | BIP000065 | Bad Request | Payment verification time window exceeded. | Janela de tempo de verificação de pagamento excedida. |
| 400         | BIP000079 | Bad Request | A session_id must be provided token | Uma session_id deve ser fornecida |
| 400         | BIP000080 | Bad Request | Beneficiary bank code of this bank slip is not allowed. | Banco beneficiário desse boleto não é permitido. |
| 400         | BIP000081 | Bad Request | A list of bank slip payments must be provided. | Uma lista de boletos bancários deve ser fornecida. |

---

# Solicitar pagamento em lote de fatura de recolhimento (convênio/tributo) com autenticação de dois fatores

URL: /documentation/baas/cobranca/2fa_v2/solicitar_pagamento_lote_de_fatura_de_recolhimento_com_confirmacao_de_lote

Este endpoint permite solicitar o pagamento de múltiplas faturas de recolhimento em uma única requisição, com **`tfa_info`** quando a operação exigir autenticação de dois fatores **nesta solicitação**.

:::info Fatura de recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgãos públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um boleto bancário apresenta.
:::

:::info Fluxo após a solicitação
Após a solicitação, o lote pode permanecer aguardando a [confirmação do lote com autenticação de dois fatores](./confirmacao_de_lote_de_fatura_de_recolhimento.md), conforme as regras da operação. Quando o 2FA for exigido nesta solicitação, o corpo deve incluir **`tfa_info`** conforme as seções abaixo e o [objeto `tfa_info`](#objeto-tfa_info). Na etapa de confirmação do lote deste fluxo, siga a documentação com `tfa_info`.
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/account/ ACCOUNT_KEY /payments/batch_collection_slip
MÉTODO POST

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |

Request Body: Pagamento em lote de faturas de recolhimento (sem TFA nesta etapa)

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "collection_slip_payments": [
    {
      "request_control_key": "c7915a43-212f-5813-9adc-d3ed5d3d3bfd",
      "digitable_line": "836200000138892100450006762142420244046000010192",
      "payment_amount": 1389.21
    },
    {
      "request_control_key": "d8a26b54-323a-4924-0aed-e4fe6e4e4c0e",
      "barcode": "83620000001388921004500067621424202440460000101",
      "payment_amount": 1389.21
    }
  ]
}
```

## Autenticação via email e SMS

Request Body: lote com linha digitável e TFA por SMS ou email

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  },
  "collection_slip_payments": [
    {
      "request_control_key": "c7915a43-212f-5813-9adc-d3ed5d3d3bfd",
      "digitable_line": "836200000138892100450006762142420244046000010192",
      "payment_amount": 1389.21
    }
  ]
}
```

Request Body: lote com código de barras e TFA por SMS ou email

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  },
  "collection_slip_payments": [
    {
      "request_control_key": "c7915a43-212f-5813-9adc-d3ed5d3d3bfd",
      "barcode": "83620000001388921004500067621424202440460000101",
      "payment_amount": 1389.21
    }
  ]
}
```

## Autenticação via dispositivo

Além das formas já existentes de autenticação via **sms** e **email**, é possível autenticar a transação utilizando um dispositivo [previamente cadastrado](/documentation/baas/dispositivo/create/solicitacao_cadastro_dispositivo). Nesse caso, o `session_id` deve ser obtido na **Device Scan** e enviado no `tfa_info`.

Request Body: lote com linha digitável e TFA por dispositivo

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "session_id": "b2f18d3a-67c2-4a7f-98e5-1d3f5c6b8a72",
    "contact_type": "device"
  },
  "collection_slip_payments": [
    {
      "request_control_key": "c7915a43-212f-5813-9adc-d3ed5d3d3bfd",
      "digitable_line": "836200000138892100450006762142420244046000010192",
      "payment_amount": 1389.21
    }
  ]
}
```

Request Body: lote com código de barras e TFA por dispositivo

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "session_id": "b2f18d3a-67c2-4a7f-98e5-1d3f5c6b8a72",
    "contact_type": "device"
  },
  "collection_slip_payments": [
    {
      "request_control_key": "c7915a43-212f-5813-9adc-d3ed5d3d3bfd",
      "barcode": "83620000001388921004500067621424202440460000101",
      "payment_amount": 1389.21
    }
  ]
}
```

### Body Params

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da requisição do cliente (lote). |
| `tfa_info`       | object | Quando o 2FA for exigido **nesta etapa** (solicitação do lote), envie aprovador e canal de envio do token no [objeto `tfa_info`](#objeto-tfa_info). Caso o fluxo não exija 2FA na solicitação, omita o campo. |
| `collection_slip_payments` * | array     | Lista de pagamentos de fatura de recolhimento. Limite de **1000** itens por requisição. |

Cada elemento de `collection_slip_payments` deve conter:

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da requisição do cliente para aquele item do lote. |
| `barcode`               | string    | Código de barras. |
| `digitable_line`        | string    | Linha digitável. |
| `payment_amount` *      | number    | Valor a ser pago. |

:::danger Aviso
Para cada item, o `payment_amount` enviado deve ser compatível com o que a consulta interna da fatura de recolhimento determinar (por exemplo, alinhado ao `total_amount` e às regras do convênio/tributo), nas mesmas condições do fluxo de pagamento unitário de fatura de recolhimento.
:::

### Objeto tfa_info

| Campo                        | Tipo   | Descrição                                                                                                                                          |
| ---------------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| `approver_document_number` * | string | Documento (CPF/CNPJ) da pessoa aprovadora que receberá o token ou aprovará via dispositivo. Obrigatório quando `tfa_info` é enviado.                |
| `session_id`                 | string | Chave única de identificação da sessão do dispositivo no formato UUID v4 (**obrigatório** para TFA via dispositivo).                               |
| `contact_type` *             | string | Canal para envio ou validação do token: **[Enumerador contact_type](#enumerador-contact_type)**. Obrigatório quando `tfa_info` é enviado. |

#### Enumerador contact_type

| Enumerador | Descrição                                         |
|------------|---------------------------------------------------|
| **sms**    | Envio por mensagem de texto para telefone celular |
| **email**  | Envio por correio eletrônico                      |
| **device** | Validação por token do dispositivo                |

## Response

### Success Response

STATUS 202

Response Body: Lote aceito para processamento

```json
{
  "batch_payment_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "total_amount": 2778.42,
  "batch_status": "pending",
  "payment_type": "collection_slip"
}
```

Response Body: exemplo ilustrativo (`batch_status` aprovado)

```json
{
  "batch_payment_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "total_amount": 2778.42,
  "batch_status": "approved",
  "payment_type": "collection_slip"
}
```

:::info Processamento do lote
O campo `batch_status` na resposta indica o **estado imediato** do lote após esta solicitação (por exemplo, pendente de confirmação, pendente de aprovação 2FA ou já encaminhado ao processamento), conforme o fluxo aplicável. Quando houver etapa de [confirmação do lote](./confirmacao_de_lote_de_fatura_de_recolhimento.md), siga essa documentação para aprovar ou rejeitar o lote com autenticação de dois fatores. Os valores possíveis de `batch_status` estão em [batch_payment_status](#enumeradores-batch_payment_status).
:::

### Response Body Params

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `batch_payment_key` *       | uuid4 | Chave única de identificação do pagamento em lote. |
| `request_control_key` *     | uuid4 | Chave única de identificação da requisição do cliente (lote). |
| `account_key` *             | uuid4 | Chave da conta debitada. |
| `total_amount` *            | number | Soma dos valores (`payment_amount`) dos itens do lote. |
| `batch_status` *         | [enum](#enumeradores-batch_payment_status) | Status do lote logo após a solicitação; depende do fluxo (confirmação, 2FA e processamento imediato). |
| `payment_type` *            | [enum](#enumeradores-payment_type) | Tipo do pagamento. |

### Enumeradores batch_payment_status

| Enumerador    | Descrição     |
|---------------|---------------|
| `pending`     | Pendente de processamento |
| `pending_2fa_approval` | Pendente de aprovação 2FA |
| `rejected`    | Rejeitado |
| `approved`    | Aprovado |
| `processed`   | Processado |

### Enumeradores payment_type

| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

:::danger Aviso
O enumerador `bank_slip` não se aplica ao fluxo de lote de faturas de recolhimento deste endpoint; para este caso, espera-se `payment_type` com valor `collection_slip`.
:::

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 400         | BIP000024 | Bad Request | Request control key already exists. | Chave de controle da requisição já existe. |
| 400         | BIP000050 | Bad Request | Requester configuration does not exist. | Configuração do requester não existe. |
| 400         | BIP000052 | Bad Request | Given document number does not belong to an approver for this account | Número de documento enviado não pertence a um aprovador da conta |
| 400         | BIP000053 | Bad Request | Error getting approver data | Erro ao obter dados do aprovador |
| 400         | BIP000054 | Bad Request | TFA info required | Informações de TFA necessárias |
| 400         | BIP000055 | Bad Request | Error sending verification token | Erro ao enviar token de verificação |
| 400         | BIP000065 | Bad Request | Payment verification time window exceeded. | Janela de tempo de verificação de pagamento excedida. |
| 400         | BIP000079 | Bad Request | A session_id must be provided token | Uma session_id deve ser fornecida |
| 400         | BIP000082 | Bad Request | A list of collection slip payments must be provided. | Uma lista de faturas de recolhimento deve ser fornecida. |

---

# Solicitar pagamento em lote de fatura de recolhimento (convênio/tributo) com autenticação de dois fatores

URL: /documentation/baas/cobranca/2fa_v2/solicitar_pagamento_lote_de_fatura_de_recolhimento_sem_confirmacao_de_lote

Este endpoint permite solicitar o pagamento de múltiplas faturas de recolhimento em uma única requisição, com **`tfa_info`** quando a operação exigir autenticação de dois fatores **nesta solicitação**.

:::info Fatura de recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgãos públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um boleto bancário apresenta.
:::

:::info Fluxo após a solicitação
A **autenticação de dois fatores (2FA)** é exigida **nesta solicitação**; o corpo deve incluir **`tfa_info`** conforme as seções abaixo e o [objeto `tfa_info`](#objeto-tfa_info).
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/account/ ACCOUNT_KEY /payments/batch_collection_slip
MÉTODO POST

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |

## Autenticação via email e SMS

Request Body: lote com linha digitável e TFA por SMS ou email

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  },
  "collection_slip_payments": [
    {
      "request_control_key": "c7915a43-212f-5813-9adc-d3ed5d3d3bfd",
      "digitable_line": "836200000138892100450006762142420244046000010192",
      "payment_amount": 1389.21
    }
  ]
}
```

Request Body: lote com código de barras e TFA por SMS ou email

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  },
  "collection_slip_payments": [
    {
      "request_control_key": "c7915a43-212f-5813-9adc-d3ed5d3d3bfd",
      "barcode": "83620000001388921004500067621424202440460000101",
      "payment_amount": 1389.21
    }
  ]
}
```

## Autenticação via dispositivo

Além das formas já existentes de autenticação via **sms** e **email**, é possível autenticar a transação utilizando um dispositivo [previamente cadastrado](/documentation/baas/dispositivo/create/solicitacao_cadastro_dispositivo). Nesse caso, o `session_id` deve ser obtido na **Device Scan** e enviado no `tfa_info`.

Request Body: lote com linha digitável e TFA por dispositivo

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "session_id": "b2f18d3a-67c2-4a7f-98e5-1d3f5c6b8a72",
    "contact_type": "device"
  },
  "collection_slip_payments": [
    {
      "request_control_key": "c7915a43-212f-5813-9adc-d3ed5d3d3bfd",
      "digitable_line": "836200000138892100450006762142420244046000010192",
      "payment_amount": 1389.21
    }
  ]
}
```

Request Body: lote com código de barras e TFA por dispositivo

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "session_id": "b2f18d3a-67c2-4a7f-98e5-1d3f5c6b8a72",
    "contact_type": "device"
  },
  "collection_slip_payments": [
    {
      "request_control_key": "c7915a43-212f-5813-9adc-d3ed5d3d3bfd",
      "barcode": "83620000001388921004500067621424202440460000101",
      "payment_amount": 1389.21
    }
  ]
}
```

### Body Params

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da requisição do cliente (lote). |
| `tfa_info`       | object | Quando o 2FA for exigido **nesta etapa** (solicitação do lote), envie aprovador e canal de envio do token no [objeto `tfa_info`](#objeto-tfa_info). Caso o fluxo não exija 2FA na solicitação, omita o campo. |
| `collection_slip_payments` * | array     | Lista de pagamentos de fatura de recolhimento. Limite de **1000** itens por requisição. |

Cada elemento de `collection_slip_payments` deve conter:

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da requisição do cliente para aquele item do lote. |
| `barcode`               | string    | Código de barras. |
| `digitable_line`        | string    | Linha digitável. |
| `payment_amount` *      | number    | Valor a ser pago. |

:::danger Aviso
Para cada item, o `payment_amount` enviado deve ser compatível com o que a consulta interna da fatura de recolhimento determinar (por exemplo, alinhado ao `total_amount` e às regras do convênio/tributo), nas mesmas condições do fluxo de pagamento unitário de fatura de recolhimento.
:::

### Objeto tfa_info

Os campos seguem o mesmo formato da [solicitação de pagamento de fatura de recolhimento](./solicitacao_de_pagamento_de_fatura_de_recolhimento.md#objeto-tfa_info).

| Campo                        | Tipo   | Descrição                                                                                                                                          |
| ---------------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| `approver_document_number` * | string | Documento (CPF/CNPJ) da pessoa aprovadora que receberá o token ou aprovará via dispositivo. Obrigatório quando `tfa_info` é enviado.                |
| `session_id`                 | string | Chave única de identificação da sessão do dispositivo no formato UUID v4 (**obrigatório** para TFA via dispositivo).                               |
| `contact_type` *             | string | Canal para envio ou validação do token: **[Enumerador contact_type](#enumerador-contact_type)**. Obrigatório quando `tfa_info` é enviado. |

#### Enumerador contact_type

| Enumerador | Descrição                                         |
|------------|---------------------------------------------------|
| **sms**    | Envio por mensagem de texto para telefone celular |
| **email**  | Envio por correio eletrônico                      |
| **device** | Validação por token do dispositivo                |

## Response

### Success Response

STATUS 202

Response Body: Lote aceito para processamento

```json
{
  "batch_payment_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "total_amount": 2778.42,
  "batch_status": "pending",
  "payment_type": "collection_slip"
}
```

Response Body: exemplo ilustrativo com `batch_status` aprovado

```json
{
  "batch_payment_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "total_amount": 2778.42,
  "batch_status": "approved",
  "payment_type": "collection_slip"
}
```

:::info Processamento do lote
O campo `batch_status` na resposta indica o **estado imediato** do lote após esta solicitação (por exemplo, pendente de aprovação 2FA ou já encaminhado ao processamento), conforme o fluxo aplicável. O 2FA pode integrar esta solicitação (`tfa_info`) ou outras etapas do fluxo, conforme a operação. Os valores possíveis de `batch_status` estão em [batch_payment_status](#enumeradores-batch_payment_status).
:::

### Response Body Params

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `batch_payment_key` *       | uuid4 | Chave única de identificação do pagamento em lote. |
| `request_control_key` *     | uuid4 | Chave única de identificação da requisição do cliente (lote). |
| `account_key` *             | uuid4 | Chave da conta debitada. |
| `total_amount` *            | number | Soma dos valores (`payment_amount`) dos itens do lote. |
| `batch_status` *         | [enum](#enumeradores-batch_payment_status) | Status do lote logo após a solicitação; depende do fluxo (2FA e processamento imediato). |
| `payment_type` *            | [enum](#enumeradores-payment_type) | Tipo do pagamento. |

### Enumeradores batch_payment_status

| Enumerador    | Descrição     |
|---------------|---------------|
| `pending`     | Pendente de processamento |
| `pending_2fa_approval` | Pendente de aprovação 2FA |
| `rejected`    | Rejeitado |
| `approved`    | Aprovado |
| `processed`   | Processado |

### Enumeradores payment_type

| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

:::danger Aviso
O enumerador `bank_slip` não se aplica ao fluxo de lote de faturas de recolhimento deste endpoint; para este caso, espera-se `payment_type` com valor `collection_slip`.
:::

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 400         | BIP000024 | Bad Request | Request control key already exists. | Chave de controle da requisição já existe. |
| 400         | BIP000050 | Bad Request | Requester configuration does not exist. | Configuração do requester não existe. |
| 400         | BIP000052 | Bad Request | Given document number does not belong to an approver for this account | Número de documento enviado não pertence a um aprovador da conta |
| 400         | BIP000053 | Bad Request | Error getting approver data | Erro ao obter dados do aprovador |
| 400         | BIP000054 | Bad Request | TFA info required | Informações de TFA necessárias |
| 400         | BIP000055 | Bad Request | Error sending verification token | Erro ao enviar token de verificação |
| 400         | BIP000065 | Bad Request | Payment verification time window exceeded. | Janela de tempo de verificação de pagamento excedida. |
| 400         | BIP000079 | Bad Request | A session_id must be provided token | Uma session_id deve ser fornecida |
| 400         | BIP000082 | Bad Request | A list of collection slip payments must be provided. | Uma lista de faturas de recolhimento deve ser fornecida. |

---

# Validação de token de lote de pagamento de boleto bancário

URL: /documentation/baas/cobranca/2fa_v2/validacao_de_token_de_lote_de_boleto_bancario

Este endpoint conclui a etapa de **autenticação de dois fatores (2FA)** para um lote de boletos bancários que, após a [confirmação do lote com `tfa_info`](./confirmacao_de_lote_de_boleto_bancario.md), encontra-se em `batch_status` **`pending_2fa_approval`** (aprovação) ou **`pending_2fa_rejection`** (rejeição). Com o token validado, o lote segue para **processamento assíncrono** dos pagamentos e o status final reflete a decisão registrada na confirmação (`approved` ou `rejected`). Para solicitar novo envio do token enquanto o lote estiver em **pending_2fa_approval** (aprovação) ou **pending_2fa_rejection** (rejeição), use [Reenviar token de confirmação de lote de pagamento de boleto bancário](./solicitacao_de_reenvio_de_token_de_lote_de_boleto_bancario.md).

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/account/**ACCOUNT_KEY**/payment/batch_bank_slip/**PAYMENT_BATCH_KEY**/validate_token
MÉTODO PATCH

### Request Path Params

| Campo                 | Tipo  | Descrição                                                                                | Caracteres |
| --------------------- | ----- | ---------------------------------------------------------------------------------------- | ---------- |
| `account_key` *       | uuid4 | Chave única de identificação da conta.                                                   | 36         |
| `payment_batch_key` * | uuid4 | Chave única de identificação do lote (`batch_payment_key` retornado na criação do lote). | 36         |

### Autenticação via Email e SMS

Request Body: Validação de token do lote

```json
{
  "token": "329adf"
}
```

### Autenticação via Dispositivo

Para finalizar a autenticação via dispositivo, a requisição deve ser enviada com um payload vazio. A validação ocorre internamente, sem necessidade de informações adicionais no corpo da requisição. Este endpoint só deve ser utilizado após o lote ter entrado em **`pending_2fa_approval`** (aprovação) ou **`pending_2fa_rejection`** (rejeição) na [confirmação do lote com `tfa_info`](./confirmacao_de_lote_de_boleto_bancario.md).

Request Body: Validação de token do lote

```json
{

}
```

### Body Params

| Campo   | Tipo   | Descrição                                                                                                        | Caracteres |
| ------- | ------ | ---------------------------------------------------------------------------------------------------------------- | ---------- |
| `token` | string | Código de autenticação enviado ao aprovador de movimentações da conta **obrigatório para TFA via SMS ou e-mail** | 6          |

## Response

### Success Response

Após a validação bem-sucedida, a API responde com **202** e o lote passa a ser processado de forma assíncrona. O status final segue a decisão registrada na confirmação (`approved` ou `rejected`).

STATUS 202

Response Body: Lote após validação do token (exemplo com decisão `approved`)

```json
{
  "batch_payment_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
  "total_amount": 1357.3,
  "batch_status": "approved",
  "payment_type": "bank_slip"
}
```

### Response Body Params

| Campo                   | Tipo   | Descrição                                                                                                                                                                                                                                                                    |
| ----------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `batch_payment_key` *   | uuid4  | Chave única de identificação do pagamento em lote.                                                                                                                                                                                                                           |
| `request_control_key` * | uuid4  | Chave única de identificação da requisição do cliente (lote).                                                                                                                                                                                                                |
| `account_key` *         | uuid4  | Chave da conta debitada.                                                                                                                                                                                                                                                     |
| `total_amount` *        | number | Soma dos valores dos itens do lote.                                                                                                                                                                                                                                          |
| `batch_status` *        | string | Após validação do token, o status final reflete a decisão registrada na confirmação (`approved` ou `rejected`). O ciclo de `batch_status` está alinhado ao descrito na documentação de **solicitação de pagamento em lote** fornecida à operação (enumeradores `batch_payment_status`). |
| `payment_type` *        | string | Tipo do pagamento; para este fluxo, espera-se `bank_slip`.                                                                                                                                                                                                                     |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título      | Descrição (eng)                               | Descrição (pt-br)                                                |
| ----------- | --------- | ----------- | --------------------------------------------- | ---------------------------------------------------------------- |
| 403         | BIP000010 | Forbidden   | User is not allowed to do this action         | Usuário não tem autorização para fazer essa ação                 |
| 404         | BIP000011 | Not Found   | The source account key was not found.         | A chave da conta de origem não foi encontrada.                   |
| 400         | BIP000013 | Bad Request | The source account is closed.                 | A conta de origem está fechada.                                 |
| 400         | BIP000050 | Bad Request | Requester configuration does not exist        | Configuração do requester não existe.                            |
| 400         | BIP000058 | Bad Request | Error while validating verification token     | Erro ao validar token de verificação                             |
| 400         | BIP000059 | Bad Request | Number of verification token validation attempts exceeded. | Número de tentativas de validação de token de verificação excedido. |
| 400         | BIP000060 | Bad Request | Verification token expired.                   | Token de verificação expirado.                                   |
| 400         | BIP000061 | Bad Request | Verification token validation failed.       | Falha na validação do token de verificação.                      |
| 400         | BIP000065 | Bad Request | Payment verification time window exceeded.    | Janela de tempo de verificação de pagamento excedida.            |
| 404         | BIP000083 | Not Found   | Batch payment not found by batch payment key. | Lote de pagamentos não encontrado pela chave do lote.            |
| 400         | BIP000085 | Bad Request | Batch payment status is not pending approval. | Status do lote de pagamentos não é de aprovação pendente.        |
| 400         | BIP000086 | Bad Request | A token is required for SMS or email validation.                    | Um token é necessário para validação via SMS ou email.             |

---

# Validação de token de lote de pagamento de fatura de recolhimento (convênio/tributo)

URL: /documentation/baas/cobranca/2fa_v2/validacao_de_token_de_lote_de_fatura_de_recolhimento

Este endpoint conclui a etapa de **autenticação de dois fatores (2FA)** para um lote de faturas de recolhimento que, após a [confirmação do lote com `tfa_info`](./confirmacao_de_lote_de_fatura_de_recolhimento.md), encontra-se em `batch_status` **`pending_2fa_approval`** (aprovação) ou **`pending_2fa_rejection`** (rejeição). Com o token validado, o lote segue para **processamento assíncrono** dos pagamentos e o status final reflete a decisão registrada na confirmação (`approved` ou `rejected`). Para solicitar novo envio do token enquanto o lote estiver em **pending_2fa_approval** (aprovação) ou **pending_2fa_rejection** (rejeição), use [Reenviar token de confirmação de lote de pagamento de fatura de recolhimento (convênio/tributo)](./solicitacao_de_reenvio_de_token_de_lote_de_fatura_de_recolhimento.md).

:::info Fatura de recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgãos públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um Boleto bancário apresenta.
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/account/**ACCOUNT_KEY**/payment/batch_collection_slip/**PAYMENT_BATCH_KEY**/validate_token
MÉTODO PATCH

### Request Path Params

| Campo                 | Tipo  | Descrição                                                                                | Caracteres |
| --------------------- | ----- | ---------------------------------------------------------------------------------------- | ---------- |
| `account_key` *       | uuid4 | Chave única de identificação da conta.                                                   | 36         |
| `payment_batch_key` * | uuid4 | Chave única de identificação do lote (`batch_payment_key` retornado na criação do lote). | 36         |

### Autenticação via Email e SMS

Request Body: Validação de token do lote

```json
{
  "token": "329adf"
}
```

### Autenticação via Dispositivo

Para finalizar a autenticação via dispositivo, a requisição deve ser enviada com um payload vazio. A validação ocorre internamente, sem necessidade de informações adicionais no corpo da requisição. Este endpoint só deve ser utilizado após o lote ter entrado em **`pending_2fa_approval`** (aprovação) ou **`pending_2fa_rejection`** (rejeição) na [confirmação do lote com `tfa_info`](./confirmacao_de_lote_de_fatura_de_recolhimento.md).

Request Body: Validação de token do lote

```json
{

}
```

### Body Params

| Campo   | Tipo   | Descrição                                                                                                        | Caracteres |
| ------- | ------ | ---------------------------------------------------------------------------------------------------------------- | ---------- |
| `token` | string | Código de autenticação enviado ao aprovador de movimentações da conta **obrigatório para TFA via SMS ou e-mail** | 6          |

## Response

### Success Response

Após a validação bem-sucedida, a API responde com **202** e o lote passa a ser processado de forma assíncrona. O status final segue a decisão registrada na confirmação (`approved` ou `rejected`).

STATUS 202

Response Body: Lote após validação do token (exemplo com decisão `approved`)

```json
{
  "batch_payment_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "total_amount": 2778.42,
  "batch_status": "approved",
  "payment_type": "collection_slip"
}
```

### Response Body Params

| Campo                   | Tipo   | Descrição                                                                                                                                                                                                                                                                                         |
| ----------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `batch_payment_key` *   | uuid4  | Chave única de identificação do pagamento em lote.                                                                                                                                                                                                                                                |
| `request_control_key` * | uuid4  | Chave única de identificação da requisição do cliente (lote).                                                                                                                                                                                                                                       |
| `account_key` *         | uuid4  | Chave da conta debitada.                                                                                                                                                                                                                                                                          |
| `total_amount` *        | number | Soma dos valores dos itens do lote.                                                                                                                                                                                                                                                               |
| `batch_status` *        | string | Após validação do token, o status final reflete a decisão registrada na confirmação (`approved` ou `rejected`). O ciclo de `batch_status` está alinhado ao descrito na documentação de **solicitação de pagamento em lote** fornecida à operação (enumeradores `batch_payment_status`). |
| `payment_type` *        | string | Tipo do pagamento; para este fluxo, espera-se `collection_slip`.                                                                                                                                                                                                                                   |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título      | Descrição (eng)                               | Descrição (pt-br)                                                |
| ----------- | --------- | ----------- | --------------------------------------------- | ---------------------------------------------------------------- |
| 403         | BIP000010 | Forbidden   | User is not allowed to do this action         | Usuário não tem autorização para fazer essa ação                 |
| 404         | BIP000011 | Not Found   | The source account key was not found.         | A chave da conta de origem não foi encontrada.                   |
| 400         | BIP000013 | Bad Request | The source account is closed.                 | A conta de origem está fechada.                                 |
| 400         | BIP000050 | Bad Request | Requester configuration does not exist        | Configuração do requester não existe.                            |
| 400         | BIP000058 | Bad Request | Error while validating verification token     | Erro ao validar token de verificação                             |
| 400         | BIP000059 | Bad Request | Number of verification token validation attempts exceeded. | Número de tentativas de validação de token de verificação excedido. |
| 400         | BIP000060 | Bad Request | Verification token expired.                   | Token de verificação expirado.                                   |
| 400         | BIP000061 | Bad Request | Verification token validation failed.       | Falha na validação do token de verificação.                      |
| 400         | BIP000065 | Bad Request | Payment verification time window exceeded.    | Janela de tempo de verificação de pagamento excedida.            |
| 404         | BIP000083 | Not Found   | Batch payment not found by batch payment key. | Lote de pagamentos não encontrado pela chave do lote.            |
| 400         | BIP000085 | Bad Request | Batch payment status is not pending approval.         | Status do lote de pagamentos não é de aprovação pendente.              |
| 400         | BIP000086 | Bad Request | A token is required for SMS or email validation.                    | Um token é necessário para validação via SMS ou email.             |

---

# Agendar Pagamento de Boleto Bancário

URL: /documentation/baas/cobranca/agendamento/agendar_pagamento_de_boleto_bancario

Este endpoint permite realizar o agendamento do pagamento de boletos bancários. 
O agendamento deve ser realizado após a consulta do boleto bancário, utilizando as informações retornadas para garantir o funcionamento correto do fluxo, evitando falhas durante o processo de pagamento.

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /payment_schedule/bank_slip
MÉTODO POST

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |

Request Body: Pagamento de boleto bancário com linha digitável

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "digitable_line": "00190000090361557400500000024174396700000991000",
  "payment_amount": 1156.8,
  "payment_date": "2024-03-30"
}
```
Request Body: Pagamento de boleto bancário com código de barras

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "barcode": "00190000090361557400500000024174396700000991000",
  "payment_amount": 1156.8,
  "payment_date": "2024-03-30"
}
```

### Body Params

| Campo                   | Tipo   | Descrição                                           |
|-------------------------|--------|-----------------------------------------------------|
| `request_control_key` * | uuid4  | Chave única de identificação da request do cliente. |    
| `barcode`               | string | Código de barras.                                   |
| `digitable_line`        | string | Linha digitável.                                    |
| `payment_amount` *      | number | Valor a ser pago.                                   |
| `payment_date` *        | string | Data do agendamento.                                |

:::danger Aviso
O `payment_amount` deve ser sempre igual ao `total_amount` retornado na consulta do boleto bancário caso o pagamento parcial 
não seja permitido para o boleto bancário. Para títulos em que o pagamento parcial é permitido,
o cliente pode escolher o `payment_amount`, desde que a soma do mesmo com o `registered_payment_amount` 
do boleto bancário não seja superior ao `total_amount`.
:::

## Response

### Success Response

STATUS 201

Response Body: Agendamento confirmado

```json
{
   "payment_key":"c4325104-d60b-44f3-aae4-49155564a2ea",
   "request_control_key":"b713b2f6-2f48-4d18-b0c9-7186e4edf189",
   "payer_name":"COOPERATIVA INDUSTRIAL MURILO",
   "payer_document_number":"00037025000160",
   "source_account_key":"6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
   "paid_amount":1050.1,
   "payment_date":"2024-04-03",
   "payment_type":"bank_slip",
   "bank_slip": {
        "bank_slip_key":"95080ffd-3ac5-48d7-b3fe-659e4aaba81a",
        "barcode":"00193967000009910000000003615574000000002417",
        "digitable_line":"00190000090361557400500000024174396700000991000",
        "payer_name":"COOPERATIVA TESTE",
        "payer_document_number":"00037025000160",
        "beneficiary_name":"TESTE EQUIPAMENTOS E SERVICOS LTDA",
        "beneficiary_trading_name":"TESTE EQUIPAMENTOS E SERVICOS LTDA",
        "beneficiary_document_number":"52069937000117",
        "beneficiary_bank_ispb":"00000000",
        "guarantor_name":null,
        "guarantor_document_number":null,
        "expiration_date":"2024-03-29",
        "max_payment_data": "2026-03-29",
        "partial_payment_indicator":"allowed",
        "registered_payment_amount":9029.0,
        "nominal_amount":9910.0,
        "total_amount":10129.1,
        "rebate_amount":0.0,
        "discount_amount":0.0,
        "fine_amount":0.0,
        "interest_amount":219.1
    },
   "collection_slip":null,
   "payment_schedule_status":"scheduled"
}
```

### Response Body Params

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `payment_key` *               | uuid4 | Chave única de identificação do pagamento. |
| `request_control_key` *       | uuid4 | Chave única de identificação da request do cliente. |
| `payer_name` *                | string | Nome do pagador efetivo.|
| `payer_document_number` *     | string | Número de documento do pagador efetivo (CPF/CNPJ). |
| `source_account_key` *        | uuid4 | Chave da conta debitada. |
| `paid_amount` *               | number | Valor pago efetivamente. |
| `payment_date` *              | string | Data do pagamento. |
| `payment_type` *              | [enum](#enumeradores-payment_type) | Tipo do pagamento. |
| `bank_slip`                   | [object](#objeto-bank_slip) | Boleto bancário. |
| `collection_slip`             | object | Fatura de recolhimento. |
| `payment_schedule_status` *            | [enum](#enumeradores-payment_schedule_status) | Status do pagamento. |

### Enumeradores payment_type
| Enumerador    | Descrição     |
|---------------|---------------|
| `bank_slip`     | Boleto bancário    |
| `collection_slip` | Fatura de recolhimento |

:::danger Aviso
O enumerador `collection_slip` não se aplica para o fluxo de boletos bancários, assim como o objeto collection_slip que sempre será nulo.
:::

### Enumeradores payment_schedule_status
| Enumerador          | Descrição                                                        |
|---------------------|------------------------------------------------------------------|
| `pending_2fa_approval` | Agendamento pendente de autenticação de dois fatores (2FA)       |
| `scheduled`          | Pagamento agendado com sucesso                                   |
| `executed`          | O agendamento foi executado com sucesso e o pagamento referente ao agendamento gerado |
| `rejected`          | O agendamento foi rejeitado e nenhum pagamento foi gerado       |
| `canceled`         | Agendamento cancelado                                            |
| `error`             | Erro ao realizar o agendamento                                   |

:::danger Aviso
Para pagamentos onde a QI não receber uma resposta da CIP em até dois minutos, o pagamento será retornado com o status `pending_execution`. Após a QI receber a resposta da CIP, será enviado para o cliente o webhook de pagamento pendente descrito na [página de webhooks](/documentation/baas/cobranca/webhooks).
:::

### Objeto bank_slip
| Campo                             | Tipo    | Descrição                         |
|-----------------------------------|---------|-----------------------------------|
| `barcode` *                       | string | Código de barras. |
| `digitable_line` *                | string | Linha digitável. |
| `payer_name` *                    | string | Nome do pagador.|
| `payer_document_number` *         | string | Número de documento do pagador (CPF/CNPJ). |
| `beneficiary_name` *              | string | Nome do beneficiário. |
| `beneficiary_trading_name`        | string | Nome fantasia do beneficiário. |
| `beneficiary_document_number` *   | string | Número de documento do beneficiário (CPF/CNPJ). |
| `beneficiary_bank_ispb` *         | string | Código ispb do banco do beneficiário. |
| `guarantor_name`                  | string | Nome do sacador avalista. |
| `guarantor_document_number`       | string | Número de documento do sacador avalista (CPF/CNPJ). |
| `expiration_date` *               | string | Data de vencimento. |
| `max_payment_date` * | string  | Data máxima de pagamento. |
| `partial_payment_indicator` *     | [enum](#enumeradores-partial_payment_indicator)   | Indicador de pagamento parcial. |
| `registered_payment_amount`       | string | Valor total de pagamento registrado. |
| `nominal_amount` *                | number | Valor original. |
| `total_amount` *                  | number | Valor total. |
| `rebate_amount` *                 | number | Valor do abatimento. |
| `discount_amount` *               | number | Valor do desconto. |
| `fine_amount` *                   | number | Valor da multa. |
| `interest_amount` *               | number | Valor do juros. |

### Enumeradores partial_payment_indicator
| Enumerador    | Descrição     |
|---------------|---------------|
| `allowed`     | Permitido     |
| `not_allowed` | Não permitido |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 400         | BIP000001 | Bad Request | The barcode or digitable line must have 44 or 47 characters. | O código de barras ou linha digitável deve ter 44 ou 47 caracteres. |
| 400         | BIP000002 | Bad Request | The bill sent does not correspond to a bank slip. | A conta enviado não corresponde a um boleto bancário. |
| 400         | BIP000003 | Bad Request | The digitable line sent is invalid. | A linha digitável enviada é inválida. |
| 404         | BIP000004 | Not Found | The bank slip was not found. | O boleto não foi encontrado. |
| 400         | BIP000005 | Bad Request | It was not possible to consult the bank slip at this time. Please try again in a few minutes. | Não foi possível consultar o boleto neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000006 | Bad Request | Bank slip already written off | Boleto já baixado |
| 400         | BIP000007 | Bad Request | Bank slip blocked for payment | Boleto bloqueado para pagamento |
| 400         | BIP000008 | Bad Request | Bank slip already paid | Boleto já pago |
| 400         | BIP000009 | Bad Request | Invalid bank slip. Please consult issuing bank | Boleto inválido. Favor consultar banco emissor |
| 403         | BIP000010 | Forbidden | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404         | BIP000011 | Not Found | The source account key was not found. | A chave da conta de origem não foi encontrada. |
| 400         | BIP000012 | Bad Request | It was not possible to consult the source account at this time. Please try again in a few minutes. | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000013 | Bad Request | The source account is closed. | A conta de origem está fechada. |
| 400         | BIP000014 | Bad Request | The source account is blocked. | A conta de origem está bloqueada. |
| 400         | BIP000015 | Bad Request | Payment date is greater than the maximum payment date. | A data de pagamento é maior que a data máxima de pagamento. |
| 400         | BIP000016 | Bad Request | Payment date is smaller than the calculation date. | A data de pagamento é menor que a data de cálculo. |
| 400         | BIP000017 | Bad Request | Invalid payment amount. | Valor de pagamento inválido. |
| 400         | BIP000018 | Bad Request | Partial payment is not allowed. | Pagamento parcial não é permitido. |
| 400         | BIP000019 | Bad Request | The payment amount is greater than the available amount. | O valor do pagamento é maior que o valor disponível. |
| 400         | BIP000020 | Bad Request | All partial payments for this bank slip have already been made. | Todos os pagamentos parciais deste boleto já foram realizados. |
| 400         | BIP000022 | Bad Request | Bank slip payment service is closed. | Serviço de pagamento de boleto está fechado. |
| 400         | BIP000023 | Bad Request | The source account has insufficient balance. Payment cannot be made. | A conta de origem possui saldo insuficiente. Pagamento não pode ser realizado. |
| 400         | BIP000024 | Bad Request | Request control key already exists. | Chave de controle da requisição já existe. |
| 400         | BIP000025 | Bad Request | It was not possible to pay the bank slip at this time. Please verify your information and, if necessary, contact us for assistance. | Não foi possível pagar o boleto neste momento. Por favor, verifique suas informações e, se necessário, entre em contato conosco para assistência. |
| 400         | BIP000028 | Bad Request | The source account has blocked balance. Payment cannot be made. | A conta de origem possui saldo em conta bloqueado. Pagamento não pode ser realizado. |

## Ambiente de Sandbox

Para realizar os testes em ambiente de sandbox, devem ser usadas as linhas digitáveis listadas na [Seção de pagamento de boleto bancário](/documentation/baas/cobranca/pagar_boleto_bancario).

---

# Agendar Pagamento de Fatura de Recolhimento (convênio/tributo)

URL: /documentation/baas/cobranca/agendamento/agendar_pagamento_de_fatura_de_recolhimento

Este endpoint permite realizar o agendamento de pagamento de faturas de recolhimento. 
O agendamento deve ser realizado após a consulta da Fatura de Recolhimento, utilizando as informações retornadas para garantir o funcionamento correto do fluxo, evitando falhas durante o processo de pagamento.

:::info Fatura de Recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgão públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um Boleto bancário apresenta.
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /payment_schedule/collection_slip
MÉTODO POST

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |

Request Body: Agendamento de fatura de recolhimento com linha digitável

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "digitable_line": "00190000090361557400500000024174396700000991000",
  "payment_amount": 1156.8,
  "payment_date": "2024-03-30"
}
```
Request Body: Agendamento de fatura de recolhimento com código de barras

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "barcode": "00190000090361557400500000024174396700000991000",
  "payment_amount": 1156.8,
  "payment_date": "2024-03-30"
}
```

### Body Params

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da request do cliente. |    
| `barcode`               | string    | Código de barras. |
| `digitable_line`        | string    | Linha digitável. |
| `payment_amount` *      | number    | Valor a ser pago. |
| `payment_date` *        | string | Data do agendamento.                                |

:::danger Aviso
O `payment_amount` deve sempre igual ao `total_amount` retornado na consulta do boleto bancário.
:::

## Response

### Success Response

STATUS 201

Response Body: Agendamento confirmado

```json
{
  "payment_key": "33860ad0-bcb0-47b7-bbe7-c7e3ec2fc61a",
  "request_control_key": "ae4508df-f2cb-4e28-9f04-a19b7f2758c9",
  "payer_name": "COOPERATIVA INDUSTRIAL MURILO",
  "payer_document_number": "62069937000118",
  "source_account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "paid_amount": 1389.21,
  "payment_date": "2024-04-30",
  "payment_type": "collection_slip",
  "bank_slip": null,
  "collection_slip": {
    "barcode": null,
    "digitable_line": "836200000138892100450006762142420244046000010192",
    "collection_name": "CIA ULTRAGAZ SA-COD",
    "collection_document_number": "00394460005887",
    "expiration_date": "2024-04-15",
    "total_amount": 1389.21
  },
  "payment_schedule_status": "scheduled"
}
```

### Response Body Params

| Campo               | Tipo    | Descrição                                           |
|---------------------|---------|-----------------------------------------------------|
| `payment_key` *               | uuid4 | Chave única de identificação do pagamento.          |
| `request_control_key` *       | uuid4 | Chave única de identificação da request do cliente. |
| `payer_name` *                | string | Nome do pagador efetivo.                            |
| `payer_document_number` *     | string | Número de documento do pagador efetivo (CPF/CNPJ).  |
| `source_account_key` *        | uuid4 | Chave da conta debitada.                            |
| `transaction_key` *           | uuid4 | Chave da transação do pagamento.                    |
| `transaction_revert_key`      | uuid4 | Chave da transação de reversão do pagamento.        |
| `paid_amount` *               | number | Valor pago efetivamente.                            |
| `payment_date` *              | string | Data do pagamento.                                  |
| `payment_type` *              | [enum](#enumeradores-payment_type) | Tipo do pagamento.                                  |
| `bank_slip`                   | object | Boleto bancário.                                    |
| `collection_slip`             | [object](#objeto-collection_slip) | Fatura de recolhimento.                             |
| `payment_schedule_status` *            | [enum](#enumeradores-payment_schedule_status) | Status do agendamento.                              |

### Enumeradores payment_type
| Enumerador    | Descrição     |
|---------------|---------------|
| `bank_slip`     | Boleto bancário    |
| `collection_slip` | Fatura de recolhimento |

:::danger Aviso
O enumerador `bank_slip` não se aplica para o fluxo de faturas de recolhimento, assim como o objeto bank_slip que sempre será nulo.
:::

### Enumeradores payment_schedule_status
| Enumerador          | Descrição                                                        |
|---------------------|------------------------------------------------------------------|
| `pending_2fa_approval` | Agendamento pendente de autenticação de dois fatores (2FA)       |
| `scheduled`          | Pagamento agendado com sucesso                                   |
| `executed`          | O agendamento foi executado com sucesso e o pagamento referente ao agendamento gerado |
| `rejected`          | O agendamento foi rejeitado e nenhum pagamento foi gerado             |
| `canceled`         | Agendamento cancelado                                            |
| `error`             | Erro ao realizar o agendamento                                   |

### Objeto collection_slip
| Campo                             | Tipo    | Descrição                         |
|-----------------------------------|---------|-----------------------------------|
| `barcode`          | string | Código de barras. |
| `digitable_line`   | string | Linha digitável. |
| `collection_name` *         | string | Nome do convênio.|
| `collection_document_number`   | string | Número de documento do convênio (CPF/CNPJ).|
| `expiration_date` *  | string  | Data de vencimento. |
| `total_amount` *  | number | Valor total. |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 400         | BIP000032 | Bad Request | The bill sent does not correspond to a collection slip. | A conta enviada não corresponde a uma fatura de recolhimento. |
| 400         | BIP000033 | Bad Request | The barcode or digitable line of the collection slip must have 44 or 48 characters. | O código de barras ou linha digitável da fatura de recolhimento deve ter 44 ou 48 caracteres. |
| 403         | BIP000010 | Forbidden | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404         | BIP000011 | Not Found | The source account key was not found. | A chave da conta de origem não foi encontrada. |
| 400         | BIP000012 | Bad Request | It was not possible to consult the source account at this time. Please try again in a few minutes. | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000013 | Bad Request | The source account is closed. | A conta de origem está fechada. |
| 400         | BIP000014 | Bad Request | The source account is blocked. | A conta de origem está bloqueada. |
| 400         | BIP000023 | Bad Request | The source account has insufficient balance. Payment cannot be made. | A conta de origem possui saldo insuficiente. Pagamento não pode ser realizado. |
| 400         | BIP000024 | Bad Request | Request control key already exists. | Chave de controle da requisição já existe. |
| 400         | BIP000028 | Bad Request | The source account has blocked balance. Payment cannot be made. | A conta de origem possui saldo em conta bloqueado. Pagamento não pode ser realizado. |
| 400         | BIP000034 | Bad Request | Collection slip already paid. | Fatura de recolhimento já paga. |
| 400         | BIP000035 | Bad Request | Covenant slip invalid barcode. | Código de barras da fatura de recolhimento inválido. |
| 400         | BIP000036 | Bad Request | Covenant slip overdue. | Fatura de recolhimento vencida. |
| 400         | BIP000037 | Bad Request | Error in collection slip consultation. | Erro na consulta da fatura de recolhimento. |
| 400         | BIP000038 | Bad Request | Outside of covenant payment hours. | Fora do horário de pagamento do convênio. |
| 400         | BIP000039 | Bad Request | Collection slip not accepted. | Fatura de recolhimento não aceita. |
| 400         | BIP000040 | Bad Request | Minimum advance not reached. | Mínimo de dias de adiantamento não atingido. |
| 400         | BIP000041 | Bad Request | Max payment amount exceeded. | Valor máximo de pagamento excedido. |
| 400         | BIP000044 | Bad Request | It was not possible to pay the collection slip at this time. Please verify your information and, if necessary, contact us for assistance. | Não foi possível pagar a fatura de recolhimento neste momento. Por favor, verifique suas informações e, se necessário, entre em contato conosco para assistência. |

## Ambiente de Sandbox

Em nosso ambiente de sandbox, disponibilizamos linhas digitáveis mockadas para a simulação de pagamentos bem-sucedidos e testes de cenários de erro.

### Cenários de sucesso

| Linha digitável |
|---|
| 828300000007411100972013905080001546763201900028 |
| 838000000009235700481007241345219112001474229880 |
| 848000000006308600802021201071261517689002201070 |
| 858200000015000000643025703477209504800448091020 |

### Cenários de erro

| Linha digitável | Código de erro |
|---|---|
| 858500000037350000643217212883260006147448091022 | BIP000035 |

---

# Cancelar Agendamento

URL: /documentation/baas/cobranca/agendamento/cancelar_agendamento

Este endpoint é utilizado para realizar o cancelamento de um agendamento de pagamento de um Boleto Bancário ou Fatura de Recolhimento.

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.
:::

:::info Fatura de Recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgão públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um Boleto bancário apresenta.
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /payment_schedule/ PAYMENT_SCHEDULE_KEY /cancel
MÉTODO PATCH

### Request Path Params

| Campo                    | Tipo    | Descrição                                    | Caracteres |
|--------------------------|---------|----------------------------------------------|------------|
| `account_key` *          | uuid4   | Chave única de identificação da conta.       | 36         |
| `payment_schedule_key` * | uuid4   | Chave única de identificação do agendamento. | 36         |

## Response

### Success Response

STATUS 200

Response Body: agendamento de pagamento de boleto bancário cancelado

```json
{
   "payment_key":"c4325104-d60b-44f3-aae4-49155564a2ea",
   "request_control_key":"b713b2f6-2f48-4d18-b0c9-7186e4edf189",
   "payer_name":"COOPERATIVA INDUSTRIAL MURILO",
   "payer_document_number":"00037025000160",
   "source_account_key":"6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
   "paid_amount":1050.1,
   "payment_date":"2024-04-03",
   "payment_type":"bank_slip",
   "bank_slip": {
        "bank_slip_key":"95080ffd-3ac5-48d7-b3fe-659e4aaba81a",
        "barcode":"00193967000009910000000003615574000000002417",
        "digitable_line":"00190000090361557400500000024174396700000991000",
        "payer_name":"COOPERATIVA TESTE",
        "payer_document_number":"00037025000160",
        "beneficiary_name":"TESTE EQUIPAMENTOS E SERVICOS LTDA",
        "beneficiary_trading_name":"TESTE EQUIPAMENTOS E SERVICOS LTDA",
        "beneficiary_document_number":"52069937000117",
        "beneficiary_bank_ispb":"00000000",
        "guarantor_name":null,
        "guarantor_document_number":null,
        "expiration_date":"2024-03-29",
        "max_payment_data": "2026-03-29",
        "partial_payment_indicator":"allowed",
        "registered_payment_amount":9029.0,
        "nominal_amount":9910.0,
        "total_amount":10129.1,
        "rebate_amount":0.0,
        "discount_amount":0.0,
        "fine_amount":0.0,
        "interest_amount":219.1
    },
   "collection_slip":null,
   "payment_schedule_status":"canceled"
}
```

Response Body: agendamento de pagamento de fatura de recolhimento cancelada

```json
{
  "payment_key": "33860ad0-bcb0-47b7-bbe7-c7e3ec2fc61a",
  "request_control_key": "ae4508df-f2cb-4e28-9f04-a19b7f2758c9",
  "payer_name": "COOPERATIVA INDUSTRIAL MURILO",
  "payer_document_number": "62069937000118",
  "source_account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "paid_amount": 1389.21,
  "payment_date": "2024-04-30",
  "payment_type": "collection_slip",
  "bank_slip": null,
  "collection_slip": {
    "barcode": null,
    "digitable_line": "836200000138892100450006762142420244046000010192",
    "collection_name": "CIA ULTRAGAZ SA-COD",
    "collection_document_number": "00394460005887",
    "expiration_date": "2024-04-15",
    "total_amount": 1389.21
  },
  "payment_schedule_status": "canceled"
}
```

### Response Body Params

| Campo               | Tipo    | Descrição                                           |
|---------------------|---------|-----------------------------------------------------|
| `payment_key` *               | uuid4 | Chave única de identificação do pagamento.          |
| `request_control_key` *       | uuid4 | Chave única de identificação da request do cliente. |
| `payer_name` *                | string | Nome do pagador efetivo.                            |
| `payer_document_number` *     | string | Número do documento do pagador efetivo  (CPF/CNPJ). |
| `source_account_key` *        | uuid4 | Chave da conta debitada.                            |
| `paid_amount` *               | number | Valor pago efetivamente.                            |
| `payment_date` *              | string | Data do agendamento.                                |
| `payment_type` *              | [enum](#enumeradores-payment_type) | Tipo do pagamento.                                  |
| `bank_slip`                   | [object](#objeto-bank_slip) | Boleto bancário.                                    |
| `collection_slip`             | object | Fatura de recolhimento.                             |
| `payment_schedule_status` *            | [enum](#enumeradores-payment_schedule_status) | Status do agendamento.                              |

### Enumeradores payment_type
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

### Enumeradores payment_schedule_status
| Enumerador | Descrição             |
|------------|-----------------------|
| `canceled` | Agendamento cancelado |

### Objeto bank_slip
| Campo                             | Tipo    | Descrição                         |
|-----------------------------------|---------|-----------------------------------|
| `barcode` *                       | string | Código de barras. |
| `digitable_line` *                | string | Linha digitável. |
| `payer_name` *                    | string | Nome do pagador.|
| `payer_document_number` *         | string | Número do documento do pagador (CPF/CNPJ). |
| `beneficiary_name` *              | string | Nome do beneficiário. |
| `beneficiary_trading_name`        | string | Nome fantasia do beneficiário. |
| `beneficiary_document_number` *   | string | Número do documento do beneficiário (CPF/CNPJ). |
| `beneficiary_bank_ispb` *         | string | Código ispb do banco do beneficiário. |
| `guarantor_name`                  | string | Nome do sacador avalista. |
| `guarantor_document_number`       | string | Número do documento do sacador avalista (CPF/CNPJ). |
| `expiration_date` *               | string | Data de vencimento. |
| `max_payment_date` * | string  | Data máxima de pagamento. |
| `partial_payment_indicator` *     | [enum](#enumeradores-partial_payment_indicator)   | Indicador de pagamento parcial. |
| `registered_payment_amount`       | string | Valor total de pagamento registrado. |
| `nominal_amount` *                | number | Valor original. |
| `total_amount` *                  | number | Valor total. |
| `rebate_amount` *                 | number | Valor do abatimento. |
| `discount_amount` *               | number | Valor do desconto. |
| `fine_amount` *                   | number | Valor da multa. |
| `interest_amount` *               | number | Valor do juros. |

### Enumeradores partial_payment_indicator
| Enumerador    | Descrição     |
|---------------|---------------|
| `allowed`     | Permitido     |
| `not_allowed` | Não permitido |

### Objeto collection_slip
| Campo                             | Tipo    | Descrição                         |
|-----------------------------------|---------|-----------------------------------|
| `barcode`          | string | Código de barras. |
| `digitable_line`   | string | Linha digitável. |
| `collection_name` *         | string | Nome do convênio.|
| `collection_document_number`   | string | Número de documento do convênio (CPF/CNPJ).|
| `expiration_date` *  | string  | Data de vencimento. |
| `total_amount` *  | number | Valor total. |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 400         | BIP000001 | Bad Request | The barcode or digitable line must have 44 or 47 characters. | O código de barras ou linha digitável deve ter 44 ou 47 caracteres. |
| 400         | BIP000002 | Bad Request | The bill sent does not correspond to a bank slip. | A conta enviado não corresponde a um boleto bancário. |
| 400         | BIP000003 | Bad Request | The digitable line sent is invalid. | A linha digitável enviada é inválida. |
| 404         | BIP000004 | Not Found | The bank slip was not found. | O boleto não foi encontrado. |
| 400         | BIP000005 | Bad Request | It was not possible to consult the bank slip at this time. Please try again in a few minutes. | Não foi possível consultar o boleto neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000006 | Bad Request | Bank slip already written off | Boleto já baixado |
| 400         | BIP000007 | Bad Request | Bank slip blocked for payment | Boleto bloqueado para pagamento |
| 400         | BIP000008 | Bad Request | Bank slip already paid | Boleto já pago |
| 400         | BIP000009 | Bad Request | Invalid bank slip. Please consult issuing bank | Boleto inválido. Favor consultar banco emissor |

---

# Consultar Agendamento

URL: /documentation/baas/cobranca/agendamento/consultar_agendamento

Este endpoint é utilizado para consultar as informações de um agendamento de pagamento de um Boleto Bancário ou Fatura de Recolhimento.

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.
:::

:::info Fatura de Recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgão públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um Boleto bancário apresenta.
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /payment_schedule/ PAYMENT_SCHEDULE_KEY
MÉTODO GET

### Request Path Params

| Campo                    | Tipo    | Descrição                                    | Caracteres |
|--------------------------|---------|----------------------------------------------|------------|
| `account_key` *          | uuid4   | Chave única de identificação da conta.       | 36         |
| `payment_schedule_key` * | uuid4   | Chave única de identificação do agendamento. | 36         |

## Response

### Success Response

STATUS 200

Response Body: Agendamento de pagamento de boleto bancário

```json
{
   "payment_key":"c4325104-d60b-44f3-aae4-49155564a2ea",
   "request_control_key":"b713b2f6-2f48-4d18-b0c9-7186e4edf189",
   "payer_name":"COOPERATIVA INDUSTRIAL MURILO",
   "payer_document_number":"00037025000160",
   "source_account_key":"6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
   "paid_amount":1050.1,
   "payment_date":"2024-04-03",
   "payment_type":"bank_slip",
   "bank_slip": {
        "bank_slip_key":"95080ffd-3ac5-48d7-b3fe-659e4aaba81a",
        "barcode":"00193967000009910000000003615574000000002417",
        "digitable_line":"00190000090361557400500000024174396700000991000",
        "payer_name":"COOPERATIVA TESTE",
        "payer_document_number":"00037025000160",
        "beneficiary_name":"TESTE EQUIPAMENTOS E SERVICOS LTDA",
        "beneficiary_trading_name":"TESTE EQUIPAMENTOS E SERVICOS LTDA",
        "beneficiary_document_number":"52069937000117",
        "beneficiary_bank_ispb":"00000000",
        "guarantor_name":null,
        "guarantor_document_number":null,
        "expiration_date":"2024-03-29",
        "max_payment_data": "2026-03-29",
        "partial_payment_indicator":"allowed",
        "registered_payment_amount":9029.0,
        "nominal_amount":9910.0,
        "total_amount":10129.1,
        "rebate_amount":0.0,
        "discount_amount":0.0,
        "fine_amount":0.0,
        "interest_amount":219.1
    },
   "collection_slip":null,
   "payment_schedule_status":"scheduled"
}
```

Response Body: Agendamento de pagamento de fatura de recolhimento

```json
{
  "payment_key": "33860ad0-bcb0-47b7-bbe7-c7e3ec2fc61a",
  "request_control_key": "ae4508df-f2cb-4e28-9f04-a19b7f2758c9",
  "payer_name": "COOPERATIVA INDUSTRIAL MURILO",
  "payer_document_number": "62069937000118",
  "source_account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "paid_amount": 1389.21,
  "payment_date": "2024-04-30",
  "payment_type": "collection_slip",
  "bank_slip": null,
  "collection_slip": {
    "barcode": null,
    "digitable_line": "836200000138892100450006762142420244046000010192",
    "collection_name": "CIA ULTRAGAZ SA-COD",
    "collection_document_number": "00394460005887",
    "expiration_date": "2024-04-15",
    "total_amount": 1389.21
  },
  "payment_schedule_status": "scheduled"
}
```

### Response Body Params

| Campo               | Tipo    | Descrição                                           |
|---------------------|---------|-----------------------------------------------------|
| `payment_key` *               | uuid4 | Chave única de identificação do pagamento.          |
| `request_control_key` *       | uuid4 | Chave única de identificação da request do cliente. |
| `payer_name` *                | string | Nome do pagador efetivo.                            |
| `payer_document_number` *     | string | Número do documento do pagador efetivo  (CPF/CNPJ). |
| `source_account_key` *        | uuid4 | Chave da conta debitada.                            |
| `transaction_key` *           | uuid4 | Chave da transação do pagamento.                    |
| `transaction_revert_key`      | uuid4 | Chave da transação de reversão do pagamento.        |
| `paid_amount` *               | number | Valor pago efetivamente.                            |
| `payment_date` *              | string | Data do agendamento.                                |
| `payment_type` *              | [enum](#enumeradores-payment_type) | Tipo do pagamento.                                  |
| `bank_slip`                   | [object](#objeto-bank_slip) | Boleto bancário.                                    |
| `collection_slip`             | object | Fatura de recolhimento.                             |
| `payment_schedule_status` *            | [enum](#enumeradores-payment_schedule_status) | Status do agendamento.                              |

### Enumeradores payment_type
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

### Enumeradores payment_schedule_status
| Enumerador          | Descrição                                                        |
|---------------------|------------------------------------------------------------------|
| `pending_2fa_approval` | Agendamento pendente de autenticação de dois fatores (2FA)       |
| `scheduled`          | Pagamento agendado com sucesso                                   |
| `executed`          | O agendamento foi executado com sucesso e o pagamento referente ao agendamento gerado |
| `rejected`          | O agendamento foi rejeitado e nenhum pagamento foi gerado             |
| `canceled`         | Agendamento cancelado                                            |
| `error`             | Erro ao realizar o agendamento                                   |

### Objeto bank_slip
| Campo                             | Tipo    | Descrição                         |
|-----------------------------------|---------|-----------------------------------|
| `barcode` *                       | string | Código de barras. |
| `digitable_line` *                | string | Linha digitável. |
| `payer_name` *                    | string | Nome do pagador.|
| `payer_document_number` *         | string | Número do documento do pagador (CPF/CNPJ). |
| `beneficiary_name` *              | string | Nome do beneficiário. |
| `beneficiary_trading_name`        | string | Nome fantasia do beneficiário. |
| `beneficiary_document_number` *   | string | Número do documento do beneficiário (CPF/CNPJ). |
| `beneficiary_bank_ispb` *         | string | Código ispb do banco do beneficiário. |
| `guarantor_name`                  | string | Nome do sacador avalista. |
| `guarantor_document_number`       | string | Número do documento do sacador avalista (CPF/CNPJ). |
| `expiration_date` *               | string | Data de vencimento. |
| `max_payment_date` * | string  | Data máxima de pagamento. |
| `partial_payment_indicator` *     | [enum](#enumeradores-partial_payment_indicator)   | Indicador de pagamento parcial. |
| `registered_payment_amount`       | string | Valor total de pagamento registrado. |
| `nominal_amount` *                | number | Valor original. |
| `total_amount` *                  | number | Valor total. |
| `rebate_amount` *                 | number | Valor do abatimento. |
| `discount_amount` *               | number | Valor do desconto. |
| `fine_amount` *                   | number | Valor da multa. |
| `interest_amount` *               | number | Valor do juros. |

### Enumeradores partial_payment_indicator
| Enumerador    | Descrição     |
|---------------|---------------|
| `allowed`     | Permitido     |
| `not_allowed` | Não permitido |

### Objeto collection_slip
| Campo                             | Tipo    | Descrição                         |
|-----------------------------------|---------|-----------------------------------|
| `barcode`          | string | Código de barras. |
| `digitable_line`   | string | Linha digitável. |
| `collection_name` *         | string | Nome do convênio.|
| `collection_document_number`   | string | Número de documento do convênio (CPF/CNPJ).|
| `expiration_date` *  | string  | Data de vencimento. |
| `total_amount` *  | number | Valor total. |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 400         | BIP000001 | Bad Request | The barcode or digitable line must have 44 or 47 characters. | O código de barras ou linha digitável deve ter 44 ou 47 caracteres. |
| 400         | BIP000002 | Bad Request | The bill sent does not correspond to a bank slip. | A conta enviado não corresponde a um boleto bancário. |
| 400         | BIP000003 | Bad Request | The digitable line sent is invalid. | A linha digitável enviada é inválida. |
| 404         | BIP000004 | Not Found | The bank slip was not found. | O boleto não foi encontrado. |
| 400         | BIP000005 | Bad Request | It was not possible to consult the bank slip at this time. Please try again in a few minutes. | Não foi possível consultar o boleto neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000006 | Bad Request | Bank slip already written off | Boleto já baixado |
| 400         | BIP000007 | Bad Request | Bank slip blocked for payment | Boleto bloqueado para pagamento |
| 400         | BIP000008 | Bad Request | Bank slip already paid | Boleto já pago |
| 400         | BIP000009 | Bad Request | Invalid bank slip. Please consult issuing bank | Boleto inválido. Favor consultar banco emissor |

---

# Listar Agendamentos

URL: /documentation/baas/cobranca/agendamento/listar_agendamentos

Este endpoint tem a finalidade de fornecer detalhes de todos os agendamentos realizados pelo parceiro integrador,
incluindo boletos bancários e Faturas de recolhimento.

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.
:::

:::info Fatura de recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgão públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um Boleto bancário apresenta.
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /payment_schedules
MÉTODO GET

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |

### Request Query String Params

| Campo                  | Tipo        | Descrição                                                                |
|------------------------|-------------|--------------------------------------------------------------------------|
| `request_control_key`  | uuid4     | Chave única de identificação da request do cliente.                      |
| `payment_schedule_key` | uuid4     | Chave única de identificação do agendamento.                             |
| `payment_key` | uuid4     | Chave única de identificação do pagamento gerado para o agendamento.                             |
| `payment_type`         | [enum](#enumeradores-payment_type)      | Tipo do pagamento.                                                       |
| `payment_schedule_status`         | [enum](#enumeradores-payment_schedule_status)      | Status do agendamento.                                                       |
| `date_from`            | string    | Data inicial. Formato "YYYY-MM-DD".                                      |
| `date_to`              | string    | Data final. Formato "YYYY-MM-DD".                                        |
| `page`                 | string    | Número da página requisitada. 1 por padrão.                              |
| `page_size`            | string    | Tamanho da página requisitada na consulta. 30 por padrão e valor máximo. |

### Enumeradores payment_type
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

### Enumeradores payment_schedule_status
| Enumerador          | Descrição                                                        |
|---------------------|------------------------------------------------------------------|
| `pending_2fa_approval` | Agendamento pendente de autenticação de dois fatores (2FA)       |
| `scheduled`          | Pagamento agendado com sucesso                                   |
| `executed`          | O agendamento foi executado com sucesso e o pagamento referente ao agendamento gerado |
| `rejected`          | O agendamento foi rejeitado e nenhum pagamento foi gerado             |
| `canceled`         | Agendamento cancelado                                            |
| `error`             | Erro ao realizar o agendamento

## Response

### Success Response

STATUS 200

Response Body: Consulta de pagamentos

```json
{
  "data": [
    {
       "payment_key":"c4325104-d60b-44f3-aae4-49155564a2ea",
       "request_control_key":"b713b2f6-2f48-4d18-b0c9-7186e4edf189",
       "payer_name":"COOPERATIVA INDUSTRIAL MURILO",
       "payer_document_number":"00037025000160",
       "source_account_key":"6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
       "paid_amount":1050.1,
       "payment_date":"2024-04-03",
       "payment_type":"bank_slip",
       "bank_slip": {
            "bank_slip_key":"95080ffd-3ac5-48d7-b3fe-659e4aaba81a",
            "barcode":"00193967000009910000000003615574000000002417",
            "digitable_line":"00190000090361557400500000024174396700000991000",
            "payer_name":"COOPERATIVA TESTE",
            "payer_document_number":"00037025000160",
            "beneficiary_name":"TESTE EQUIPAMENTOS E SERVICOS LTDA",
            "beneficiary_trading_name":"TESTE EQUIPAMENTOS E SERVICOS LTDA",
            "beneficiary_document_number":"52069937000117",
            "beneficiary_bank_ispb":"00000000",
            "guarantor_name":null,
            "guarantor_document_number":null,
            "expiration_date":"2024-03-29",
            "max_payment_data": "2026-03-29",
            "partial_payment_indicator":"allowed",
            "registered_payment_amount":9029.0,
            "nominal_amount":9910.0,
            "total_amount":10129.1,
            "rebate_amount":0.0,
            "discount_amount":0.0,
            "fine_amount":0.0,
            "interest_amount":219.1
        },
       "collection_slip":null,
       "payment_schedule_status":"scheduled"
    },
    {
      "payment_key": "33860ad0-bcb0-47b7-bbe7-c7e3ec2fc61a",
      "request_control_key": "ae4508df-f2cb-4e28-9f04-a19b7f2758c9",
      "payer_name": "COOPERATIVA INDUSTRIAL MURILO",
      "payer_document_number": "62069937000118",
      "source_account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
      "paid_amount": 1389.21,
      "payment_date": "2024-04-30",
      "payment_type": "collection_slip",
      "bank_slip": null,
      "collection_slip": {
        "barcode": null,
        "digitable_line": "836200000138892100450006762142420244046000010192",
        "collection_name": "CIA ULTRAGAZ SA-COD",
        "collection_document_number": "00394460005887",
        "expiration_date": "2024-04-15",
        "total_amount": 1389.21
      },
      "payment_schedule_status": "scheduled"
    }
  ],
  "pagination": {
    "current_page": 1,
    "rows_per_page": 30
  }
}
```

### Response Body Params

| Campo               | Tipo    | Descrição                                           |
|---------------------|---------|-----------------------------------------------------|
| `payment_key` *               | uuid4 | Chave única de identificação do pagamento.          |
| `request_control_key` *       | uuid4 | Chave única de identificação da request do cliente. |
| `payer_name` *                | string | Nome do pagador efetivo.                            |
| `payer_document_number` *     | string | Número de documento do pagador efetivo (CPF/CNPJ).  |
| `source_account_key` *        | uuid4 | Chave da conta debitada.                            |
| `paid_amount` *               | number | Valor pago efetivamente.                            |
| `payment_date` *              | string | Data do pagamento.                                  |
| `payment_type` *              | [enum](#enumeradores-payment_type-1) | Tipo do pagamento.                                  |
| `bank_slip`                   | [object](#objeto-bank_slip) | Boleto bancário.                                    |
| `collection_slip`             | [object](#objeto-collection_slip) | Fatura de recolhimento.                             |
| `payment_schedule_status` *            | [enum](#enumeradores-payment_schedule_status) | Status do agendamento.                              |

### Enumeradores payment_type
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

### Enumeradores payment_schedule_status
| Enumerador          | Descrição                                                        |
|---------------------|------------------------------------------------------------------|
| `pending_2fa_approval` | Agendamento pendente de autenticação de dois fatores (2FA)       |
| `scheduled`          | Pagamento agendado com sucesso                                   |
| `executed`          | O agendamento foi executado com sucesso e o pagamento referente ao agendamento gerado |
| `rejected`          | O agendamento foi rejeitado e nenhum pagamento foi gerado             |
| `canceled`         | Agendamento cancelado                                            |
| `error`             | Erro ao realizar o agendamento                                   |

### Objeto bank_slip
| Campo                             | Tipo    | Descrição                         |
|-----------------------------------|---------|-----------------------------------|
| `barcode` *                       | string | Código de barras. |
| `digitable_line` *                | string | Linha digitável. |
| `payer_name` *                    | string | Nome do pagador.|
| `payer_document_number` *         | string | Número de documento do pagador (CPF/CNPJ). |
| `beneficiary_name` *              | string | Nome do beneficiário. |
| `beneficiary_trading_name`        | string | Nome fantasia do beneficiário. |
| `beneficiary_document_number` *   | string | Número de documento do beneficiário (CPF/CNPJ). |
| `beneficiary_bank_ispb` *         | string | Código ispb do banco do beneficiário. |
| `guarantor_name`                  | string | Nome do sacador avalista. |
| `guarantor_document_number`       | string | Número de documento do sacador avalista (CPF/CNPJ). |
| `expiration_date` *               | string | Data de vencimento. |
| `max_payment_date` * | string  | Data máxima de pagamento. |
| `partial_payment_indicator` *     | [enum](#enumeradores-partial_payment_indicator)   | Indicador de pagamento parcial. |
| `registered_payment_amount`       | string | Valor total de pagamento registrado. |
| `nominal_amount` *                | number | Valor original. |
| `total_amount` *                  | number | Valor total. |
| `rebate_amount` *                 | number | Valor do abatimento. |
| `discount_amount` *               | number | Valor do desconto. |
| `fine_amount` *                   | number | Valor da multa. |
| `interest_amount` *               | number | Valor do juros. |

### Enumeradores partial_payment_indicator
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `allowed`     | string    | Permitido     |
| `not_allowed` | string    | Não permitido |

### Objeto collection_slip
| Campo                             | Tipo    | Descrição                         |
|-----------------------------------|---------|-----------------------------------|
| `barcode` *                       | string | Código de barras. |
| `digitable_line` *                | string | Linha digitável. |
| `collection_name` *               | string | Nome do pagador.|
| `collection_document_number` *    | string | Número de documento do convênio (CPF/CNPJ). |
| `expiration_date` *               | string | Data de vencimento. |
| `total_amount` *                  | number | Valor total. |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 400         | BIP000026 | Bad Request | Invalid payment date format. The correct format is YYYY-MM-DD. | Formato de data de pagamento inválido. O formato correto é YYYY-MM-DD. |
| 400         | BIP000027 | Bad Request | Invalid integer value for page or size query string parameters. | Valor inválido para parâmetros de página ou tamanho de página. |
| 400         | BIP000047 | Bad Request | Invalid payment type. | Tipo de pagamento inválido. |

---

# Solicitar agendamento em lote de boleto bancário

URL: /documentation/baas/cobranca/agendamento/solicitar_agendamento_em_lote_de_boleto_bancario

Este endpoint permite solicitar o **agendamento em lote** de boletos bancários em uma única requisição.

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/account/ ACCOUNT_KEY /payments_schedule/batch_bank_slip
MÉTODO POST

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |

Request Body: Agendamento em lote de boletos bancários

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "bank_slip_payment_schedules": [
    {
      "request_control_key": "c7915a43-212f-5813-9adc-d3ed5d3d3bfd",
      "digitable_line": "00190000090361557400500000024174396700000991000",
      "payment_amount": 1156.8,
      "payment_date": "2026-04-10"
    },
    {
      "request_control_key": "d8a26b54-323a-4924-0aed-e4fe6e4e4c0e",
      "barcode": "00190000090361557400500000024174396700000991000",
      "payment_amount": 200.5,
      "payment_date": "2026-04-15"
    }
  ]
}
```

### Body Params

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da requisição do cliente (lote). |
| `bank_slip_payment_schedules` * | array     | Lista de agendamentos de boleto bancário. Limite de **1000** itens por requisição. |

Cada elemento de `bank_slip_payment_schedules` deve conter:

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da requisição do cliente para aquele item do lote. |
| `barcode`               | string    | Código de barras. |
| `digitable_line`        | string    | Linha digitável. |
| `payment_amount` *      | number    | Valor a ser pago. |
| `payment_date` *        | string    | Data do agendamento do item. |

:::danger Aviso
Para cada item, o `payment_amount` deve seguir as regras do título retornadas na consulta do boleto bancário. Se o pagamento parcial não for permitido, o valor deve corresponder ao total atualizado do título.
:::

## Response

### Success Response

STATUS 202

Response Body: Lote de agendamento criado

```json
{
  "batch_payment_schedule_key": "c4325104-d60b-44f3-aae4-49155564a2ea",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
  "total_amount": 1357.3,
  "batch_payment_schedule_status": "scheduled",
  "payment_type": "bank_slip"
}
```

### Response Body Params

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `batch_payment_schedule_key` *       | uuid4 | Chave única de identificação do agendamento em lote. |
| `request_control_key` *     | uuid4 | Chave única de identificação da requisição do cliente (lote). |
| `account_key` *             | uuid4 | Chave da conta debitada. |
| `total_amount` *            | number | Soma dos valores (`payment_amount`) dos itens do lote. |
| `batch_payment_schedule_status` *         | [enum](#enumeradores-batch_payment_schedule_status) | Status do lote de agendamento após a solicitação. |
| `payment_type` *            | [enum](#enumeradores-payment_type) | Tipo do pagamento. |

### Enumeradores batch_payment_schedule_status

| Enumerador    | Descrição     |
|---------------|---------------|
| `pending_2fa_approval` | Pendente de aprovação 2FA |
| `scheduled`   | Agendado |
| `rejected`    | Rejeitado |
| `error`       | Erro ao agendar |

### Enumeradores payment_type

| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

:::danger Aviso
O enumerador `collection_slip` não se aplica ao fluxo de agendamento em lote de boletos bancários deste endpoint; para este caso, espera-se `payment_type` com valor `bank_slip`.
:::

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 403         | BIP000010 | Forbidden | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404         | BIP000011 | Not Found | The source account key was not found. | A chave da conta de origem não foi encontrada. |
| 400         | BIP000012 | Bad Request | It was not possible to consult the source account at this time. Please try again in a few minutes. | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000024 | Bad Request | Request control key already exists. | Chave de controle da requisição já existe. |
| 400         | BIP000065 | Bad Request | Payment verification time window exceeded. | Janela de tempo de verificação de pagamento excedida. |

---

# Solicitar agendamento em lote de fatura de recolhimento

URL: /documentation/baas/cobranca/agendamento/solicitar_agendamento_em_lote_de_fatura_de_recolhimento

Este endpoint permite solicitar o **agendamento em lote** de faturas de recolhimento (convênio/tributo) em uma única requisição.

:::info Fatura de recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgãos públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um Boleto bancário apresenta.
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/account/ ACCOUNT_KEY /payments_schedule/batch_collection_slip
MÉTODO POST

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |

Request Body: Agendamento em lote de faturas de recolhimento

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "collection_slip_payment_schedules": [
    {
      "request_control_key": "c7915a43-212f-5813-9adc-d3ed5d3d3bfd",
      "digitable_line": "836200000138892100450006762142420244046000010192",
      "payment_amount": 1389.21,
      "payment_date": "2026-04-10"
    },
    {
      "request_control_key": "d8a26b54-323a-4924-0aed-e4fe6e4e4c0e",
      "barcode": "836200000138892100450006762142420244046000010192",
      "payment_amount": 550.10,
      "payment_date": "2026-04-15"
    }
  ]
}
```

### Body Params

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da requisição do cliente (lote). |
| `collection_slip_payment_schedules` * | array     | Lista de agendamentos de fatura de recolhimento. Limite de **1000** itens por requisição. |

Cada elemento de `collection_slip_payment_schedules` deve conter:

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da requisição do cliente para aquele item do lote. |
| `barcode`               | string    | Código de barras. |
| `digitable_line`        | string    | Linha digitável. |
| `payment_amount` *      | number    | Valor a ser pago. |
| `payment_date` *        | string    | Data do agendamento do item. |

## Response

### Success Response

STATUS 202

Response Body: Lote de agendamento criado

```json
{
  "batch_payment_schedule_key": "33860ad0-bcb0-47b7-bbe7-c7e3ec2fc61a",
  "request_control_key": "ae4508df-f2cb-4e28-9f04-a19b7f2758c9",
  "account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "total_amount": 1939.31,
  "batch_payment_schedule_status": "scheduled",
  "payment_type": "collection_slip"
}
```

### Response Body Params

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `batch_payment_schedule_key` *       | uuid4 | Chave única de identificação do agendamento em lote. |
| `request_control_key` *     | uuid4 | Chave única de identificação da requisição do cliente (lote). |
| `account_key` *             | uuid4 | Chave da conta debitada. |
| `total_amount` *            | number | Soma dos valores (`payment_amount`) dos itens do lote. |
| `batch_payment_schedule_status` *         | [enum](#enumeradores-batch_payment_schedule_status) | Status do lote de agendamento após a solicitação. |
| `payment_type` *            | [enum](#enumeradores-payment_type) | Tipo do pagamento. |

### Enumeradores batch_payment_schedule_status

| Enumerador    | Descrição     |
|---------------|---------------|
| `pending_2fa_approval` | Pendente de aprovação 2FA |
| `scheduled`   | Agendado |
| `rejected`    | Rejeitado |
| `error`       | Erro ao agendar |

### Enumeradores payment_type

| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

:::danger Aviso
O enumerador `bank_slip` não se aplica ao fluxo de agendamento em lote de faturas de recolhimento deste endpoint; para este caso, espera-se `payment_type` com valor `collection_slip`.
:::

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 400         | BIP000032 | Bad Request | The bill sent does not correspond to a collection slip. | A conta enviada não corresponde a uma fatura de recolhimento. |
| 400         | BIP000033 | Bad Request | The barcode or digitable line of the collection slip must have 44 or 48 characters. | O código de barras ou linha digitável da fatura de recolhimento deve ter 44 ou 48 caracteres. |
| 403         | BIP000010 | Forbidden | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404         | BIP000011 | Not Found | The source account key was not found. | A chave da conta de origem não foi encontrada. |
| 400         | BIP000012 | Bad Request | It was not possible to consult the source account at this time. Please try again in a few minutes. | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000024 | Bad Request | Request control key already exists. | Chave de controle da requisição já existe. |
| 400         | BIP000065 | Bad Request | Payment verification time window exceeded. | Janela de tempo de verificação de pagamento excedida. |

---

# Confirmação de lote de pagamento de boleto bancário

URL: /documentation/baas/cobranca/confirmacao_de_lote_de_boleto_bancario

Este endpoint permite **confirmar ou rejeitar** um lote de pagamento de boletos bancários previamente criado com [Solicitar pagamento em lote de boleto bancário](./solicitar_pagamento_lote_de_boleto_bancario_com_confirmacao_de_lote.md). A confirmação é a etapa que define se o processamento do lote segue (aprovação) ou é encerrado sem débito dos títulos (rejeição).

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/account/**ACCOUNT_KEY**/payment/batch_bank_slip/**PAYMENT_BATCH_KEY**/confirmation
MÉTODO PATCH

### Request Path Params

| Campo                 | Tipo  | Descrição                                                                                | Caracteres |
| --------------------- | ----- | ---------------------------------------------------------------------------------------- | ---------- |
| `account_key` *       | uuid4 | Chave única de identificação da conta.                                                   | 36         |
| `payment_batch_key` * | uuid4 | Chave única de identificação do lote (`batch_payment_key` retornado na criação do lote). | 36         |

### Request Body

**Request Body: Rejeição do lote**

```json
{
  "batch_status": "rejected"
}
```

**Request Body: Aprovação do lote**

```json
{
  "batch_status": "approved"
}
```

### Body Params

| Campo            | Tipo   | Descrição                                                                                                                                                     |
| ---------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `batch_status` * | string | Decisão sobre o lote. Valores: `approved` (seguir com o processamento) ou `rejected` (cancelar o lote). Ver [enumerador batch_confirmation_status](#enumerador-batch_confirmation_status). |

### Enumerador batch_confirmation_status

Valores aceitos no corpo da requisição para `batch_status`:

| Valor      | Descrição                                                     |
| ---------- | ------------------------------------------------------------- |
| `approved` | Aprovar o lote e continuar o fluxo de processamento.          |
| `rejected` | Rejeitar o lote; não há processamento assíncrono dos boletos. |

## Response

### Resposta: lote rejeitado

STATUS 200

Quando `batch_status` no corpo da requisição é `rejected`, a API responde com **200**. O lote fica encerrado como rejeitado; não há fila assíncrona de pagamento dos boletos.

**Response Body: Lote rejeitado**

```json
{
  "batch_payment_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
  "total_amount": 1357.3,
  "batch_status": "rejected",
  "payment_type": "bank_slip"
}
```

### Resposta: lote aprovado — processamento assíncrono

STATUS 202

Quando `batch_status` no corpo é `approved`, a API responde com **202** e o lote segue para **processamento assíncrono** dos boletos. O corpo retorna `batch_status` como `approved`.

**Response Body: Lote aprovado para processamento assíncrono**

```json
{
  "batch_payment_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
  "total_amount": 1357.3,
  "batch_status": "approved",
  "payment_type": "bank_slip"
}
```

### Response Body Params

| Campo                   | Tipo   | Descrição                                                                                                                                                                                                                                                                     |
| ----------------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `batch_payment_key` *   | uuid4  | Chave única de identificação do pagamento em lote.                                                                                                                                                                                                                            |
| `request_control_key` * | uuid4  | Chave única de identificação da requisição do cliente (lote).                                                                                                                                                                                                                 |
| `account_key` *         | uuid4  | Chave da conta debitada.                                                                                                                                                                                                                                                      |
| `total_amount` *        | number | Soma dos valores dos itens do lote.                                                                                                                                                                                                                                           |
| `batch_status` *        | string | Status do lote após esta chamada (`rejected` ou `approved` para o fluxo descrito nesta página). Alinhado ao ciclo de vida em [Solicitar pagamento em lote de boleto bancário — batch_payment_status](./solicitar_pagamento_lote_de_boleto_bancario_com_confirmacao_de_lote.md#enumeradores-batch_payment_status). |
| `payment_type` *        | string | Tipo do pagamento; para este fluxo, espera-se `bank_slip`.                                                                                                                                                                                                                    |

### Error Response

STATUS 4XX

**Response Body**

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título      | Descrição (eng)                               | Descrição (pt-br)                                     |
| ----------- | --------- | ----------- | --------------------------------------------- | ----------------------------------------------------- |
| 400         | BIP000013 | Bad Request | The source account is closed.                 | A conta de origem está fechada.                       |
| 400         | BIP000050 | Bad Request | Requester configuration does not exist        | Configuração do requester não existe.                 |
| 404         | BIP000083 | Not Found   | Batch payment not found by batch payment key. | Lote de pagamentos não encontrado pela chave do lote. |
| 400         | BIP000084 | Bad Request | Batch payment status is not pending.          | O status do lote de pagamentos não está pendente.     |

---

# Confirmação de lote de pagamento de fatura de recolhimento (convênio/tributo)

URL: /documentation/baas/cobranca/confirmacao_de_lote_de_fatura_de_recolhimento

Este endpoint permite **confirmar ou rejeitar** um lote de pagamento de faturas de recolhimento previamente criado com [Solicitar pagamento em lote de fatura de recolhimento (convênio/tributo)](./solicitar_pagamento_lote_de_fatura_de_recolhimento_com_confirmacao_de_lote.md). A confirmação é a etapa que define se o processamento do lote segue (aprovação) ou é encerrado sem débito dos títulos (rejeição).

:::info Fatura de recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgãos públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um boleto bancário apresenta.
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/account/**ACCOUNT_KEY**/payment/batch_collection_slip/**PAYMENT_BATCH_KEY**/confirmation
MÉTODO PATCH

### Request Path Params

| Campo                 | Tipo  | Descrição                                                                                | Caracteres |
| --------------------- | ----- | ---------------------------------------------------------------------------------------- | ---------- |
| `account_key` *       | uuid4 | Chave única de identificação da conta.                                                   | 36         |
| `payment_batch_key` * | uuid4 | Chave única de identificação do lote (`batch_payment_key` retornado na criação do lote). | 36         |

### Request Body

**Request Body: Rejeição do lote**

```json
{
  "batch_status": "rejected"
}
```

**Request Body: Aprovação do lote**

```json
{
  "batch_status": "approved"
}
```

### Body Params

| Campo            | Tipo   | Descrição                                                                                                                                                     |
| ---------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `batch_status` * | string | Decisão sobre o lote. Valores: `approved` (seguir com o processamento) ou `rejected` (cancelar o lote). Ver [enumerador batch_confirmation_status](#enumerador-batch_confirmation_status). |

### Enumerador batch_confirmation_status

Valores aceitos no corpo da requisição para `batch_status`:

| Valor      | Descrição                                                                     |
| ---------- | ----------------------------------------------------------------------------- |
| `approved` | Aprovar o lote e continuar o fluxo de processamento.                          |
| `rejected` | Rejeitar o lote; não há processamento assíncrono das faturas de recolhimento. |

## Response

### Resposta: lote rejeitado

STATUS 200

Quando `batch_status` no corpo da requisição é `rejected`, a API responde com **200**. O lote fica encerrado como rejeitado; não há fila assíncrona de pagamento das faturas de recolhimento.

**Response Body: Lote rejeitado**

```json
{
  "batch_payment_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "total_amount": 2778.42,
  "batch_status": "rejected",
  "payment_type": "collection_slip"
}
```

### Resposta: lote aprovado — processamento assíncrono

STATUS 202

Quando `batch_status` no corpo é `approved`, a API responde com **202** e o lote segue para **processamento assíncrono** das faturas de recolhimento. O corpo retorna `batch_status` como `approved`.

**Response Body: Lote aprovado para processamento assíncrono**

```json
{
  "batch_payment_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "total_amount": 2778.42,
  "batch_status": "approved",
  "payment_type": "collection_slip"
}
```

### Response Body Params

| Campo                   | Tipo   | Descrição                                                                                                                                                                                                                                                                                    |
| ----------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `batch_payment_key` *   | uuid4  | Chave única de identificação do pagamento em lote.                                                                                                                                                                                                                                           |
| `request_control_key` * | uuid4  | Chave única de identificação da requisição do cliente (lote).                                                                                                                                                                                                                                |
| `account_key` *         | uuid4  | Chave da conta debitada.                                                                                                                                                                                                                                                                     |
| `total_amount` *        | number | Soma dos valores dos itens do lote.                                                                                                                                                                                                                                                          |
| `batch_status` *        | string | Status do lote após esta chamada (`rejected` ou `approved` para o fluxo descrito nesta página). Alinhado ao ciclo de vida em [Solicitar pagamento em lote de fatura de recolhimento — batch_payment_status](./solicitar_pagamento_lote_de_fatura_de_recolhimento_com_confirmacao_de_lote.md#enumeradores-batch_payment_status). |
| `payment_type` *        | string | Tipo do pagamento; para este fluxo, espera-se `collection_slip`.                                                                                                                                                                                                                             |

### Error Response

STATUS 4XX

**Response Body**

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título      | Descrição (eng)                               | Descrição (pt-br)                                     |
| ----------- | --------- | ----------- | --------------------------------------------- | ----------------------------------------------------- |
| 400         | BIP000013 | Bad Request | The source account is closed.                 | A conta de origem está fechada.                       |
| 400         | BIP000050 | Bad Request | Requester configuration does not exist        | Configuração do requester não existe.                 |
| 404         | BIP000083 | Not Found   | Batch payment not found by batch payment key. | Lote de pagamentos não encontrado pela chave do lote. |
| 400         | BIP000084 | Bad Request | Batch payment status is not pending.          | O status do lote de pagamentos não está pendente.     |

---

# Consulta de Boleto Bancário

URL: /documentation/baas/cobranca/consultar_boleto_bancario

Este endpoint é utilizado para consultar as informações de um boleto bancário.

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/bank_slip/ DIGITABLE_LINE or BARCODE
MÉTODO GET

### Request Path Params

| Campo               | Tipo    | Descrição                         | Caracteres |
|---------------------|---------|-----------------------------------|------------|
| `digitable_line`  | string  | Linha digitável a ser consultada. | 47         |
| `barcode`         | string  | Código de barras a ser consultado.| 44         |

### Request Query String Params

| Campo               | Tipo        | Descrição                         | Caracteres |
|---------------------|-------------|-----------------------------------|------------|
| `payment_date`      | string      | Data do pagamento e que será levada em consideração nos cálculos dos valores do boleto. | YYYY-MM-DD |

## Response

### Success Response

STATUS 200

Response Body: Boleto bancário disponível para pagamento

```json
{
   "barcode":"00193967000009910000000003615574000000002417",
   "digitable_line":"00190000090361557400500000024174396700000991000",
   "payer_name":"COOPERATIVA AGRO.INDUSTRIAL TEST",
   "payer_document_number":"21063663000125",
   "beneficiary_name":"TESTE EQUIPAMENTOS E SERVICOS LTDA.",
   "beneficiary_trading_name":"TESTE EQUIPAMENTOS E SERVICOS LTDA",
   "beneficiary_document_number":"30639204000138",
   "beneficiary_bank_ispb":"00000000",
   "guarantor_name":null,
   "guarantor_document_number":null,
   "expiration_date":"2024-03-29",
   "max_payment_data": "2026-03-29",
   "partial_payment_indicator":"not_allowed",
   "registered_payment_amount":null,
   "nominal_amount":9910.0,
   "total_amount":10129.1,
   "rebate_amount":0.0,
   "discount_amount":0.0,
   "fine_amount":0.0,
   "interest_amount":219.1
}
```

### Response Body Params

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `barcode` *         | string | Código de barras. |
| `digitable_line` *  | string | Linha digitável. |
| `payer_name` *         | string | Nome do pagador.|
| `payer_document_number` *  | string | Número de documento do pagador (CPF/CNPJ). |
| `beneficiary_name` *         | string | Nome do beneficiário. |
| `beneficiary_trading_name`  | string | Nome fantasia do beneficiário. |
| `beneficiary_document_number` *         | string | Número de documento do beneficiário (CPF/CNPJ). |
| `beneficiary_bank_ispb` *         | string | Código ispb do banco do beneficiário. |
| `guarantor_name`   | string | Nome do sacador avalista. |
| `guarantor_document_number`        | string | Número de documento do sacador avalista (CPF/CNPJ). |
| `expiration_date` *  | string  | Data de vencimento. |
| `max_payment_date` * | string  | Data máxima de pagamento. |
| `partial_payment_indicator` *  | [enum](#enumeradores-partial_payment_indicator) | Indicador de pagamento parcial |
| `registered_payment_amount`   | string | Valor total de pagamento registrado. |
| `nominal_amount` *  | number | Valor original. |
| `total_amount` *  | number | Valor total. |
| `rebate_amount` *  | number | Valor do abatimento. |
| `discount_amount` *  | number | Valor do desconto. |
| `fine_amount` *  | number | Valor da multa. |
| `interest_amount` *  | number | Valor do juros. |

### Enumeradores partial_payment_indicator
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `allowed`     | string    | Permitido     |
| `not_allowed` | string    | Não permitido |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 400         | BIP000001 | Bad Request | The barcode or digitable line must have 44 or 47 characters. | O código de barras ou linha digitável deve ter 44 ou 47 caracteres. |
| 400         | BIP000002 | Bad Request | The bill sent does not correspond to a bank slip. | A conta enviado não corresponde a um boleto bancário. |
| 400         | BIP000003 | Bad Request | The digitable line sent is invalid. | A linha digitável enviada é inválida. |
| 404         | BIP000004 | Not Found | The bank slip was not found. | O boleto não foi encontrado. |
| 400         | BIP000005 | Bad Request | It was not possible to consult the bank slip at this time. Please try again in a few minutes. | Não foi possível consultar o boleto neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000006 | Bad Request | Bank slip already written off | Boleto já baixado |
| 400         | BIP000007 | Bad Request | Bank slip blocked for payment | Boleto bloqueado para pagamento |
| 400         | BIP000008 | Bad Request | Bank slip already paid | Boleto já pago |
| 400         | BIP000009 | Bad Request | Invalid bank slip. Please consult issuing bank | Boleto inválido. Favor consultar banco emissor |

## Ambiente de Sandbox

Em nosso ambiente de sandbox, disponibilizamos linhas digitáveis mockadas para a simulação de pagamentos bem-sucedidos e testes de cenários de erro.

### Cenários de sucesso

| Linha digitável |
|---|
| 00190000090361557400500000024174396700000991000 |
| 00190000090282802601919212747174596760001294161 |
| 23793390014000000455277000249001596900000103995 |
| 75691434020137513680900001040013196770002417240 |
| 21390001171200000570700168167484796770000148206 |
| 07790001161200000039300602819070498470000182970 |
| 23792372059034189564835003432701998420000008306 |
| 03399199530490000005254172701010698420000467696 |
| 03399135012340000000830681701014198420038743888 |
| 75691324620100735471370255730478698420064900819 |
| 75691413310108906500520369970015899610000033705 |
| 13695621010000389701400000037598810770000217000 |

### Cenários de erro

| Linha digitável | Código de erro |
|---|---|
| 34191090083273252027893634770007296690012513600 | BIP000007 |
| 07090010287045349010776686070590896770001160123 | BIP000007 |
| 42297048060005815702500130494123896770000239491 | BIP000006 |
| 74891123702849020818918378871083196690000050000 | BIP000009 |
| 23792374119000209350986000372408496610000122810 | BIP000008 |

---

# Consulta de Fatura de Recolhimento

URL: /documentation/baas/cobranca/consultar_fatura_de_recolhimento

Este endpoint é utilizado para consultar as informações de uma fatura de recolhimento.

:::info Fatura de recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgão públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um Boleto bancário apresenta. Você pode conferir a lista de convênios aceitos pela QI Tech, bem como seus respectivos horários limite de pagamento, através deste [link](https://storage.googleapis.com/live-doc-api/public_samples/active_covenants.xlsx).
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/collection_slip/ DIGITABLE_LINE or BARCODE
MÉTODO GET

### Request Path Params

| Campo               | Tipo    | Descrição                         | Caracteres |
|---------------------|---------|-----------------------------------|------------|
| `digitable_line`  | string  | Linha digitável a ser consultada. | 48         |
| `barcode`         | string  | Código de barras a ser consultado.| 44         |

## Response

### Success Response

STATUS 200

Response Body: Fatura de recolhimento disponível para pagamento

```json
{
  "barcode": null,
  "digitable_line": "836200000138892100450006762142420244046000010192",
  "collection_name": "CIA ULTRAGAZ SA-COD",
  "expiration_date": "2024-04-15",
  "total_amount": 1389.21
}
```

### Response Body Params

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `barcode`          | string | Código de barras. |
| `digitable_line`   | string | Linha digitável. |
| `collection_name` *         | string | Nome do convênio.|
| `expiration_date` *  | string  | Data de vencimento. |
| `total_amount` *  | number | Valor total. |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 400         | BIP000032 | Bad Request | The bill sent does not correspond to a collection slip. | A conta enviada não corresponde a uma fatura de recolhimento. |
| 400         | BIP000033 | Bad Request | The barcode or digitable line of the collection slip must have 44 or 48 characters. | O código de barras ou linha digitável da fatura de recolhimento deve ter 44 ou 48 caracteres. |
| 400         | BIP000034 | Bad Request | Collection slip already paid. | Fatura de recolhimento já paga. |
| 400         | BIP000035 | Bad Request | Covenant slip invalid barcode. | Código de barras da fatura de recolhimento inválido. |
| 400         | BIP000036 | Bad Request | Covenant slip overdue. | Fatura de recolhimento vencida. |
| 400         | BIP000037 | Bad Request | Error in collection slip consultation. | Erro na consulta da fatura de recolhimento. |
| 400         | BIP000038 | Bad Request | Outside of covenant payment hours. | Fora do horário de pagamento do convênio. |
| 400         | BIP000039 | Bad Request | Collection slip not accepted. | Fatura de recolhimento não aceita. |
| 400         | BIP000040 | Bad Request | Minimum advance not reached. | Mínimo de dias de adiantamento não atingido. |
| 400         | BIP000041 | Bad Request | Max payment amount exceeded. | Valor máximo de pagamento excedido. |

## Ambiente de Sandbox

Em nosso ambiente de sandbox, disponibilizamos linhas digitáveis mockadas para a simulação de pagamentos bem-sucedidos e testes de cenários de erro.

### Cenários de sucesso

| Linha digitável |
|---|
| 828300000007411100972013905080001546763201900028 |
| 838000000009235700481007241345219112001474229880 |
| 848000000006308600802021201071261517689002201070 |
| 858200000015000000643025703477209504800448091020 |

### Cenários de erro

| Linha digitável | Código de erro |
|---|---|
| 858500000037350000643217212883260006147448091022 | BIP000035 |

---

# Consultar lote de pagamento

URL: /documentation/baas/cobranca/consultar_lote_de_pagamento

Este endpoint retorna o resumo do lote e a lista paginada dos pagamentos que o compõem (boletos bancários ou faturas de recolhimento).

Para localizar `batch_payment_key`, utilize [Listar lotes de pagamento](./listar_lotes_de_pagamento.md).

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.
:::

:::info Fatura de recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgão públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um Boleto bancário apresenta.
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/account/**ACCOUNT_KEY**/batch/**BATCH_PAYMENT_KEY**
MÉTODO GET

### Request Path Params

| Campo                 | Tipo  | Descrição                                          | Caracteres |
| --------------------- | ----- | -------------------------------------------------- | ---------- |
| `account_key` *       | uuid4 | Chave única de identificação da conta.             | 36         |
| `batch_payment_key` * | uuid4 | Chave única de identificação do pagamento em lote. | 36         |

### Request Query String Params

| Campo       | Tipo   | Descrição                                                                     |
| ----------- | ------ | ----------------------------------------------------------------------------- |
| `page`      | string | Número da página dos itens em `payments.data`. 1 por padrão.                  |
| `page_size` | string | Tamanho da página dos itens em `payments.data`. 30 por padrão e valor máximo. |

## Response

### Success Response

STATUS

 200

**Response Body: Detalhes do lote de pagamento**

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "total_paid": 10,
  "total_pending": 0,
  "total_error": 0,
  "total_amount": 1357.3,
  "payments": {
    "pagination": {
      "current_page": 1,
      "rows_per_page": 30
    },
    "data": [
      {
        "payment_key": "c4325104-d60b-44f3-aae4-49155564a2ea",
        "payer_name": "COOPERATIVA INDUSTRIAL MURILO",
        "payer_document_number": "00037025000160",
        "source_account_key": "6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
        "transaction_key": "4e80070a-a0bb-4be2-8178-55fbd73a3704",
        "transaction_revert_key": null,
        "paid_amount": 1050.1,
        "payment_date": "2024-04-03",
        "payment_type": "bank_slip",
        "bank_slip": {
          "bank_slip_key": "95080ffd-3ac5-48d7-b3fe-659e4aaba81a",
          "barcode": "00193967000009910000000003615574000000002417",
          "digitable_line": "00190000090361557400500000024174396700000991000",
          "payer_name": "COOPERATIVA TESTE",
          "payer_document_number": "00037025000160",
          "beneficiary_name": "TESTE EQUIPAMENTOS E SERVICOS LTDA",
          "beneficiary_trading_name": "TESTE EQUIPAMENTOS E SERVICOS LTDA",
          "beneficiary_document_number": "52069937000117",
          "beneficiary_bank_ispb": "00000000",
          "guarantor_name": null,
          "guarantor_document_number": null,
          "expiration_date": "2024-03-29",
          "max_payment_date": "2026-03-29",
          "partial_payment_indicator": "allowed",
          "registered_payment_amount": 9029.0,
          "nominal_amount": 9910.0,
          "total_amount": 10129.1,
          "rebate_amount": 0.0,
          "discount_amount": 0.0,
          "fine_amount": 0.0,
          "interest_amount": 219.1
        },
        "collection_slip": null,
        "payment_status": "executed",
        "error_reason": null
      }
    ]
  }
}
```

### Response Body Params

| Campo                   | Tipo                       | Descrição                                                     |
| ----------------------- | -------------------------- | ------------------------------------------------------------- |
| `request_control_key` * | uuid4                      | Chave única de identificação da requisição do cliente (lote). |
| `total_paid` *          | int                        | Quantidade de itens do lote pagos com sucesso.                |
| `total_pending` *       | int                        | Quantidade de itens ainda pendentes no lote.                  |
| `total_error` *         | int                        | Quantidade de itens com erro no lote.                         |
| `total_amount` *        | number                     | Valor total do lote.                                          |
| `payments` *            | [object](#objeto-payments) | Lista paginada dos pagamentos do lote.                        |

### Objeto payments

| Campo          | Tipo                         | Descrição                                                                                                                                     |
| -------------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `pagination` * | [object](#objeto-pagination) | Paginação da lista de pagamentos do lote.                                                                                                     |
| `data` *       | array                        | Itens do lote (estrutura equivalente a cada elemento de `data` em [Listar pagamentos](./listar_pagamentos.md), com campos adicionais abaixo). |

Cada elemento de `payments.data` contém:

| Campo                     | Tipo                                 | Descrição                                                                      |
| ------------------------- | ------------------------------------ | ------------------------------------------------------------------------------ |
| `payment_key` *           | uuid4                                | Chave única de identificação do pagamento.                                     |
| `payer_name` *            | string                               | Nome do pagador efetivo.                                                       |
| `payer_document_number` * | string                               | Número de documento do pagador efetivo (CPF/CNPJ).                             |
| `source_account_key` *    | uuid4                                | Chave da conta debitada.                                                       |
| `transaction_key` *       | uuid4                                | Chave da transação do pagamento.                                               |
| `transaction_revert_key`  | uuid4                                | Chave da transação de reversão do pagamento.                                   |
| `paid_amount` *           | number                               | Valor pago efetivamente.                                                       |
| `payment_date` *          | string                               | Data do pagamento.                                                             |
| `payment_type` *          | [enum](#enumeradores-payment_type)   | Tipo do pagamento.                                                             |
| `bank_slip`               | [object](#objeto-bank_slip)          | Boleto bancário. Pode ser `null` quando `payment_type` for `collection_slip`.  |
| `collection_slip`         | [object](#objeto-collection_slip)    | Fatura de recolhimento. Pode ser `null` quando `payment_type` for `bank_slip`. |
| `payment_status` *        | [enum](#enumeradores-payment_status) | Status do pagamento.                                                           |
| `error_reason`            | string                               | Motivo do erro, quando aplicável; caso contrário `null`.                       |

### Objeto pagination

| Campo             | Tipo | Descrição                           |
| ----------------- | ---- | ----------------------------------- |
| `current_page` *  | int  | Página atual retornada.             |
| `rows_per_page` * | int  | Quantidade de registros por página. |

### Enumeradores payment_type

| Enumerador        | Descrição              |
| ----------------- | ---------------------- |
| `bank_slip`       | Boleto bancário        |
| `collection_slip` | Fatura de recolhimento |

### Enumeradores payment_status

| Enumerador          | Descrição            |
| ------------------- | -------------------- |
| `pending_execution` | Pendente de execução |
| `executed`          | Executado            |
| `reverted`          | Revertido            |
| `rejected`          | Rejeitado            |
| `error`             | Erro                 |

### Objeto bank_slip

| Campo                           | Tipo                                            | Descrição                                           |
| ------------------------------- | ----------------------------------------------- | --------------------------------------------------- |
| `bank_slip_key` *               | uuid4                                           | Chave única de identificação do boleto bancário.    |
| `barcode` *                     | string                                          | Código de barras.                                   |
| `digitable_line` *              | string                                          | Linha digitável.                                    |
| `payer_name` *                  | string                                          | Nome do pagador.                                    |
| `payer_document_number` *       | string                                          | Número de documento do pagador (CPF/CNPJ).          |
| `beneficiary_name` *            | string                                          | Nome do beneficiário.                               |
| `beneficiary_trading_name`      | string                                          | Nome fantasia do beneficiário.                      |
| `beneficiary_document_number` * | string                                          | Número de documento do beneficiário (CPF/CNPJ).     |
| `beneficiary_bank_ispb` *       | string                                          | Código ispb do banco do beneficiário.               |
| `guarantor_name`                | string                                          | Nome do sacador avalista.                           |
| `guarantor_document_number`     | string                                          | Número de documento do sacador avalista (CPF/CNPJ). |
| `expiration_date` *             | string                                          | Data de vencimento.                                 |
| `max_payment_date` *            | string                                          | Data máxima de pagamento.                           |
| `partial_payment_indicator` *   | [enum](#enumeradores-partial_payment_indicator) | Indicador de pagamento parcial.                     |
| `registered_payment_amount`     | number                                          | Valor total de pagamento registrado.                |
| `nominal_amount` *              | number                                          | Valor original.                                     |
| `total_amount` *                | number                                          | Valor total.                                        |
| `rebate_amount` *               | number                                          | Valor do abatimento.                                |
| `discount_amount` *             | number                                          | Valor do desconto.                                  |
| `fine_amount` *                 | number                                          | Valor da multa.                                     |
| `interest_amount` *             | number                                          | Valor dos juros.                                    |

### Enumeradores partial_payment_indicator

| Enumerador    | Descrição     |
| ------------- | ------------- |
| `allowed`     | Permitido     |
| `not_allowed` | Não permitido |

### Objeto collection_slip

| Campo                          | Tipo   | Descrição                                   |
| ------------------------------ | ------ | ------------------------------------------- |
| `barcode` *                    | string | Código de barras.                           |
| `digitable_line` *             | string | Linha digitável.                            |
| `collection_name` *            | string | Nome do pagador.                            |
| `collection_document_number` * | string | Número de documento do convênio (CPF/CNPJ). |
| `expiration_date` *            | string | Data de vencimento.                         |
| `total_amount` *               | number | Valor total.                                |

### Error Response

STATUS

 4XX

**Response Body**

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título      | Descrição (eng)                                                 | Descrição (pt-br)                                              |
| ----------- | --------- | ----------- | --------------------------------------------------------------- | -------------------------------------------------------------- |
| 400         | BIP000027 | Bad Request | Invalid integer value for page or size query string parameters. | Valor inválido para parâmetros de página ou tamanho de página. |

---

# Listar lotes de pagamento

URL: /documentation/baas/cobranca/listar_lotes_de_pagamento

Este endpoint retorna os lotes de pagamento de boletos bancários e faturas de recolhimento associados à conta, com suporte a filtros e paginação.

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.
:::

:::info Fatura de recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgão públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um Boleto bancário apresenta.
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/account/ ACCOUNT_KEY /batches
MÉTODO GET

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |

### Request Query String Params

| Campo               | Tipo        | Descrição                         |
|---------------------|-------------|-----------------------------------|
| `request_control_key` | uuid4     | Chave única de identificação da requisição do cliente (lote). |
| `batch_payment_key`   | uuid4     | Chave única de identificação do pagamento em lote. |
| `payment_type`        | [enum](#enumeradores-payment_type)      | Tipo do pagamento do lote. |
| `batch_payment_status` | [enum](#enumeradores-batch_payment_status) | Status do lote. |
| `date_from`           | string    | Data inicial. Formato "YYYY-MM-DD". |
| `date_to`             | string    | Data final. Formato "YYYY-MM-DD". |
| `page`                | string    | Número da página requisitada. 1 por padrão. |
| `page_size`           | string    | Tamanho da página requisitada na consulta. 30 por padrão e valor máximo. |

### Enumeradores payment_type

| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

### Enumeradores batch_payment_status

| Enumerador    | Descrição     |
|---------------|---------------|
| `pending`     | Pendente de processamento |
| `pending_2fa_approval` | Pendente de aprovação 2FA |
| `rejected`    | Rejeitado |
| `approved`    | Aprovado |
| `processed`   | Processado |

## Response

### Success Response

STATUS 200

Response Body: Listagem de lotes de pagamento

```json
{
  "pagination": {
    "current_page": 1,
    "rows_per_page": 30
  },
  "data": [
    {
      "batch_payment_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "batch_status": "processed",
      "payment_type": "bank_slip",
      "total_paid": 10,
      "total_pending": 0,
      "total_error": 0,
      "total_amount": 1357.3
    }
  ]
}
```

### Response Body Params

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `pagination` *      | [object](#objeto-pagination) | Informações de paginação da consulta. |
| `data` *            | array   | Lista de lotes encontrados. |

Cada elemento de `data` contém:

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `batch_payment_key` * | uuid4 | Chave única de identificação do pagamento em lote. |
| `request_control_key` * | uuid4 | Chave única de identificação da requisição do cliente (lote). |
| `batch_status` *    | [enum](#enumeradores-batch_payment_status-1) | Status atual do lote. |
| `payment_type` *    | [enum](#enumeradores-payment_type-1) | Tipo do pagamento do lote. |
| `total_paid` *      | int     | Quantidade de itens do lote pagos com sucesso. |
| `total_pending` *   | int     | Quantidade de itens ainda pendentes no lote. |
| `total_error` *     | int     | Quantidade de itens com erro no lote. |
| `total_amount` *    | number  | Valor total do lote. |

### Objeto pagination

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `current_page` *    | int     | Página atual retornada. |
| `rows_per_page` *   | int     | Quantidade de registros por página. |

### Enumeradores payment_type

| Enumerador    | Descrição     |
|---------------|---------------|
| `bank_slip`     | Boleto bancário    |
| `collection_slip` | Fatura de recolhimento |

### Enumeradores batch_payment_status

| Enumerador    | Descrição     |
|---------------|---------------|
| `pending`     | Pendente de processamento |
| `pending_2fa_approval` | Pendente de aprovação 2FA |
| `rejected`    | Rejeitado |
| `approved`    | Aprovado |
| `processed`   | Processado |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 400         | BIP000026 | Bad Request | Invalid payment date format. The correct format is YYYY-MM-DD. | Formato de data de pagamento inválido. O formato correto é YYYY-MM-DD. |
| 400         | BIP000027 | Bad Request | Invalid integer value for page or size query string parameters. | Valor inválido para parâmetros de página ou tamanho de página. |
| 400         | BIP000047 | Bad Request | Invalid payment type. | Tipo de pagamento inválido. |

---

# Listar Pagamentos

URL: /documentation/baas/cobranca/listar_pagamentos

Este endpoint tem a finalidade de fornecer detalhes de todas as cobranças pagas pelo cliente, incluindo boletos bancários e Faturas de recolhimento.

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.
:::

:::info Fatura de recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgão públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um Boleto bancário apresenta.
:::

## Request

### Request Endpoint

ENDPOINT /account/ ACCOUNT_KEY /payments
MÉTODO GET

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |

### Request Query String Params

| Campo               | Tipo        | Descrição                         |
|---------------------|-------------|-----------------------------------|
| `request_control_key` | uuid4     | Chave única de identificação da request do cliente. |
| `payment_key`         | uuid4     | Chave única de identificação do pagamento. |
| `payment_schedule_key`         | uuid4     | Chave única de identificação do agendamento de pagamento. |
| `payment_type`        | [enum](#enumeradores-payment_type)      | Tipo do pagamento. |
| `payment_status`        | [enum](#enumeradores-payment_status)      | Status do pagamento. |
| `date_from`           | string    | Data inicial. Formato "YYYY-MM-DD". |
| `date_to`             | string    | Data final. Formato "YYYY-MM-DD". |
| `page`                | string    | Número da página requisitada. 1 por padrão. |
| `page_size`           | string    | Tamanho da página requisitada na consulta. 30 por padrão e valor máximo. |

### Enumeradores payment_type
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

### Enumeradores payment_status
| Enumerador    | Descrição     |
|---------------|---------------|
| `pending_execution`     | Pendente de execução |
| `executed`    | Executado |
| `reverted`    | Revertido |
| `rejected`    | Rejeitado |
| `error`       | Erro      |

## Response

### Success Response

STATUS 200

Response Body: Consulta de pagamentos

```json
{
  "data": [
    {
        "payment_key":"c4325104-d60b-44f3-aae4-49155564a2ea",
        "request_control_key":"b713b2f6-2f48-4d18-b0c9-7186e4edf189",
        "payer_name":"COOPERATIVA INDUSTRIAL MURILO",
        "payer_document_number":"00037025000160",
        "source_account_key":"6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
        "transaction_key":"4e80070a-a0bb-4be2-8178-55fbd73a3704",
        "transaction_revert_key":null,
        "paid_amount":1050.1,
        "payment_date":"2024-04-03",
        "payment_type":"bank_slip",
        "bank_slip": {
                "bank_slip_key":"95080ffd-3ac5-48d7-b3fe-659e4aaba81a",
                "barcode":"00193967000009910000000003615574000000002417",
                "digitable_line":"00190000090361557400500000024174396700000991000",
                "payer_name":"COOPERATIVA TESTE",
                "payer_document_number":"00037025000160",
                "beneficiary_name":"TESTE EQUIPAMENTOS E SERVICOS LTDA",
                "beneficiary_trading_name":"TESTE EQUIPAMENTOS E SERVICOS LTDA",
                "beneficiary_document_number":"52069937000117",
                "beneficiary_bank_ispb":"00000000",
                "guarantor_name":null,
                "guarantor_document_number":null,
                "expiration_date":"2024-03-29",
                "max_payment_data": "2026-03-29",
                "partial_payment_indicator":"allowed",
                "registered_payment_amount":9029.0,
                "nominal_amount":9910.0,
                "total_amount":10129.1,
                "rebate_amount":0.0,
                "discount_amount":0.0,
                "fine_amount":0.0,
                "interest_amount":219.1
            },
        "collection_slip":null,
        "payment_status":"executed"
    }
  ],
  "pagination": {
    "current_page": 1,
    "rows_per_page": 30
  }
}
```

### Response Body Params

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `payment_key` *               | uuid4 | Chave única de identificação do pagamento. |
| `request_control_key` *       | uuid4 | Chave única de identificação da request do cliente. |
| `payer_name` *                | string | Nome do pagador efetivo.|
| `payer_document_number` *     | string | Número de documento do pagador efetivo (CPF/CNPJ). |
| `source_account_key` *        | uuid4 | Chave da conta debitada. |
| `transaction_key` *           | uuid4 | Chave da transação do pagamento. |
| `transaction_revert_key`      | uuid4 | Chave da transação de reversão do pagamento. |
| `paid_amount` *               | number | Valor pago efetivamente. |
| `payment_date` *              | string | Data do pagamento. |
| `payment_type` *              | [enum](#enumeradores-payment_type-1) | Tipo do pagamento. |
| `bank_slip`                   | [object](#objeto-bank_slip) | Boleto bancário. |
| `collection_slip`             | [object](#objeto-collection_slip) | Fatura de recolhimento. |
| `payment_status` *            | [enum](#enumeradores-payment_status) | Status do pagamento. |

### Enumeradores payment_type
| Enumerador    | Descrição     |
|---------------|---------------|
| `bank_slip`     | Boleto bancário    |
| `collection_slip` | Fatura de recolhimento |

### Enumeradores payment_status
| Enumerador    | Descrição     |
|---------------|---------------|
| `pending_execution`     | Pendente de execução |
| `executed`    | Executado |
| `reverted`    | Revertido |
| `rejected`    | Rejeitado |
| `error`       | Erro      |

### Objeto bank_slip
| Campo                             | Tipo    | Descrição                         |
|-----------------------------------|---------|-----------------------------------|
| `barcode` *                       | string | Código de barras. |
| `digitable_line` *                | string | Linha digitável. |
| `payer_name` *                    | string | Nome do pagador.|
| `payer_document_number` *         | string | Número de documento do pagador (CPF/CNPJ). |
| `beneficiary_name` *              | string | Nome do beneficiário. |
| `beneficiary_trading_name`        | string | Nome fantasia do beneficiário. |
| `beneficiary_document_number` *   | string | Número de documento do beneficiário (CPF/CNPJ). |
| `beneficiary_bank_ispb` *         | string | Código ispb do banco do beneficiário. |
| `guarantor_name`                  | string | Nome do sacador avalista. |
| `guarantor_document_number`       | string | Número de documento do sacador avalista (CPF/CNPJ). |
| `expiration_date` *               | string | Data de vencimento. |
| `max_payment_date` * | string  | Data máxima de pagamento. |
| `partial_payment_indicator` *     | [enum](#enumeradores-partial_payment_indicator)   | Indicador de pagamento parcial. |
| `registered_payment_amount`       | string | Valor total de pagamento registrado. |
| `nominal_amount` *                | number | Valor original. |
| `total_amount` *                  | number | Valor total. |
| `rebate_amount` *                 | number | Valor do abatimento. |
| `discount_amount` *               | number | Valor do desconto. |
| `fine_amount` *                   | number | Valor da multa. |
| `interest_amount` *               | number | Valor do juros. |

### Enumeradores partial_payment_indicator
| Enumerador    | Descrição     |
|---------------|---------------|
| `allowed`     | Permitido     |
| `not_allowed` | Não permitido |

### Objeto collection_slip
| Campo                             | Tipo    | Descrição                         |
|-----------------------------------|---------|-----------------------------------|
| `barcode` *                       | string | Código de barras. |
| `digitable_line` *                | string | Linha digitável. |
| `collection_name` *               | string | Nome do pagador.|
| `collection_document_number` *    | string | Número de documento do convênio (CPF/CNPJ). |
| `expiration_date` *               | string | Data de vencimento. |
| `total_amount` *                  | number | Valor total. |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 400         | BIP000026 | Bad Request | Invalid payment date format. The correct format is YYYY-MM-DD. | Formato de data de pagamento inválido. O formato correto é YYYY-MM-DD. |
| 400         | BIP000027 | Bad Request | Invalid integer value for page or size query string parameters. | Valor inválido para parâmetros de página ou tamanho de página. |
| 400         | BIP000047 | Bad Request | Invalid payment type. | Tipo de pagamento inválido. |

---

# Realizar Pagamento de Boleto Bancário

URL: /documentation/baas/cobranca/pagar_boleto_bancario

Este endpoint permite realizar o pagamento de boletos bancários. O pagamento deve ser realizado após a consulta, utilizando as informações retornadas para garantir o funcionamento correto do fluxo, evitando falhas durante o processo de pagamento.

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.
:::

## Request

### Request Endpoint

ENDPOINT /account/ ACCOUNT_KEY /payment/bank_slip
MÉTODO POST

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |

Request Body: Pagamento de boleto bancário com linha digitável

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "digitable_line": "00190000090361557400500000024174396700000991000",
  "payment_amount": 1156.8
}
```
Request Body: Pagamento de boleto bancário com código de barras

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "barcode": "00190000090361557400500000024174396700000991000",
  "payment_amount": 1156.8
}
```

### Body Params

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da request do cliente. |    
| `barcode`               | string    | Código de barras. |
| `digitable_line`        | string    | Linha digitável. |
| `payment_amount` *      | number    | Valor a ser pago. |

:::danger Aviso
O `payment_amount` deve ser sempre igual ao `total_amount` retornado na consulta do boleto bancário caso o pagamento parcial não seja permitido para o boleto bancário. Para títulos em que o pagamento parcial é permitido, o cliente pode escolher arbitrariamente o `payment_amount`, podendo, inclusive, exceder o valor de face do boleto (`total_amount`).
:::

## Response

### Success Response

STATUS 201

Response Body: Pagamento executado

```json
{
   "payment_key":"c4325104-d60b-44f3-aae4-49155564a2ea",
   "request_control_key":"b713b2f6-2f48-4d18-b0c9-7186e4edf189",
   "payer_name":"COOPERATIVA INDUSTRIAL MURILO",
   "payer_document_number":"00037025000160",
   "source_account_key":"6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
   "transaction_key":"4e80070a-a0bb-4be2-8178-55fbd73a3704",
   "transaction_revert_key":null,
   "paid_amount":1050.1,
   "payment_date":"2024-04-03",
   "payment_type":"bank_slip",
   "bank_slip": {
        "bank_slip_key":"95080ffd-3ac5-48d7-b3fe-659e4aaba81a",
        "barcode":"00193967000009910000000003615574000000002417",
        "digitable_line":"00190000090361557400500000024174396700000991000",
        "payer_name":"COOPERATIVA TESTE",
        "payer_document_number":"00037025000160",
        "beneficiary_name":"TESTE EQUIPAMENTOS E SERVICOS LTDA",
        "beneficiary_trading_name":"TESTE EQUIPAMENTOS E SERVICOS LTDA",
        "beneficiary_document_number":"52069937000117",
        "beneficiary_bank_ispb":"00000000",
        "guarantor_name":null,
        "guarantor_document_number":null,
        "expiration_date":"2024-03-29",
        "max_payment_data": "2026-03-29",
        "partial_payment_indicator":"allowed",
        "registered_payment_amount":9029.0,
        "nominal_amount":9910.0,
        "total_amount":10129.1,
        "rebate_amount":0.0,
        "discount_amount":0.0,
        "fine_amount":0.0,
        "interest_amount":219.1
    },
   "collection_slip":null,
   "payment_status":"executed"
}
```

STATUS 202

Response Body: Pagamento pendente de execução

```json
{
   "payment_key":"c4325104-d60b-44f3-aae4-49155564a2ea",
   "request_control_key":"b713b2f6-2f48-4d18-b0c9-7186e4edf189",
   "payer_name":"COOPERATIVA INDUSTRIAL MURILO",
   "payer_document_number":"00037025000160",
   "source_account_key":"6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
   "transaction_key":"4e80070a-a0bb-4be2-8178-55fbd73a3704",
   "transaction_revert_key":null,
   "paid_amount":1050.1,
   "payment_date":"2024-04-03",
   "payment_type":"bank_slip",
   "bank_slip": {
        "bank_slip_key":"95080ffd-3ac5-48d7-b3fe-659e4aaba81a",
        "barcode":"00193967000009910000000003615574000000002417",
        "digitable_line":"00190000090361557400500000024174396700000991000",
        "payer_name":"COOPERATIVA TESTE",
        "payer_document_number":"00037025000160",
        "beneficiary_name":"TESTE EQUIPAMENTOS E SERVICOS LTDA",
        "beneficiary_trading_name":"TESTE EQUIPAMENTOS E SERVICOS LTDA",
        "beneficiary_document_number":"52069937000117",
        "beneficiary_bank_ispb":"00000000",
        "guarantor_name":null,
        "guarantor_document_number":null,
        "expiration_date":"2024-03-29",
        "max_payment_data": "2026-03-29",
        "partial_payment_indicator":"allowed",
        "registered_payment_amount":9029.0,
        "nominal_amount":9910.0,
        "total_amount":10129.1,
        "rebate_amount":0.0,
        "discount_amount":0.0,
        "fine_amount":0.0,
        "interest_amount":219.1
    },
   "collection_slip":null,
   "payment_status": "pending_execution"
}
```

:::info Informação
Caso seja retornado **HTTP Status 202** com o campo `payment_status` com valor **pending_execution**, o pagamento não deve ser retentado.

Esta esse pagamento será processado assincronamente. É necessário verificar o status da transferência por meio
da consulta de pagamento, ou aguardar envio do webhook de pagamento pendente descrito na [página de webhooks](/documentation/baas/cobranca/webhooks).
:::

### Response Body Params

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `payment_key` *               | uuid4 | Chave única de identificação do pagamento. |
| `request_control_key` *       | uuid4 | Chave única de identificação da request do cliente. |
| `payer_name` *                | string | Nome do pagador efetivo.|
| `payer_document_number` *     | string | Número de documento do pagador efetivo (CPF/CNPJ). |
| `source_account_key` *        | uuid4 | Chave da conta debitada. |
| `transaction_key` *           | uuid4 | Chave da transação do pagamento. |
| `transaction_revert_key`      | uuid4 | Chave da transação de reversão do pagamento. |
| `paid_amount` *               | number | Valor pago efetivamente. |
| `payment_date` *              | string | Data do pagamento. |
| `payment_type` *              | [enum](#enumeradores-payment_type) | Tipo do pagamento. |
| `bank_slip`                   | [object](#objeto-bank_slip) | Boleto bancário. |
| `collection_slip`             | object | Fatura de recolhimento. |
| `payment_status` *            | [enum](#enumeradores-payment_status) | Status do pagamento. |

### Enumeradores payment_type
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

:::danger Aviso
O enumerador `collection_slip` não se aplica para o fluxo de boletos bancários, assim como o objeto collection_slip que sempre será nulo.
:::

### Enumeradores payment_status
| Enumerador    | Descrição     |
|---------------|---------------|
| `pending_execution`     | Pendente de execução |
| `executed`    | Executado |
| `reverted`    | Revertido |
| `rejected`    | Rejeitado |
| `error`       | Erro      |

:::danger Aviso
Para pagamentos onde a QI não receber uma resposta da CIP em até dois minutos, o pagamento será retornado com o status `pending_execution`. Após a QI receber a resposta da CIP, será enviado para o cliente o webhook de pagamento pendente descrito na [página de webhooks](/documentation/baas/cobranca/webhooks).
:::

### Objeto bank_slip
| Campo                             | Tipo    | Descrição                         |
|-----------------------------------|---------|-----------------------------------|
| `barcode` *                       | string | Código de barras. |
| `digitable_line` *                | string | Linha digitável. |
| `payer_name` *                    | string | Nome do pagador.|
| `payer_document_number` *         | string | Número de documento do pagador (CPF/CNPJ). |
| `beneficiary_name` *              | string | Nome do beneficiário. |
| `beneficiary_trading_name`        | string | Nome fantasia do beneficiário. |
| `beneficiary_document_number` *   | string | Número de documento do beneficiário (CPF/CNPJ). |
| `beneficiary_bank_ispb` *         | string | Código ispb do banco do beneficiário. |
| `guarantor_name`                  | string | Nome do sacador avalista. |
| `guarantor_document_number`       | string | Número de documento do sacador avalista (CPF/CNPJ). |
| `expiration_date` *               | string | Data de vencimento. |
| `max_payment_date` * | string  | Data máxima de pagamento. |
| `partial_payment_indicator` *     | [enum](#enumeradores-partial_payment_indicator)   | Indicador de pagamento parcial. |
| `registered_payment_amount`       | string | Valor total de pagamento registrado. |
| `nominal_amount` *                | number | Valor original. |
| `total_amount` *                  | number | Valor total. |
| `rebate_amount` *                 | number | Valor do abatimento. |
| `discount_amount` *               | number | Valor do desconto. |
| `fine_amount` *                   | number | Valor da multa. |
| `interest_amount` *               | number | Valor do juros. |

### Enumeradores partial_payment_indicator
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `allowed`     | string    | Permitido     |
| `not_allowed` | string    | Não permitido |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 400         | BIP000001 | Bad Request | The barcode or digitable line must have 44 or 47 characters. | O código de barras ou linha digitável deve ter 44 ou 47 caracteres. |
| 400         | BIP000002 | Bad Request | The bill sent does not correspond to a bank slip. | A conta enviado não corresponde a um boleto bancário. |
| 400         | BIP000003 | Bad Request | The digitable line sent is invalid. | A linha digitável enviada é inválida. |
| 404         | BIP000004 | Not Found | The bank slip was not found. | O boleto não foi encontrado. |
| 400         | BIP000005 | Bad Request | It was not possible to consult the bank slip at this time. Please try again in a few minutes. | Não foi possível consultar o boleto neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000006 | Bad Request | Bank slip already written off | Boleto já baixado |
| 400         | BIP000007 | Bad Request | Bank slip blocked for payment | Boleto bloqueado para pagamento |
| 400         | BIP000008 | Bad Request | Bank slip already paid | Boleto já pago |
| 400         | BIP000009 | Bad Request | Invalid bank slip. Please consult issuing bank | Boleto inválido. Favor consultar banco emissor |
| 403         | BIP000010 | Forbidden | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404         | BIP000011 | Not Found | The source account key was not found. | A chave da conta de origem não foi encontrada. |
| 400         | BIP000012 | Bad Request | It was not possible to consult the source account at this time. Please try again in a few minutes. | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000013 | Bad Request | The source account is closed. | A conta de origem está fechada. |
| 400         | BIP000014 | Bad Request | The source account is blocked. | A conta de origem está bloqueada. |
| 400         | BIP000015 | Bad Request | Payment date is greater than the maximum payment date. | A data de pagamento é maior que a data máxima de pagamento. |
| 400         | BIP000016 | Bad Request | Payment date is smaller than the calculation date. | A data de pagamento é menor que a data de cálculo. |
| 400         | BIP000017 | Bad Request | Invalid payment amount. | Valor de pagamento inválido. |
| 400         | BIP000018 | Bad Request | Partial payment is not allowed. | Pagamento parcial não é permitido. |
| 400         | BIP000019 | Bad Request | The payment amount is greater than the available amount. | O valor do pagamento é maior que o valor disponível. |
| 400         | BIP000020 | Bad Request | All partial payments for this bank slip have already been made. | Todos os pagamentos parciais deste boleto já foram realizados. |
| 400         | BIP000022 | Bad Request | Bank slip payment service is closed. | Serviço de pagamento de boleto está fechado. |
| 400         | BIP000023 | Bad Request | The source account has insufficient balance. Payment cannot be made. | A conta de origem possui saldo insuficiente. Pagamento não pode ser realizado. |
| 400         | BIP000024 | Bad Request | Request control key already exists. | Chave de controle da requisição já existe. |
| 400         | BIP000025 | Bad Request | It was not possible to pay the bank slip at this time. Please verify your information and, if necessary, contact us for assistance. | Não foi possível pagar o boleto neste momento. Por favor, verifique suas informações e, se necessário, entre em contato conosco para assistência. |
| 400         | BIP000028 | Bad Request | The source account has blocked balance. Payment cannot be made. | A conta de origem possui saldo em conta bloqueado. Pagamento não pode ser realizado. |

## Ambiente de Sandbox

Em nosso ambiente de sandbox, disponibilizamos linhas digitáveis mockadas para a simulação de pagamentos bem-sucedidos e testes de cenários de erro.

### Cenários de sucesso

| Linha digitável |
|---|
| 00190000090361557400500000024174396700000991000 |
| 00190000090282802601919212747174596760001294161 |
| 23793390014000000455277000249001596900000103995 |
| 75691434020137513680900001040013196770002417240 |
| 21390001171200000570700168167484796770000148206 |
| 07790001161200000039300602819070498470000182970 |
| 23792372059034189564835003432701998420000008306 |
| 03399199530490000005254172701010698420000467696 |
| 03399135012340000000830681701014198420038743888 |
| 75691324620100735471370255730478698420064900819 |

### Cenários de `pending_execution`

A simulação desse cenário está melhor descrita na [página de simulações](/documentation/baas/cobranca/simulacao).

| Linha digitável |
|---|
| 75691333790100505390300569460017397220000306867 |

### Cenários de erro

| Linha digitável | Código de erro |
|---|---|
| 34191090083273252027893634770007296690012513600 | BIP000007 |
| 07090010287045349010776686070590896770001160123 | BIP000007 |
| 42297048060005815702500130494123896770000239491 | BIP000006 |
| 74891123702849020818918378871083196690000050000 | BIP000009 |
| 23792374119000209350986000372408496610000122810 | BIP000008 |

---

# Realizar Pagamento de Fatura de Recolhimento (convênio/tributo)

URL: /documentation/baas/cobranca/pagar_fatura_de_recolhimento

Este endpoint permite realizar o pagamento de faturas de recolhimento. O pagamento deve ser realizado após a consulta, utilizando as informações retornadas na mesma, para garantir o funcionamento correto do fluxo evitando falhas durante o processo de pagamento.

:::info Fatura de recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgão públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um Boleto bancário apresenta.
:::

## Request

### Request Endpoint

ENDPOINT /account/ ACCOUNT_KEY /payment/collection_slip
MÉTODO POST

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |

Request Body: Pagamento de fatura de recolhimento com linha digitável

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "digitable_line": "00190000090361557400500000024174396700000991000",
  "payment_amount": 1156.8
}
```
Request Body: Pagamento de fatura de recolhimento com código de barras

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "barcode": "00190000090361557400500000024174396700000991000",
  "payment_amount": 1156.8
}
```

### Body Params

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da request do cliente. |    
| `barcode`               | string    | Código de barras. |
| `digitable_line`        | string    | Linha digitável. |
| `payment_amount` *      | number    | Valor a ser pago. |

:::danger Aviso
O `payment_amount` deve sempre igual ao `total_amount` retornado na consulta do boleto bancário.
:::

## Response

### Success Response

STATUS 201

Response Body: Pagamento executado

```json
{
  "payment_key": "33860ad0-bcb0-47b7-bbe7-c7e3ec2fc61a",
  "request_control_key": "ae4508df-f2cb-4e28-9f04-a19b7f2758c9",
  "payer_name": "COOPERATIVA INDUSTRIAL MURILO",
  "payer_document_number": "62069937000118",
  "source_account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "transaction_key": "fc9ccfd0-2f21-4207-9772-69238be74152",
  "transaction_revert_key": null,
  "paid_amount": 1389.21,
  "payment_date": "2024-04-30",
  "payment_type": "collection_slip",
  "bank_slip": null,
  "collection_slip": {
    "barcode": null,
    "digitable_line": "836200000138892100450006762142420244046000010192",
    "collection_name": "CIA ULTRAGAZ SA-COD",
    "collection_document_number": "00394460005887",
    "expiration_date": "2024-04-15",
    "total_amount": 1389.21
  },
  "payment_status": "executed"
}
```

STATUS 202

:::info Webhook
Quando o pagamento retornar status `202`, o processamento ainda está em andamento. **Não realize uma nova tentativa de pagamento** enquanto não receber a atualização do status final via webhook.
:::

Response Body: Pagamento pendente

```json
{
  "payment_key": "33860ad0-bcb0-47b7-bbe7-c7e3ec2fc61a",
  "request_control_key": "ae4508df-f2cb-4e28-9f04-a19b7f2758c9",
  "payer_name": "COOPERATIVA INDUSTRIAL MURILO",
  "payer_document_number": "62069937000118",
  "source_account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "transaction_key": "fc9ccfd0-2f21-4207-9772-69238be74152",
  "transaction_revert_key": null,
  "paid_amount": 1389.21,
  "payment_date": "2024-04-30",
  "payment_type": "collection_slip",
  "bank_slip": null,
  "collection_slip": {
    "barcode": null,
    "digitable_line": "836200000138892100450006762142420244046000010192",
    "collection_name": "CIA ULTRAGAZ SA-COD",
    "collection_document_number": "00394460005887",
    "expiration_date": "2024-04-15",
    "total_amount": 1389.21
  },
  "payment_status": "pending"
}
```

### Response Body Params

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `payment_key` *               | uuid4 | Chave única de identificação do pagamento. |
| `request_control_key` *       | uuid4 | Chave única de identificação da request do cliente. |
| `payer_name` *                | string | Nome do pagador efetivo.|
| `payer_document_number` *     | string | Número de documento do pagador efetivo (CPF/CNPJ). |
| `source_account_key` *        | uuid4 | Chave da conta debitada. |
| `transaction_key` *           | uuid4 | Chave da transação do pagamento. |
| `transaction_revert_key`      | uuid4 | Chave da transação de reversão do pagamento. |
| `paid_amount` *               | number | Valor pago efetivamente. |
| `payment_date` *              | string | Data do pagamento. |
| `payment_type` *              | [enum](#enumeradores-payment_type) | Tipo do pagamento. |
| `bank_slip`                   | object | Boleto bancário. |
| `collection_slip`             | [object](#objeto-collection_slip) | Fatura de recolhimento. |
| `payment_status` *            | [enum](#enumeradores-payment_status) | Status do pagamento. |

### Enumeradores payment_type
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

:::danger Aviso
O enumerador `bank_slip` não se aplica para o fluxo de faturas de recolhimento, assim como o objeto bank_slip que sempre será nulo.
:::

### Enumeradores payment_status
| Enumerador    | Descrição     |
|---------------|---------------|
| `pending`     | Pendente  |
| `executed`    | Executado |
| `reverted`    | Revertido |
| `rejected`    | Rejeitado |
| `error`       | Erro      |

### Objeto collection_slip
| Campo                             | Tipo    | Descrição                         |
|-----------------------------------|---------|-----------------------------------|
| `barcode`          | string | Código de barras. |
| `digitable_line`   | string | Linha digitável. |
| `collection_name` *         | string | Nome do convênio.|
| `collection_document_number`   | string | Número de documento do convênio (CPF/CNPJ).|
| `expiration_date` *  | string  | Data de vencimento. |
| `total_amount` *  | number | Valor total. |

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 400         | BIP000032 | Bad Request | The bill sent does not correspond to a collection slip. | A conta enviada não corresponde a uma fatura de recolhimento. |
| 400         | BIP000033 | Bad Request | The barcode or digitable line of the collection slip must have 44 or 48 characters. | O código de barras ou linha digitável da fatura de recolhimento deve ter 44 ou 48 caracteres. |
| 403         | BIP000010 | Forbidden | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404         | BIP000011 | Not Found | The source account key was not found. | A chave da conta de origem não foi encontrada. |
| 400         | BIP000012 | Bad Request | It was not possible to consult the source account at this time. Please try again in a few minutes. | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000013 | Bad Request | The source account is closed. | A conta de origem está fechada. |
| 400         | BIP000014 | Bad Request | The source account is blocked. | A conta de origem está bloqueada. |
| 400         | BIP000023 | Bad Request | The source account has insufficient balance. Payment cannot be made. | A conta de origem possui saldo insuficiente. Pagamento não pode ser realizado. |
| 400         | BIP000024 | Bad Request | Request control key already exists. | Chave de controle da requisição já existe. |
| 400         | BIP000028 | Bad Request | The source account has blocked balance. Payment cannot be made. | A conta de origem possui saldo em conta bloqueado. Pagamento não pode ser realizado. |
| 400         | BIP000034 | Bad Request | Collection slip already paid. | Fatura de recolhimento já paga. |
| 400         | BIP000035 | Bad Request | Covenant slip invalid barcode. | Código de barras da fatura de recolhimento inválido. |
| 400         | BIP000036 | Bad Request | Covenant slip overdue. | Fatura de recolhimento vencida. |
| 400         | BIP000037 | Bad Request | Error in collection slip consultation. | Erro na consulta da fatura de recolhimento. |
| 400         | BIP000038 | Bad Request | Outside of covenant payment hours. | Fora do horário de pagamento do convênio. |
| 400         | BIP000039 | Bad Request | Collection slip not accepted. | Fatura de recolhimento não aceita. |
| 400         | BIP000040 | Bad Request | Minimum advance not reached. | Mínimo de dias de adiantamento não atingido. |
| 400         | BIP000041 | Bad Request | Max payment amount exceeded. | Valor máximo de pagamento excedido. |
| 400         | BIP000044 | Bad Request | It was not possible to pay the collection slip at this time. Please verify your information and, if necessary, contact us for assistance. | Não foi possível pagar a fatura de recolhimento neste momento. Por favor, verifique suas informações e, se necessário, entre em contato conosco para assistência. |
| 400         | BIP000045 | Bad Request | Collection slip payment service is closed. | Serviço de pagamento de fatura de recolhimento está fechado. |

## Ambiente de Sandbox

Em nosso ambiente de sandbox, disponibilizamos linhas digitáveis mockadas para a simulação de pagamentos bem-sucedidos e testes de cenários de erro.

### Cenários de sucesso

| Linha digitável |
|---|
| 828300000007411100972013905080001546763201900028 |
| 838000000009235700481007241345219112001474229880 |
| 848000000006308600802021201071261517689002201070 |
| 858200000015000000643025703477209504800448091020 |

### Cenários de erro

| Linha digitável | Código de erro |
|---|---|
| 858500000037350000643217212883260006147448091022 | BIP000035 |

---

# Simulação de cenários

URL: /documentation/baas/cobranca/simulacao_de_cenarios

## 1 - Simulação de pagamento em estado pendente de execução

Para pagamentos aonde a QI não receber uma resposta da CIP em até dois minutos, o pagamento será retornado com o status `pending_execution`. Após a QI receber a resposta da CIP, será enviado para o cliente o webhook de pagamento pendente descrito na [página de webhooks](/documentation/baas/cobranca/webhooks). Para simular este cenário, realize um pagamento com linha digitável `"digitable_line": "75691333790100505390300569460017397220000306867"`.

Para que o status do pagamento seja atualizado, realize a requisição abaixo com `payment_status` de **approved** para
aprovar o pagamento, ou **rejected** para reprová-lo.

## Request

### Request Endpoint

ENDPOINT /mock/account/ ACCOUNT_KEY /payment/ PAYMENT_KEY /bank_slip/confirmation
MÉTODO PATCH

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |
| `payment_key` *     | uuid4   | Chave única de identificação do pagamento.  | 36     |

Request Body: Simulação de confirmação de pagamento

```json
{
  "payment_status": "approved",
}
```

### Body Parameters

| Campo                       | Tipo   | Descrição                                                             |
|-----------------------------|--------|-----------------------------------------------------------------------|
| `payment_status` *           | [enum](#enumeradores-payment_status) | Status do pagamento |

### Enumeradores payment_status

| Enumerador   |Descrição |
|--------------|-----------|
| `approved`    | Aprovar e concluir o pagamento |
| `rejected`    | Rejeitar e reverter o pagamento |

## Response

### Success Response

STATUS 204

Response Body: Simulação concluída

```json
{}
```

---

# Solicitar Pagamento em Lote de Boleto Bancário

URL: /documentation/baas/cobranca/solicitar_pagamento_lote_de_boleto_bancario_com_confirmacao_de_lote

Este endpoint permite solicitar o pagamento de múltiplos boletos bancários em uma única requisição.

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.
:::

:::info Fluxo após a solicitação
Após a solicitação, o lote pode permanecer aguardando a [confirmação do lote](./confirmacao_de_lote_de_boleto_bancario.md), conforme as regras da operação.
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/account/ ACCOUNT_KEY /payments/batch_bank_slip
MÉTODO POST

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |

Request Body: Pagamento em lote de boletos bancários

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "bank_slip_payments": [
    {
      "request_control_key": "c7915a43-212f-5813-9adc-d3ed5d3d3bfd",
      "digitable_line": "00190000090361557400500000024174396700000991000",
      "payment_amount": 1156.8
    },
    {
      "request_control_key": "d8a26b54-323a-4924-0aed-e4fe6e4e4c0e",
      "barcode": "00190000090361557400500000024174396700000991000",
      "payment_amount": 200.5
    }
  ]
}
```

### Body Params

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da requisição do cliente (lote). |
| `bank_slip_payments` * | array     | Lista de pagamentos de boleto bancário. Limite de **1000** itens por requisição. |

Cada elemento de `bank_slip_payments` deve conter:

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da requisição do cliente para aquele item do lote. |
| `barcode`               | string    | Código de barras. |
| `digitable_line`        | string    | Linha digitável. |
| `payment_amount` *      | number    | Valor a ser pago. |

:::danger Aviso
Para cada item, o `payment_amount` enviado deve ser compatível com o que a consulta interna do boleto determinar: se o pagamento parcial **não** for permitido para aquele título, o valor deve corresponder ao total atualizado; se for permitido, o `payment_amount` pode seguir as regras do título (incluindo, quando aplicável, valores acima do nominal), como no fluxo de pagamento unitário de boleto bancário.
:::

## Response

### Success Response

STATUS 202

Response Body: Lote aceito para processamento

```json
{
  "batch_payment_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
  "total_amount": 1357.3,
  "batch_status": "pending",
  "payment_type": "bank_slip"
}
```

Response Body: exemplo ilustrativo (`batch_status` aprovado)

```json
{
  "batch_payment_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
  "total_amount": 1357.3,
  "batch_status": "approved",
  "payment_type": "bank_slip"
}
```

:::info Processamento do lote
O campo `batch_status` na resposta indica o **estado imediato** do lote após esta solicitação (por exemplo, pendente de confirmação ou já encaminhado ao processamento), conforme o fluxo aplicável. Quando houver etapa de [confirmação do lote](./confirmacao_de_lote_de_boleto_bancario.md), utilize essa chamada para aprovar ou rejeitar o lote antes do débito dos títulos. Os valores possíveis de `batch_status` estão em [batch_payment_status](#enumeradores-batch_payment_status).
:::

### Response Body Params

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `batch_payment_key` *       | uuid4 | Chave única de identificação do pagamento em lote. |
| `request_control_key` *     | uuid4 | Chave única de identificação da requisição do cliente (lote). |
| `account_key` *             | uuid4 | Chave da conta debitada. |
| `total_amount` *            | number | Soma dos valores (`payment_amount`) dos itens do lote. |
| `batch_status` *         | [enum](#enumeradores-batch_payment_status) | Status do lote logo após a solicitação; depende do fluxo (confirmação e processamento imediato). |
| `payment_type` *            | [enum](#enumeradores-payment_type) | Tipo do pagamento. |

### Enumeradores batch_payment_status

| Enumerador    | Descrição     |
|---------------|---------------|
| `pending`     | Pendente de processamento |
| `pending_2fa_approval` | Pendente de aprovação 2FA |
| `rejected`    | Rejeitado |
| `approved`    | Aprovado |
| `processed`   | Processado |

### Enumeradores payment_type

| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

:::danger Aviso
O enumerador `collection_slip` não se aplica ao fluxo de lote de boletos bancários deste endpoint; para este caso, espera-se `payment_type` com valor `bank_slip`.
:::

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 403         | BIP000010 | Forbidden | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404         | BIP000011 | Not Found | The source account key was not found. | A chave da conta de origem não foi encontrada. |
| 400         | BIP000012 | Bad Request | It was not possible to consult the source account at this time. Please try again in a few minutes. | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000024 | Bad Request | Request control key already exists. | Chave de controle da requisição já existe. |
| 400         | BIP000050 | Bad Request | Requester configuration does not exist. | Configuração do requester não existe. |
| 400         | BIP000080 | Bad Request | Beneficiary bank code of this bank slip is not allowed. | Banco beneficiário desse boleto não é permitido. |
| 400         | BIP000081 | Bad Request | A list of bank slip payments must be provided. | Uma lista de boletos bancários deve ser fornecida. |

---

# Solicitar Pagamento em Lote de Boleto Bancário

URL: /documentation/baas/cobranca/solicitar_pagamento_lote_de_boleto_bancario_sem_confirmacao_de_lote

Este endpoint permite solicitar o pagamento de múltiplos boletos bancários em uma única requisição.

:::info Boleto bancário
É o boleto bancário convencional (linhas digitáveis não iniciadas com dígito 8). Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.
:::

:::info Fluxo após a solicitação
Após a solicitação, o lote é encaminhado conforme o processamento definido para a operação. O campo `batch_status` reflete o estado imediato (por exemplo, pendente de processamento ou já em fila de débito). Os valores possíveis estão em [batch_payment_status](#enumeradores-batch_payment_status).
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/account/ ACCOUNT_KEY /payments/batch_bank_slip
MÉTODO POST

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |

Request Body: Pagamento em lote de boletos bancários

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "bank_slip_payments": [
    {
      "request_control_key": "c7915a43-212f-5813-9adc-d3ed5d3d3bfd",
      "digitable_line": "00190000090361557400500000024174396700000991000",
      "payment_amount": 1156.8
    },
    {
      "request_control_key": "d8a26b54-323a-4924-0aed-e4fe6e4e4c0e",
      "barcode": "00190000090361557400500000024174396700000991000",
      "payment_amount": 200.5
    }
  ]
}
```

### Body Params

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da requisição do cliente (lote). |
| `bank_slip_payments` * | array     | Lista de pagamentos de boleto bancário. Limite de **1000** itens por requisição. |

Cada elemento de `bank_slip_payments` deve conter:

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da requisição do cliente para aquele item do lote. |
| `barcode`               | string    | Código de barras. |
| `digitable_line`        | string    | Linha digitável. |
| `payment_amount` *      | number    | Valor a ser pago. |

:::danger Aviso
Para cada item, o `payment_amount` enviado deve ser compatível com o que a consulta interna do boleto determinar: se o pagamento parcial **não** for permitido para aquele título, o valor deve corresponder ao total atualizado; se for permitido, o `payment_amount` pode seguir as regras do título (incluindo, quando aplicável, valores acima do nominal), como no fluxo de pagamento unitário de boleto bancário.
:::

## Response

### Success Response

STATUS 202

Response Body: Lote aceito para processamento

```json
{
  "batch_payment_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
  "total_amount": 1357.3,
  "batch_status": "pending",
  "payment_type": "bank_slip"
}
```

Response Body: exemplo ilustrativo com `batch_status` aprovado

```json
{
  "batch_payment_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "6dc89d57-fac7-4643-b151-cd2ca0a7f68f",
  "total_amount": 1357.3,
  "batch_status": "approved",
  "payment_type": "bank_slip"
}
```

:::info Processamento do lote
O campo `batch_status` na resposta indica o **estado imediato** do lote após esta solicitação (por exemplo, pendente de processamento ou já encaminhado ao processamento dos títulos), conforme o fluxo aplicável. Os valores possíveis de `batch_status` estão em [batch_payment_status](#enumeradores-batch_payment_status).
:::

### Response Body Params

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `batch_payment_key` *       | uuid4 | Chave única de identificação do pagamento em lote. |
| `request_control_key` *     | uuid4 | Chave única de identificação da requisição do cliente (lote). |
| `account_key` *             | uuid4 | Chave da conta debitada. |
| `total_amount` *            | number | Soma dos valores (`payment_amount`) dos itens do lote. |
| `batch_status` *         | [enum](#enumeradores-batch_payment_status) | Status do lote logo após a solicitação; depende do processamento imediato e das regras da operação. |
| `payment_type` *            | [enum](#enumeradores-payment_type) | Tipo do pagamento. |

### Enumeradores batch_payment_status

| Enumerador    | Descrição     |
|---------------|---------------|
| `pending`     | Pendente de processamento |
| `pending_2fa_approval` | Pendente de aprovação 2FA |
| `rejected`    | Rejeitado |
| `approved`    | Aprovado |
| `processed`   | Processado |

### Enumeradores payment_type

| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

:::danger Aviso
O enumerador `collection_slip` não se aplica ao fluxo de lote de boletos bancários deste endpoint; para este caso, espera-se `payment_type` com valor `bank_slip`.
:::

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 403         | BIP000010 | Forbidden | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404         | BIP000011 | Not Found | The source account key was not found. | A chave da conta de origem não foi encontrada. |
| 400         | BIP000012 | Bad Request | It was not possible to consult the source account at this time. Please try again in a few minutes. | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos. |
| 400         | BIP000024 | Bad Request | Request control key already exists. | Chave de controle da requisição já existe. |
| 400         | BIP000050 | Bad Request | Requester configuration does not exist. | Configuração do requester não existe. |
| 400         | BIP000080 | Bad Request | Beneficiary bank code of this bank slip is not allowed. | Banco beneficiário desse boleto não é permitido. |
| 400         | BIP000081 | Bad Request | A list of bank slip payments must be provided. | Uma lista de boletos bancários deve ser fornecida. |

---

# Solicitar Pagamento em Lote de Fatura de Recolhimento (convênio/tributo)

URL: /documentation/baas/cobranca/solicitar_pagamento_lote_de_fatura_de_recolhimento_com_confirmacao_de_lote

Este endpoint permite solicitar o pagamento de múltiplas faturas de recolhimento em uma única requisição.

:::info Fatura de recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgãos públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um boleto bancário apresenta.
:::

:::info Fluxo após a solicitação
Após a solicitação, o lote pode permanecer aguardando a [confirmação do lote](./confirmacao_de_lote_de_fatura_de_recolhimento.md), conforme as regras da operação.
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/account/ ACCOUNT_KEY /payments/batch_collection_slip
MÉTODO POST

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |

Request Body: Pagamento em lote de faturas de recolhimento

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "collection_slip_payments": [
    {
      "request_control_key": "c7915a43-212f-5813-9adc-d3ed5d3d3bfd",
      "digitable_line": "836200000138892100450006762142420244046000010192",
      "payment_amount": 1389.21
    },
    {
      "request_control_key": "d8a26b54-323a-4924-0aed-e4fe6e4e4c0e",
      "barcode": "83620000001388921004500067621424202440460000101",
      "payment_amount": 1389.21
    }
  ]
}
```

### Body Params

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da requisição do cliente (lote). |
| `collection_slip_payments` * | array     | Lista de pagamentos de fatura de recolhimento. Limite de **1000** itens por requisição. |

Cada elemento de `collection_slip_payments` deve conter:

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da requisição do cliente para aquele item do lote. |
| `barcode`               | string    | Código de barras. |
| `digitable_line`        | string    | Linha digitável. |
| `payment_amount` *      | number    | Valor a ser pago. |

:::danger Aviso
Para cada item, o `payment_amount` enviado deve ser compatível com o que a consulta interna da fatura de recolhimento determinar (por exemplo, alinhado ao `total_amount` e às regras do convênio/tributo), nas mesmas condições do fluxo de pagamento unitário de fatura de recolhimento.
:::

## Response

### Success Response

STATUS 202

Response Body: Lote aceito para processamento

```json
{
  "batch_payment_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "total_amount": 2778.42,
  "batch_status": "pending",
  "payment_type": "collection_slip"
}
```

Response Body: exemplo ilustrativo (`batch_status` aprovado)

```json
{
  "batch_payment_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "total_amount": 2778.42,
  "batch_status": "approved",
  "payment_type": "collection_slip"
}
```

:::info Processamento do lote
O campo `batch_status` na resposta indica o **estado imediato** do lote após esta solicitação (por exemplo, pendente de confirmação ou já encaminhado ao processamento), conforme o fluxo aplicável. Quando houver etapa de [confirmação do lote](./confirmacao_de_lote_de_fatura_de_recolhimento.md), utilize essa chamada para aprovar ou rejeitar o lote antes do débito dos títulos. Os valores possíveis de `batch_status` estão em [batch_payment_status](#enumeradores-batch_payment_status).
:::

### Response Body Params

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `batch_payment_key` *       | uuid4 | Chave única de identificação do pagamento em lote. |
| `request_control_key` *     | uuid4 | Chave única de identificação da requisição do cliente (lote). |
| `account_key` *             | uuid4 | Chave da conta debitada. |
| `total_amount` *            | number | Soma dos valores (`payment_amount`) dos itens do lote. |
| `batch_status` *         | [enum](#enumeradores-batch_payment_status) | Status do lote logo após a solicitação; depende do fluxo (confirmação e processamento imediato). |
| `payment_type` *            | [enum](#enumeradores-payment_type) | Tipo do pagamento. |

### Enumeradores batch_payment_status

| Enumerador    | Descrição     |
|---------------|---------------|
| `pending`     | Pendente de processamento |
| `pending_2fa_approval` | Pendente de aprovação 2FA |
| `rejected`    | Rejeitado |
| `approved`    | Aprovado |
| `processed`   | Processado |

### Enumeradores payment_type

| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

:::danger Aviso
O enumerador `bank_slip` não se aplica ao fluxo de lote de faturas de recolhimento deste endpoint; para este caso, espera-se `payment_type` com valor `collection_slip`.
:::

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 400         | BIP000024 | Bad Request | Request control key already exists. | Chave de controle da requisição já existe. |
| 400         | BIP000050 | Bad Request | Requester configuration does not exist. | Configuração do requester não existe. |
| 400         | BIP000082 | Bad Request | A list of collection slip payments must be provided. | Uma lista de faturas de recolhimento deve ser fornecida. |

---

# Solicitar Pagamento em Lote de Fatura de Recolhimento (convênio/tributo)

URL: /documentation/baas/cobranca/solicitar_pagamento_lote_de_fatura_de_recolhimento_sem_confirmacao_de_lote

Este endpoint permite solicitar o pagamento de múltiplas faturas de recolhimento em uma única requisição.

:::info Fatura de recolhimento
Esse tipo de cobrança é emitido por concessionárias de serviços (conta de água, luz, telefone e gás) e órgãos públicos (tributos). Eles não são registrados na Câmara Interbancária de Pagamento (CIP/Núclea), por isso, não retornam as mesmas informações que um boleto bancário apresenta.
:::

:::info Fluxo após a solicitação
Após a solicitação, o lote é encaminhado conforme o processamento definido para a operação. O campo `batch_status` reflete o estado imediato (por exemplo, pendente de processamento ou já em fila de débito). Os valores possíveis estão em [batch_payment_status](#enumeradores-batch_payment_status).
:::

## Request

### Request Endpoint

ENDPOINT /bill_payment/account/ ACCOUNT_KEY /payments/batch_collection_slip
MÉTODO POST

### Request Path Params

| Campo               | Tipo    | Descrição                               | Caracteres |
|---------------------|---------|-----------------------------------------|------------|
| `account_key` *     | uuid4   | Chave única de identificação da conta.  | 36         |

Request Body: Pagamento em lote de faturas de recolhimento

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "collection_slip_payments": [
    {
      "request_control_key": "c7915a43-212f-5813-9adc-d3ed5d3d3bfd",
      "digitable_line": "836200000138892100450006762142420244046000010192",
      "payment_amount": 1389.21
    },
    {
      "request_control_key": "d8a26b54-323a-4924-0aed-e4fe6e4e4c0e",
      "barcode": "83620000001388921004500067621424202440460000101",
      "payment_amount": 1389.21
    }
  ]
}
```

### Body Params

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da requisição do cliente (lote). |
| `collection_slip_payments` * | array     | Lista de pagamentos de fatura de recolhimento. Limite de **1000** itens por requisição. |

Cada elemento de `collection_slip_payments` deve conter:

| Campo               | Tipo          | Descrição                         |
|---------------------|---------------|-----------------------------------|
| `request_control_key` * | uuid4     | Chave única de identificação da requisição do cliente para aquele item do lote. |
| `barcode`               | string    | Código de barras. |
| `digitable_line`        | string    | Linha digitável. |
| `payment_amount` *      | number    | Valor a ser pago. |

:::danger Aviso
Para cada item, o `payment_amount` enviado deve ser compatível com o que a consulta interna da fatura de recolhimento determinar (por exemplo, alinhado ao `total_amount` e às regras do convênio/tributo), nas mesmas condições do fluxo de pagamento unitário de fatura de recolhimento.
:::

## Response

### Success Response

STATUS 202

Response Body: Lote aceito para processamento

```json
{
  "batch_payment_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "total_amount": 2778.42,
  "batch_status": "pending",
  "payment_type": "collection_slip"
}
```

Response Body: exemplo ilustrativo com `batch_status` aprovado

```json
{
  "batch_payment_key": "a3214093-e51c-55e2-b5d3-60244475b3fb",
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "account_key": "daae79e6-ee8b-449f-aa1e-96959d5d5a72",
  "total_amount": 2778.42,
  "batch_status": "approved",
  "payment_type": "collection_slip"
}
```

:::info Processamento do lote
O campo `batch_status` na resposta indica o **estado imediato** do lote após esta solicitação (por exemplo, pendente de processamento ou já encaminhado ao processamento dos títulos), conforme o fluxo aplicável. Os valores possíveis de `batch_status` estão em [batch_payment_status](#enumeradores-batch_payment_status).
:::

### Response Body Params

| Campo               | Tipo    | Descrição                         |
|---------------------|---------|-----------------------------------|
| `batch_payment_key` *       | uuid4 | Chave única de identificação do pagamento em lote. |
| `request_control_key` *     | uuid4 | Chave única de identificação da requisição do cliente (lote). |
| `account_key` *             | uuid4 | Chave da conta debitada. |
| `total_amount` *            | number | Soma dos valores (`payment_amount`) dos itens do lote. |
| `batch_status` *         | [enum](#enumeradores-batch_payment_status) | Status do lote logo após a solicitação; depende do processamento imediato e das regras da operação. |
| `payment_type` *            | [enum](#enumeradores-payment_type) | Tipo do pagamento. |

### Enumeradores batch_payment_status

| Enumerador    | Descrição     |
|---------------|---------------|
| `pending`     | Pendente de processamento |
| `pending_2fa_approval` | Pendente de aprovação 2FA |
| `rejected`    | Rejeitado |
| `approved`    | Aprovado |
| `processed`   | Processado |

### Enumeradores payment_type

| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

:::danger Aviso
O enumerador `bank_slip` não se aplica ao fluxo de lote de faturas de recolhimento deste endpoint; para este caso, espera-se `payment_type` com valor `collection_slip`.
:::

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 400         | BIP000024 | Bad Request | Request control key already exists. | Chave de controle da requisição já existe. |
| 400         | BIP000050 | Bad Request | Requester configuration does not exist. | Configuração do requester não existe. |
| 400         | BIP000082 | Bad Request | A list of collection slip payments must be provided. | Uma lista de faturas de recolhimento deve ser fornecida. |

---

# Webhooks

URL: /documentation/baas/cobranca/webhooks

:::danger Atenção!
Os webhooks da QI Tech não devem ser mapeadas de forma restrita. 
Campos adicionais podem ser incluídos aos payloads dos webhooks retornados em nossas APIs.
:::

:::info Reenvio de Webhooks
Você pode consultar e reenviar webhooks seguindo as instruções detalhadas na documentação: [Reenvio de Webhooks](/documentation/notificacoes/reenvio_de_notificacoes).
:::

## Webhook de pagamentos

### Webhook Request Body

Request Body: Pagamento executado

```json
{
  "webhook_type": "baas.bill_payment.payment",
  "webhook_datetime": "2021-10-22T20:30:23.459Z",
  "data": {
    "source_account_key": "ca2c934e-5970-4c15-bdef-87e1b5c204e3",
    "payment_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
    "payment_schedule_key": null,
    "transaction_key": "5f67e4fc-d3bd-4831-a9b1-20859dcee7a9",
    "barcode":"00193967000009910000000003615574000000002417",
    "digitable_line":"00190000090361557400500000024174396700000991000",
    "payment_status": "executed",
    "payment_type":"bank_slip",
    "error_code": null,
    "error_message": null
  }
}
```

Request Body: Pagamento pendente de execução

```json
{
  "webhook_type": "baas.bill_payment.payment",
  "webhook_datetime": "2021-10-22T20:30:23.459Z",
  "data": {
    "source_account_key": "ca2c934e-5970-4c15-bdef-87e1b5c204e3",
    "payment_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
    "payment_schedule_key": null,
    "transaction_key": "5f67e4fc-d3bd-4831-a9b1-20859dcee7a9",
    "barcode":"00193967000009910000000003615574000000002417",
    "digitable_line":"00190000090361557400500000024174396700000991000",
    "payment_status": "pending_execution",
    "payment_type":"bank_slip",
    "error_code": null,
    "error_message": null
  }
}
```

Request Body: Pagamento rejeitado

```json
{
  "webhook_type": "baas.bill_payment.payment",
  "webhook_datetime": "2021-10-22T20:30:23.459Z",
  "data": {
    "source_account_key": "ca2c934e-5970-4c15-bdef-87e1b5c204e3",
    "payment_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
    "payment_schedule_key": null,
    "transaction_key": null,
    "barcode":"00193967000009910000000003615574000000002417",
    "digitable_line":"00190000090361557400500000024174396700000991000",
    "payment_status": "rejected",
    "payment_type":"bank_slip",
    "error_code": "BIP000023",
    "error_message": "The source account has insufficient balance. Payment cannot be made."
  }
}
```

Request Body: Pagamento revertido

```json
{
  "webhook_type": "baas.bill_payment.payment",
  "webhook_datetime": "2021-10-22T20:30:23.459Z",
  "data": {
    "source_account_key": "ca2c934e-5970-4c15-bdef-87e1b5c204e3",
    "payment_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
    "payment_schedule_key": null,
    "transaction_key": "5f67e4fc-d3bd-4831-a9b1-20859dcee7a9",
    "barcode":"81620000000000336592028110120200020214942099",
    "digitable_line":"816200000007000336592027811012020004202149420996",
    "payment_status": "reverted",
    "payment_type":"collection_slip",
    "error_code": "BIP000029",
    "error_message": "Bank slip payment write off rejected."
  }
}
```

### Webhook Body Params

| Campo                 | Tipo   | Descrição                                                 |
|-----------------------|--------|-----------------------------------------------------------|
| `webhook_type`        | string | Um enumerador que define o tipo de evento sendo reportado |
| `webhook_datetime`    | string | Data e hora do envio do webhook                           |
| `request_control_key` | uuid4  | Chave única de identificação da request do cliente.     |
| `source_account_key` *        | uuid4 | Chave da conta debitada.                            |
| `payment_key`        | uuid4  | Chave única de identificação do pagamento. |
| `payment_schedule_key` | uuid4     | Chave única de identificação do agendamento (somente para pagamentos gerados a partir de um agendamento).                             |
| `barcode`            | string | Código de barras. |
| `digitable_line`     | string | Linha digitável. |
| `payment_type`       | [enum](#enumeradores-payment_type) | Tipo do pagamento. |
| `payment_status`     | [enum](#enumeradores-payment_status) | Status do pagamento. |
| `error_code`       | string | Código de erro. |
| `error_message`     | string | Mensagem de erro. |

### Enumeradores payment_type
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

### Enumeradores payment_status
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `executed`    | string  | Executado |
| `rejected`    | string  | rejeitado |
| `reverted`    | string  | Revertido |

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 400         | BIP000013 | Bad Request | The source account is closed. | A conta de origem está fechada. |
| 400         | BIP000014 | Bad Request | The source account is blocked. | A conta de origem está bloqueada. |
| 400         | BIP000023 | Bad Request | The source account has insufficient balance. Payment cannot be made. | A conta de origem possui saldo insuficiente. Pagamento não pode ser realizado. |
| 400         | BIP000025 | Bad Request | It was not possible to pay the bank slip at this time. Please verify your information and, if necessary, contact us for assistance. | Não foi possível pagar o boleto neste momento. Por favor, verifique suas informações e, se necessário, entre em contato conosco para assistência. |
| 400         | BIP000029 | Bad Request | Bank slip payment write off rejected. | Baixa de pagamento de boleto rejeitada. |
| 400         | BIP000034 | Bad Request | Collection slip already paid. | Fatura de recolhimento já paga. |
| 400         | BIP000036 | Bad Request | Covenant slip overdue. | Fatura de recolhimento vencida. |
| 400         | BIP000038 | Bad Request | Outside of covenant payment hours. | Fora do horário de pagamento do convênio. |
| 400         | BIP000044 | Bad Request | It was not possible to pay the collection slip at this time. Please verify your 

## Webhook de agendamento de pagamento

:::info Fluxo de Webhooks para Agendamentos de Pagamentos
O processo de agendamento e execução de pagamentos envolve a utilização de diferentes webhooks, cada um desempenhando um papel específico na notificação e no acompanhamento do status do pagamento.

Quando o agendamento é executado na data solicitada, ele pode seguir para o status `executed` e será disparado um webhook de `payment_schedule` com o status `executed`, a execução do agendamento resulta na criação de um `payment` com o status `pending` e será enviado o webhook do mesmo. Alternativamente, o agendamento pode seguir para o status `rejected`, sem que o `payment` seja criado, em situações como o fechamento da conta ou alteração do valor do boleto, por exemplo. Nesse caso somente o webhook de `payment_schedule` com o status `rejected` é enviado, acompanhado dos devidos códigos de erro.

- Inicialmente, o status do pagamento será `pending`, pois o processo de pagamento está em andamento. Quando o pagamento é concluído, um novo webhook de `payment` é enviado, agora com o status `executed`.
- Se o pagamento não puder ser concluído, por exemplo, devido à falta de saldo na conta, um webhook de `payment` com o status `rejected` será enviado, acompanhado dos devidos códigos de erro.
- Em casos de insuficiência de saldo na conta, o sistema realizará até 3 tentativas de pagamento, com um intervalo de 30 minutos entre cada uma. Nessa situação, poderão ser gerados múltiplos registros de pagamento para um mesmo agendamento executado. Por exemplo, se o saldo suficiente estiver disponível apenas na terceira tentativa, serão disparados os webhooks dos dois primeiros pagamentos com os status `payment` e `rejected`, seguidos pelos webhooks do terceiro pagamento com os status `payment` e `executed`.
:::

### Webhook Request Body

Request Body: Agendamento de pagamento executado

```json
{
  "webhook_type": "baas.bill_payment.payment_schedule",
  "webhook_datetime": "2021-10-22T20:30:23.459Z",
  "data": {
    "source_account_key": "ca2c934e-5970-4c15-bdef-87e1b5c204e3",
    "payment_schedule_key": "a72947e5-e676-4710-8f66-7d345f1c4064",
    "payment_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
    "barcode":"00193967000009910000000003615574000000002417",
    "digitable_line":"00190000090361557400500000024174396700000991000",
    "payment_type":"bank_slip",
    "payment_schedule_status": "executed",
    "error_code": null,
    "error_message": null
  }
}
```

Request Body: Agendamento de pagamento rejeitado

```json
{
  "webhook_type": "baas.bill_payment.payment_schedule",
  "webhook_datetime": "2021-10-22T20:30:23.459Z",
  "data": {
    "source_account_key": "ca2c934e-5970-4c15-bdef-87e1b5c204e3",
    "payment_schedule_key": "a72947e5-e676-4710-8f66-7d345f1c4064",
    "payment_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
    "barcode":"00193967000009910000000003615574000000002417",
    "digitable_line":"00190000090361557400500000024174396700000991000",
    "payment_type":"bank_slip",
    "payment_schedule_status": "rejected",
    "error_code": "BIP000007",
    "error_message": "Bank slip blocked for payment"
  }
}
```

### Webhook Body Params

| Campo                 | Tipo   | Descrição                                                 |
|-----------------------|--------|-----------------------------------------------------------|
| `webhook_type`        | string | Um enumerador que define o tipo de evento sendo reportado |
| `webhook_datetime`    | string | Data e hora do envio do webhook                           |
| `request_control_key` | uuid4  | Chave única de identificação da request do cliente.     |
| `source_account_key` *        | uuid4 | Chave da conta debitada.                            |
| `payment_key`        | uuid4  | Chave única de identificação do pagamento. |
| `payment_schedule_key`        | uuid4  | Chave única de identificação do agendamento pagamento. |
| `barcode`            | string | Código de barras. |
| `digitable_line`     | string | Linha digitável. |
| `payment_type`       | [enum](#enumeradores-payment_type) | Tipo do agendamento de pagamento. |
| `payment_schedule_status`     | [enum](#enumeradores-payment_schedule_status) | Status do agendamento de pagamento. |
| `error_code`       | string | Código de erro. |
| `error_message`     | string | Mensagem de erro. |

### Enumeradores payment_type
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `bank_slip`     | string    | Boleto bancário    |
| `collection_slip` | string  | Fatura de recolhimento |

### Enumeradores payment_schedule_status
| Enumerador    | Tipo      | Descrição     |
|---------------|-----------|---------------|
| `executed`    | string  | Executado |
| `rejected`    | string  | Rejeitado |

| Código HTTP | Código QI | Título | Descrição (eng) | Descrição (pt-br) |
|-------------|-----------|--------|------------------|------------------|
| 400         | BIP000013 | Bad Request | The source account is closed. | A conta de origem está fechada. |
| 400         | BIP000014 | Bad Request | The source account is blocked. | A conta de origem está bloqueada. |
| 400         | BIP000006 | Bad Request | Bank slip already written off | Boleto já baixado |
| 400         | BIP000007 | Bad Request | Bank slip blocked for payment | Boleto bloqueado para pagamento |
| 400         | BIP000008 | Bad Request | Bank slip already paid | Boleto já pago |
| 400         | BIP000009 | Bad Request | Invalid bank slip. Please consult issuing bank | Boleto inválido. Favor consultar banco emissor |
| 400         | BIP000034 | Bad Request | Collection slip already paid. | Fatura de recolhimento já paga. |

---

# Consultar dispositivo

URL: /documentation/baas/dispositivo/consultar_dispositivo

## Request

ENDPOINT /account/ ACCOUNT_KEY /device/ DEVICE_KEY
MÉTODO GET

### Path Params

| Campo         | Tipo   | Descrição                              | Caracteres |
|---------------|--------|----------------------------------------|------------|
| `account_key` | uuidv4 | Chave única de identificação da conta. | 36         |
| `device_key` | uuidv4 | Chave única de identificação do dispositivo. | 36         |

## Response

STATUS 200

Response Body: Dispositivo encontrado

```json
{
  "device_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "session_id": "05894BAD-C94E-4A61-B2A8-57EDAE868A0F",
  "analysis_status": "automatically_approved",
  "status": "registered",
  "device_registration_data": {
    "device_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
    "session_id": "05894BAD-C94E-4A61-B2A8-57EDAE868A0F",
    "document_number": "438.858.048-16",
    "registration_date": "2025-06-30T14:52:13-03:00",
    "face_recognition_key": "367195fc-de24-46b0-9ddb-79231dc7eeff"
  },
  "analysis_status_events": [
    {
      "new_analisys_status": "automatically_approved",
      "reason": null,
      "reason_description": null,
      "event_date": "2025-06-30T14:52:13Z"
    }
  ],
  "status_events": [
    {
      "new_status": "registered",
      "event_date": "2025-06-30T14:52:13Z"
    }
  ],
  "registration_date": "2025-06-30T14:52:14Z",
  "created_at": "2025-06-30T14:52:13Z"
}
```

### Response Body Params

| Campo                   | Tipo   | Descrição                                                                           | Caracteres |
|-------------------------|--------|-------------------------------------------------------------------------------------|------------|
| `device_key` *          | uuidv4 | Chave única de identificação do dispositivo no formato uuid v4                     | 36         |
| `session_id` *          | uuidv4 | Identificador da sessão obtido via device_scan                                      | 36         |
| `analysis_status` *      | string | Status da análise do motor de fraude                                                | **[Enumeradores analysis_status](#enumeradores-analysis_status)** |
| `status` *               | string | Status do dispositivo                                                               | **[Enumeradores status](#enumeradores-status)** |
| `device_registration_data` * | object | Dados de registro do dispositivo                                            | **[Objeto device_registration_data](#objeto-device_registration_data)** |
| `analysis_status_events` * | array | Histórico de eventos de mudança de status de análise                               | -          |
| `status_events` *       | array  | Histórico de eventos de mudança de status do dispositivo                           | -          |
| `registration_date` *    | string | Data de registro do dispositivo no formato ISO (UTC - "YYYY-MM-DDTHH:MM:SSZ")       | 20         |
| `created_at` *           | string | Data de criação do dispositivo no formato ISO (UTC - "YYYY-MM-DDTHH:MM:SSZ")       | 20         |

### Objeto device_registration_data

| Campo                   | Tipo   | Descrição                                                                           | Caracteres |
|-------------------------|--------|-------------------------------------------------------------------------------------|------------|
| `device_key` *          | uuidv4 | Chave única de identificação do dispositivo no formato uuid v4                     | 36         |
| `session_id` *          | uuidv4 | Identificador da sessão obtido via device_scan                                      | 36         |
| `document_number`       | string | Número do documento (CPF/CNPJ) do usuário                                          | 14         |
| `registration_date` *   | string | Data de registro no formato ISO com fuso horário                                   | 25         |
| `face_recognition_key`  | uuidv4 | Chave de reconhecimento facial (quando aplicável)                                  | 36         |

### Objeto analysis_status_event

| Campo                   | Tipo   | Descrição                                                                           | Caracteres |
|-------------------------|--------|-------------------------------------------------------------------------------------|------------|
| `new_analisys_status` * | string | Novo status de análise                                                              | **[Enumeradores analysis_status](#enumeradores-analysis_status)** |
| `reason`                | string | Razão da mudança de status (quando aplicável)                                       | -          |
| `reason_description`    | string | Descrição da razão da mudança de status (quando aplicável)                          | -          |
| `event_date` *          | string | Data do evento no formato ISO (UTC - "YYYY-MM-DDTHH:MM:SSZ")                        | 20         |

### Objeto status_event

| Campo                   | Tipo   | Descrição                                                                           | Caracteres |
|-------------------------|--------|-------------------------------------------------------------------------------------|------------|
| `new_status` *          | string | Novo status do dispositivo                                                          | **[Enumeradores status](#enumeradores-status)** |
| `event_date` *          | string | Data do evento no formato ISO (UTC - "YYYY-MM-DDTHH:MM:SSZ")                        | 20         |

### Enumeradores analysis_status

| Enumerador              | Descrição                               |
|-------------------------|-----------------------------------------|
| automatically_approved  | Aprovado automaticamente pelo motor de fraude |
| automatically_reproved | Reprovado automaticamente pelo motor de fraude |
| pending                 | Pendente de análise                     |

### Enumeradores status

| Enumerador         | Descrição                               |
|--------------------|-----------------------------------------|
| registered         | Dispositivo registrado                  |
| disabled           | Dispositivo desativado                 |
| pending            | Dispositivo pendente de aprovação       |

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (ptbr)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Erro de Schema                                                                                                         |
| 404                      | OBD000002            | Not Found                             | Bank account not found                                                   | Conta não encontrada                                                       |
| 404                      | OBD000100            | Device not found                                 | No device is associated with the provided device_key.                                                                                     | Nenhum dispositivo está associado à device_key fornecida.                                             |

---

# Aprovar criação de dispositivo

URL: /documentation/baas/dispositivo/create/aprovar_cadastro_dispositivo

## Request

ENDPOINT /account/ ACCOUNT_KEY /device/ DEVICE_KEY /validate
MÉTODO PUT

### Path Params

| Campo         | Tipo   | Descrição                              | Caracteres |
|---------------|--------|----------------------------------------|------------|
| `account_key` | uuidv4 | Chave única de identificação da conta. | 36         |
| `device_key` | uuidv4 | Chave única de identificação do dispositivo. | 36         |

Request Body

```json
{
  "token": "329adf"
}
```

### Body Params

| Campo     | Tipo   | Descrição                                                             | Caracteres |
|-----------|--------|-----------------------------------------------------------------------|------------|
| `token` * | string | Código de autenticação enviado ao aprovador de movimentações da conta | 6          | 

## Response

STATUS 201

Response Body: Dispositivo Criado

```json
{
  "device_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "device_status": "created",
  "created_at": "2024-12-22T20:30:23.459Z"
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (ptbr)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Erro de Schema                                                                                                         |
| 404                      | OBD000002            | Not Found                             | Bank account not found                                                   | Conta não encontrada                                                       |
| 400                      | OBD000088            | Bad Request                               | Account blocked or closed can not perform this action                                                                                        | A conta bloqueada ou fechada não pode executar esta ação                                                                                    |
| 400                      | OBD000089            | Bad Request                               | Hub account can not perform this action                                                                                 | A conta hub não pode executar esta ação                                                                                    |
| 400                      | OBD000099            | Number of token validation attempts exceeded                                 | The maximum number of failed token validation attempts has been reached                                                                                     | Número máximo de tentativas de validação de token atingida                                                    |
| 404                      | OBD000100            | Device not found                                 | No device is associated with the provided device_key.                                                                                     | Nenhum dispositivo está associado à device_key fornecida.                                             |
| 400                      | OBD0000100            | Incorrect Token                                | Token sent does not match expected                             | Token enviado não condiz com, o esperado                                                                |

---

# Solicitar Criação de Dispositivo

URL: /documentation/baas/dispositivo/create/solicitacao_cadastro_dispositivo

## Request

ENDPOINT /account/ ACCOUNT_KEY /device
MÉTODO POST

### Path Params

| Campo         | Tipo   | Descrição                              | Caracteres |
|---------------|--------|----------------------------------------|------------|
| `account_key` | uuidv4 | Chave única de identificação da conta. | 36         |

**SMS**

Request Body: Autenticação via SMS

```json
{
    "device_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
    "session_id": "fae3cb6c-9012-4b1c-9d61-7e8b2a6a5ed2",
    "tfa_info": {
        "approver_document_number": "98765432100",
        "contact_type": "sms",
    },
}
```

### Body Params

| Campo                   | Tipo       | Descrição                                                                                                                                                                                                                                        | Caracteres                              |
|-------------------------|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------|
| `device_key` * | uuidv4     | Chave única de identificação do dispositivo no formato uuid v4, adquirida atráves da **device_scan** (criada nesse momento pelo cliente integrador).                                                                                                                                                               | 36                                      | 
| `session_id` * | uuidv4     | Chave única de identificação da sessão no formato uuid v4, adquirida atráves da **device_scan** (criada nesse momento pelo cliente integrador).                                                                                                                                                               | 36                                      | 
| `tfa_info`*             | Object     | Objeto contendo o documento da pessoa aprovadora da conta e a forma de contato ou `image_key`.                                                                                                                                                                  | **[Objeto tfa_info](#objeto-tfa_info)** |

### Objeto tfa_info

| Campo                       | Tipo   | Descrição                                                                           | Caracteres |
|-----------------------------|--------|-------------------------------------------------------------------------------------|------------|
| `approver_document_number`* | string | Número de documento da pessoa aprovadora da conta.                                  | 11         | 
| `contact_type`*             | string | Indica o método de contato com a pessoa responsável pela aprovação da conta. Os valores possíveis são **sms**, **email**, ou **liveness** (quando a autenticação for realizada utilizando image_key).|            |

## Response

STATUS 202

Response Body: Transação Solicitada

```json
{
  "device_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "device_status": "pending_2fa_approval",
  "created_at": "2024-12-22T20:30:23.459Z"
}
```

**Email**
Request Body: Autenticação via Email

```json
{
    "device_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
    "session_id": "fae3cb6c-9012-4b1c-9d61-7e8b2a6a5ed2",
    "tfa_info": {
        "approver_document_number": "98765432100",
        "contact_type": "email",
    },
}
```

### Body Params

| Campo                   | Tipo       | Descrição                                                                                         | Caracteres                                          |
|-------------------------|------------|---------------------------------------------------------------------------------------------------|-----------------------------------------------------|
| `device_key` * | uuidv4     | Chave única de identificação do dispositivo no formato uuid v4, adquirida atráves da **device_scan** (criada nesse momento pelo cliente integrador).                                                                                                                                                               | 36                                      | 
| `session_id` * | uuidv4     | Chave única de identificação da sessão no formato uuid v4, adquirida atráves da **device_scan** (criada nesse momento pelo cliente integrador).                                                                                                                                                               | 36                                      | 
| `tfa_info`*             | Object     | Objeto contendo o documento da pessoa aprovadora da conta e a forma de contato ou `image_key`.                                                                                                                                                                  | **[Objeto tfa_info](#objeto-tfa_info)** |

### Objeto tfa_info

| Campo                       | Tipo   | Descrição                                                                           | Caracteres |
|-----------------------------|--------|-------------------------------------------------------------------------------------|------------|
| `approver_document_number`* | string | Número de documento da pessoa aprovadora da conta.                                  | 11         | 
| `contact_type`*             | string | Indica o método de contato com a pessoa responsável pela aprovação da conta. Os valores possíveis são **sms**, **email**, ou **liveness** (quando a autenticação for realizada utilizando image_key).|            |

## Response

STATUS 202

Response Body: Transação Solicitada

```json
{
  "device_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "device_status": "pending_2fa_approval",
  "created_at": "2024-12-22T20:30:23.459Z"
}
```

**Image Key**

Request Body: Autenticação via Image Key

```json
{
    "device_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
    "session_id": "fae3cb6c-9012-4b1c-9d61-7e8b2a6a5ed2",
    "tfa_info": {
        "approver_document_number": "98765432100",
        "contact_type": "liveness",
        "image_key": "367195fc-de24-46b0-9ddb-79231dc7eeff",
    },
}
```

### Body Params

| Campo                      | Tipo       | Descrição                                                                                                                                                                                                                                         | Caracteres                                |
|----------------------------|------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------|
| `device_key` * | uuidv4     | Chave única de identificação do dispositivo no formato uuid v4, adquirida atráves da **device_scan** (criada nesse momento pelo cliente integrador).                                                                                                                                                               | 36                                      | 
| `session_id` * | uuidv4     | Chave única de identificação da sessão no formato uuid v4, adquirida atráves da **device_scan** (criada nesse momento pelo cliente integrador).                                                                                                                                                               | 36                                      | 
| `tfa_info`*             | Object     | Objeto contendo o documento da pessoa aprovadora da conta e a forma de contato ou `image_key`.                                                                                                                                                                  | **[Objeto tfa_info](#objeto-tfa_info)** |

### Objeto tfa_info

| Campo                       | Tipo   | Descrição                                                                           | Caracteres |
|-----------------------------|--------|-------------------------------------------------------------------------------------|------------|
| `approver_document_number`* | string | Número de documento da pessoa aprovadora da conta.                                  | 11         | 
| `contact_type`*             | string | Indica o método de contato com a pessoa responsável pela aprovação da conta. Os valores possíveis são **sms**, **email**, ou **liveness** (quando a autenticação for realizada utilizando image_key).|            |
| `image_key` * | uuidv4     | Chave única de identificação da imagem utilizada para reconhecimento facial, no formato UUID v4, obtida por meio do processo de **liveness**.                                                                                                                                                               | 36                                      | 

## Response

STATUS 202

Response Body: Dispositivo Criado

```json
{
  "device_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "device_status": "created",
  "created_at": "2024-12-22T20:30:23.459Z"
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (ptbr)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Erro de Schema                                                                                                         |
| 404                      | OBD000002            | Not Found                             | Bank account not found                                                   | Conta não encontrada                                                       |
| 400                      | OBD000088            | Bad Request                               | Account blocked or closed can not perform this action                                                                                        | A conta bloqueada ou fechada não pode executar esta ação                                                                                    |
| 400                      | OBD000089            | Bad Request                               | Hub account can not perform this action                                                                                 | A conta hub não pode executar esta ação                                                                                    |
| 403                      | OBD000090            | No approver permission | Given document number does not belong to an approver for this account string                                               | Número de documento enviado não pertence a um aprovador da conta                                              |
| 400                      | OBD000091            | tfa_info is required                                        | Client must send object tfa_info                                                                                       | Cliente deve enviar objeto tfa_info.                                                                                 |
| 400                      | OBD000092            | Invalid device info                         | Session ID and Device Key must be a valid UUID4 | A Session ID e o Device Key devem ser um UUID4 válidos |
| 404                      | OBD000093            | Requester Configuration not found                                  | There is no Requester Configuration attributed to requester_key | Não há Requester Configuration para a requester_key enviada                                                                           |
| 403                      | OBD000094            | Requester not allowed to create a device                                  | Requester has no permission to create a device                                               | Requester não possui permissão para criar um dispositivo                                                                           |
| 400                      | OBD000097            | Error occurred while sending token                                 | An unexpected error occurred while sending token                                                                                     | Um erro inexperado ocorreu ao tentar enviar token                                                                                    |

---

# Solicitar reenvio de token

URL: /documentation/baas/dispositivo/create/solicitacao_reenvio_token

Um novo token será gerado e enviado ao aprovador responsável pela criação do dispositivo (apenas nos casos de contato por email ou SMS). Caso o limite de tentativas de validação do token seja excedido, o reenvio não será permitido.

## Request

ENDPOINT /account/ ACCOUNT_KEY /device/ DEVICE_KEY /resend_token
MÉTODO PATCH

### Path Params

| Campo         | Tipo   | Descrição                              | Caracteres |
|---------------|--------|----------------------------------------|------------|
| `account_key` | uuidv4 | Chave única de identificação da conta. | 36         |
| `device_key` | uuidv4 | Chave única de identificação do dispositivo. | 36         |

### Body Params
| Campo         | Tipo   | Descrição                              | Caracteres |
|---------------|--------|----------------------------------------|------------|
| `contact_type`*             | string | Indica o método de contato com a pessoa responsável pela aprovação da conta. Os valores possíveis são **sms**, **email**| **[Enumerador contact_type](#enumerador-contact_type)**  |

:::info Informação
Caso não seja enviado um `contact_type`, o token será enviado da forma solicitada originalmente.
:::

| Enumerador | Descrição                                         |
|------------|---------------------------------------------------|
| **sms**    | Envio por Mensagem de Texto para telefone celular |
| **email**  | Envio por correio eletrônico                      |

## Response

STATUS 202

Response Body: Reenvio Solicitado

```json
{
  "device_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "device_status": "pending_2fa_approval",
  "created_at": "2024-12-22T20:30:23.459Z"
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (ptbr)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Erro de Schema                                                                                                         |
| 404                      | OBD000002            | Not Found                             | Bank account not found                                                   | Conta não encontrada                                                       |
| 400                      | OBD000088            | Bad Request                               | Account blocked or closed can not perform this action                                                                                        | A conta bloqueada ou fechada não pode executar esta ação                                                                                    |
| 400                      | OBD000089            | Bad Request                               | Hub account can not perform this action                                                                                 | A conta hub não pode executar esta ação                                                                                    |
| 400                      | OBD000097            | Error occurred while sending token                                 | An unexpected error occurred while sending token                                                                                     | Um erro inexperado ocorreu ao tentar enviar token                                                                                    |
| 400                      | OBD000099            | Number of token validation attempts exceeded                                 | The maximum number of failed token validation attempts has been reached                                                                                     | Número máximo de tentativas de validação de token atingida                                                    |
| 404                      | OBD000100            | Device not found                                 | No device is associated with the provided device_key.                                                                                     | Nenhum dispositivo está associado à device_key fornecida.                                             |

---

# Desativar dispositivo

URL: /documentation/baas/dispositivo/delete/desativar_dispositivo

## Request

ENDPOINT /account/ ACCOUNT_KEY /device/ DEVICE_KEY /disable
MÉTODO DELETE

### Path Params

| Campo         | Tipo   | Descrição                              | Caracteres |
|---------------|--------|----------------------------------------|------------|
| `account_key` | uuidv4 | Chave única de identificação da conta. | 36         |
| `device_key` | uuidv4 | Chave única de identificação do dispositivo. | 36         |

## Response

STATUS 200

Response Body: Dispositivo desativado

```json
{
  "device_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "device_status": "disabled",
  "created_at": "2024-12-22T20:30:23.459Z"
}
```

### Response Body Params

| Campo                   | Tipo   | Descrição                                                                           | Caracteres |
|-------------------------|--------|-------------------------------------------------------------------------------------|------------|
| `device_key` *          | uuidv4 | Chave única de identificação do dispositivo no formato uuid v4                     | 36         |
| `device_status` *       | string | Status do dispositivo                                                               | **[Enumeradores device_status](#enumeradores-device_status)** |
| `created_at` *          | string | Data de criação do dispositivo no formato ISO (UTC - "YYYY-MM-DDTHH:MM:SSZ")        | 20         |

### Enumeradores device_status

| Enumerador         | Descrição                               |
|--------------------|-----------------------------------------|
| active             | Dispositivo ativo e disponível para uso |
| disabled           | Dispositivo desativado                 |
| pending            | Dispositivo pendente de aprovação       |

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (ptbr)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Erro de Schema                                                                                                         |
| 404                      | OBD000002            | Not Found                             | Bank account not found                                                   | Conta não encontrada                                                       |
| 400                      | OBD000088            | Bad Request                               | Account blocked or closed can not perform this action                                                                                        | A conta bloqueada ou fechada não pode executar esta ação                                                                                    |
| 400                      | OBD000089            | Bad Request                               | Hub account can not perform this action                                                                                 | A conta hub não pode executar esta ação                                                                                    |
| 404                      | OBD000100            | Device not found                                 | No device is associated with the provided device_key.                                                                                     | Nenhum dispositivo está associado à device_key fornecida.                                             |

---

# Introdução

URL: /documentation/baas/dispositivo/introducao

A API de Onboarding oferece a funcionalidade de Gestão de Dispositivos, permitindo que parceiros cadastrem dispositivos específicos a usuários vinculados a uma conta. Com essa funcionalidade, é possível reforçar a segurança das operações, garantindo que apenas dispositivos autorizados possam realizar transações, as quais serão validadas por meio do **token do dispositivo**.

### Cadastro de Dispositivo

O cadastro de um novo dispositivo para validação de transações é realizado por meio de um fluxo dividido em três etapas:

---

**I. Solicitação de Cadastro (POST)**  
Nesta etapa, é enviada uma requisição `POST` contendo:  
- Dados do dispositivo obtidos via `device_scan`  
- Informações necessárias para a autenticação de dois fatores(2FA)

Ao concluir a solicitação, um token 2FA é gerado e encaminhado ao usuário (por e-mail ou SMS). Esse token assegura que o cadastro está sendo realizado pela pessoa efetivamente autorizada a vincular o dispositivo.

:::info Observação
Caso a autenticação seja feita por reconhecimento facial, a **image_key** adquirida através da [liveness](/documentation/caas/face_recognition/api/introduction) deverá ser enviada no campo de 2FA.
Nesse caso, não será necessário passar pelos próximos passos de validação. 
:::

---

**II. Validação do Token 2FA (PUT/PATCH)**  
Após receber o token 2FA, o usuário deve validá-lo utilizando uma requisição `PUT`. Caso o código precise ser reenviado (por perda, não recebimento ou expiração), utiliza-se uma requisição `PATCH` para solicitar um novo token.  
Uma vez que o token seja validado com sucesso, o dispositivo será efetivamente registrado no sistema.

---

**III. Autenticação com o Token do Dispositivo em Transações Futuras**  
Com o dispositivo devidamente cadastrado, ele poderá ser utilizado na validação de transações futuras. As transações serão autenticadas utilizando o token do dispositivo, tornando o processo mais seguro e confiável.

---

### Consultar um Dispositivo

É possível consultar as informações de um dispositivo específico através de uma requisição `GET`, fornecendo a `account_key` e a `device_key`. Esta operação retorna os detalhes do dispositivo, incluindo seu status atual, data de criação e última atualização.

---

### Desativar um Dispositivo

Quando necessário, um dispositivo pode ser desativado através de uma requisição `DELETE`. Uma vez desativado, o dispositivo não poderá mais ser utilizado para validação de transações, garantindo maior controle sobre a segurança das operações.

---

# Confirmar Abertura de Conta de Pessoa Física

URL: /documentation/baas/escrow/abrir_conta_pf

A abertura de conta ocorre em duas etapas obrigatórias. Primeiro, uma requisição POST envia dados preliminares para reservar a conta. Em seguida, um webhook do tipo `account_request.status_change` com o status `pending_additional_data` é disparado. Na segunda etapa, uma requisição PATCH finaliza a abertura, oficializando a conta com as informações complementares. 

## Request
ENDPOINT /account_request/ ACCOUNT_REQUEST_KEY /escrow
MÉTODO PATCH

## Path Params
| Campo         | Tipo   | Descrição                              | Caracteres |
|---------------|--------|----------------------------------------|------------|
| `account_request_key` | uuidv4 | Chave única de identificação solicitação de reserva da conta. | 36         |

## Abertura de conta Escrow

Request Body

```json
{
    "account_owner": {
        "address": {
            "street": "Av. Brigadeiro Faria Lima",
            "state": "SP",
            "city": "São Paulo",
            "neighborhood": "Jardim Paulistano",
            "number": "2391",
            "postal_code": "01452905",
            "complement": "Complemento"
        },
        "birth_date": "1990-05-06",
        "document_identification": "3884579b-9810-4fa6-9b08-fe67d237160a",
        "email": "teste@gmail.com",
        "individual_document_number": "99999999999",
        "is_pep": false,
        "mother_name": "Dona Maria Mariane",
        "name": "Nome do Titular da Conta",
        "nationality": "nationality",
        "person_type": "natural",
        "phone": {
            "country_code": "055",
            "area_code": "11",
            "number": "999999999"
        },
        "proof_of_residence": "4d7f4e-1eec-4e5f-82c0-d8c3921497ea",
        "monthly_income": 1000
    },
    "signed_contract": {
        "document_key": "48a8f4g9-4b58-4905-9a69-b1f9215263f5",
        "signatures": [
            {
                "authenticity": {
                    "timestamp": "1970-01-01T00:00:01.080100Z",
                    "facial_recognition_key":"79003de0-2590-455d-9b73-426b8ca284eb",
                    "lang": "-35.8916627",
                    "lat": "-7.2226067",
                    "ip_address": "177.51.1.186",
                    "session_id": "jdifj329842"
                },
                "signer": {
                    "name": "Nome do Titular da Conta",
                    "email": "teste@gmail.com",
                    "phone": {
                        "country_code": "055",
                        "area_code": "11",
                        "number": "999999999"
                    },
                    "document_number": "999999999"
                },
                "authentication_type": "opt-in"
            }
        ]
    },
    "destinations": [
        {
            "account_branch": "0001",
            "account_number": "1234567",
            "account_digit": "1",
            "document_number": "04252012000123",
            "name": "Conta do FIDC",
            "ispb_number": "32402502",
            "financial_institution_code_number": "329"
        }
    ],
    "additional_documents": ["b12c8807-8f3f-4083-9cb1-7cce641f3786"]
}
```

### Request Body Params

| Campo | Tipo | Descrição | Caracteres |
|---|---| ---|---|
| `account_owner` * | object  | Objeto contendo as informações do Titular da Conta | **[Objeto account_owner](#objeto-account_owner)** |
| `signed_contract` * | object  | Objeto contendo as informações do Titular da Conta | **[Objeto signed_contract](#objeto-signed_contract)** |
| `destinations ` * | list  | Lista de contas destino autorizadas a receber transaferências. | **[Objeto destinations](#objeto-destinations)** |
| `additional_documents`  | list  | Lista de id's de documentos extras/opcionais . | Array de UUID's |

### Objeto account_owner

| Campo | Tipo | Descrição | Caracteres |
|---| ---| ---| ---| 
| `address` * | object | Endereço da pessoa titular da conta. | **[Objeto adress](#objeto-address)** |  |
| `birth_date` | string |  Data de nascimento da pessoa titular da conta(formato "AAAA-MM-DD"). | - |
| `document_identification` * | uuidv4 |  DOCUMENT_KEY do PDF do documento de identificação da pessoa titular da conta com foto (RG ou CNH) (enviado previamente) | 36 |
| `email` * | string |  Email da pessoa titular da conta. | 200 |
| `individual_document_number` | string | CPF da pessoa titular da conta (apenas números). Limitado a 11 caracteres. | 11 |
| `is_pep` * | string |  Declaração se a pessoa é PEP (http://www.portaldatransparencia.gov.br/download-de-dados/pep).| - |
| `mother_name` | string |  Nome da mãe do cliente em caso de PF. | - |
| `name` * | string | Nome do titular da conta. | - |
| `nationality` * | string |  Nacionalidade do cliente. | - |
| `person_type` * | enumerator | Identificador de que o objeto enviado é uma pessoa física ou jurídica.| **[Enumeradores person_type](#enumeradores-person_type)**|
| `phone` * | string | Objeto com dados do telefone | **[Objeto phone](#objeto-phone)**|
| `proof_of_residence` | string |  DOCUMENT_KEY do PDF do comprovante de endereço do endereço enviado (enviado previamente).| - |
| `monthly_income`* | number | Renda mensal do titular da conta | | 

### Objeto address 

Este objeto, presente tanto no objeto PF quanto no objeto PJ, é um simples objeto para representar um endereço.

| Campo | Tipo | Descrição |  Caracteres | 
|---|---|---|---| 
| `street` *| string | Rua do endereço  | 500 |
| `state` *| string | Estado do endereço (com dois caracteres maiúsculos) | 2 |
| `city` *| string | Cidade do endereço | 255 |
| `neighborhood` *| string |Bairro do endereço | 500 |
| `number` *| string | Número da rua | 10 |
| `postal_code` *| string |CEP do endereço (http://www.buscacep.correios.com.br/sistemas/buscacep/) (apenas números) |  8 |
| `complement` *| string |Complemento do endereço (texto livre) | 500 |

### Objeto destinations

| Campo | Tipo | Descrição | Caracteres |
|---| ---| ---| ---| 
| `account_branch` * | string | Número da Agência da conta destino. | 4 | 
| `account_number` * | string |  Número da conta destino. | - |
| `account_digit` * | string |  Dígito verificador do número da conta destino. | 1 |
| `document_number` * | string |  CPF/CNPJ do titular da conta destino. | - |
| `name ` | string | Nome/Razão Social do titular da conta destino. | - |
| `ispb_number` * | string |  ISPB (base do CNPJ) da instituição financeira da conta destino.| 8 |
| `financial_institution_code_number ` * | string |  Código da instituição financeira da conta destino. | 3 |

### Objeto signed_contract 
| Campo | Tipo   | Descrição        | Caracteres    |
|-------|--------|------------------|---------------|
| **document_key** * | uuidv4 | Chave única de identificação do documento do **Termo de Abertura de Conta** ou **Contrato de Conta Escrow**. (A DOCUMENT_KEY é retornada na resposta do endpoint de [Upload de documentos](./upload_de_documentos)) | 36            |
| **signatures** *   | list   | Dados de assinatura do documento enviado. Cada item da lista, corresponde a um assinante do documento.      | [Objeto signatures](#objeto-signatures) |

### Objeto signatures
| Campo | Tipo       | Descrição         | Caracteres        |
|-------|------------|-------------------|-------------------|
| **authenticity** * | object     | Conjunto de dados que evidenciam a assinatura eletrônica realizada pelo assinante. | [Objeto authenticity](#objeto-authenticity) |
| **signer** * | object     | Objeto contendo os dados de um dos assinantes do documento.           | [Objeto signer](#objeto-signer)|
| **authentication_type** * | enumerator | Tipo de assinatura. Sempre será "**opt-in**"| "**opt-in**"                   |

### Enumeradores person_type
| Enum | Descrição         | 
|-------|-------------------|
| **natural** * | Pessoa Física     |
| **legal** * | Pessoa Jurídica     |    

### Objeto authenticity
| Campo | Tipo   | Descrição               | Caracteres |
|-------|--------|-------------------------|------------|
| **timestamp** *            | string | Data e hora do momento da assinatura do documento.                | 27         |
| **facial_recognition_key** *| uuidv4 | Chave única de identificação da foto da selfie do titular da conta.  | 36         |
| **lang**                   | string | Coordenada de longitude da geolocalização do assinante capturada no momento da assinatura.                  | -          |
| **lat**                    | string | Coordenada de latitude da geolocalização do assinante capturada no momento da assinatura.                   | -          |
| **ip_address**             | string | Endereço IP do dispositivo do assinante.     | -          |
| **session_id**     *        | string | ID da seção do assinante no momento da assinatura.                | -          |

### Objeto signer
| Campo                 | Tipo   | Descrição                                 | Caracteres                        |
|-----------------------|--------|-------------------------------------------|-----------------------------------|
| **name** *            | string | Nome do assinante.                        | -                                 |
| **email** *           | string | Email do assinante.                       | -                                 |
| **phone** *           | object | Objeto com dados do telefone do assinante | **[Objeto phone](#objeto-phone)** |
| **document_number** * | string | CPF do assinante.                         | 11                                |

### Objeto phone 

| Campo | Descrição | Exemplo |  Máx. Caracteres | 
| --- | --- | --- | --- | 
|`country_code` *| string | Código DDI do telefone (https://ddi.guiamais.com.br/) | 3 | 
| `area_code` *| string | Código DDD do telefone (https://ddd.guiamais.com.br/) | 3 |
| `number` *| string |Número de telefone (apenas números) |  10 |

## Response

STATUS 201

Response Body

```json
{
    
    "account_key": "e48eb139-448e-43b9-9aee-df5f4b51158c"
}
```

:::warning Atenção
 O campo `account_key`  será a chave única de identificação da conta. Toda interação com a conta se dará através dela.
:::

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`  | Descrição (eng)<br/>`description` | Descrição(ptbr) <br></br>`translation`|
|---| --- | --- | --- | --- | 
| 400 | QIT000001 | Bad Request | Schema Error | Erro de Schema|
| 404 | QIT000404 | Not Found | Resource could not be found | Recurso não encontrado|

---

# Confirmar Abertura de Conta de Pessoa Jurídica

URL: /documentation/baas/escrow/abrir_conta_pj

A abertura de conta ocorre em duas etapas obrigatórias. Primeiro, uma requisição POST envia dados preliminares para reservar a conta. Em seguida, um webhook do tipo `account_request.status_change` com o status `pending_additional_data` é disparado. Na segunda etapa, uma requisição PATCH finaliza a abertura, oficializando a conta com as informações complementares. 

## Request
ENDPOINT /account_request/ ACCOUNT_REQUEST_KEY /escrow
MÉTODO PATCH

## Path Params
| Campo         | Tipo   | Descrição                              | Caracteres |
|---------------|--------|----------------------------------------|------------|
| `account_request_key` | uuidv4 | Chave única de identificação solicitação de reserva da conta. | 36         |

## Abertura de conta Escrow

Request Body

```json
{
    "account_owner": {
        "address": {
            "city": "Caraguatatuba",
            "complement": "complemento",
            "neighborhood": "Jaraguazinho",
            "number": "924",
            "postal_code": "11675200",
            "state": "SP",
            "street": "Praça Jorge Vitório de Souza"
        },
        "cnae_code": "4721-1/02",
        "company_document_number": "64669455000187",
        "company_statute": "8b0d8c33-01c9-4cf5-a0fa-1d2a96f4b34d",
        "company_type": "ltda",
        "email": "marcos.alves@yopmail.com",
        "foundation_date": "2017-09-16",
        "name": "NOME DA EMPRESA",
        "person_type": "legal",
        "phone": {
            "area_code": "19",
            "country_code": "055",
            "number": "988888888"
        },
        "trading_name": "Pães e Doces",
        "monthly_revenue": 100000,
        "company_representatives": [
            {
                "name": "Marcos Felipe Henrique Alves",
                "address": {
                    "city": "Recife",
                    "complement": null,
                    "neighborhood": "Fundão",
                    "number": "137",
                    "postal_code": "52221110",
                    "state": "PE",
                    "street": "Rua Camapuã"
                },
                "email": "marcos.alves@yopmail.com",
                "birth_date": "1972-02-02",
                "individual_document_number": "08531309069",
                "document_identification": "8b0d8c33-01c9-4cf5-a0fa-1d2a96f4b34d",
                "document_identification_number": "339122924",
                "is_pep": false,
                "final_beneficiary": true,
                "marital_status": "single",
                "mother_name": "Sueli Isadora Alves",
                "nationality": "Brasileira",
                "person_type": "natural",
                "phone": {
                    "area_code": "88",
                    "country_code": "055",
                    "number": "995924634"
                }
            }
        ]
    },
    "signed_contract": {
        "document_key": "4d7f4e29-4b58-4905-9a69-b1f9215263f5",
        "signatures": [
            {
                "authenticity": {
                    "timestamp": "1970-01-01T00:00:01.080100Z",
                    "facial_recognition_key": "79003de0-2590-455d-9b73-426b8ca284eb",
                    "lang": "-35.8916627",
                    "lat": "-7.2226067",
                    "ip_address": "177.51.1.186",
                    "session_id": "jdifj329842"
                },
                "signer": {
                    "name": "IVANILDO DE SENA LIMA",
                    "email": "ivanlima2604@gmail.com",
                    "phone": {
                        "country_code": "055",
                        "area_code": "11",
                        "number": "999999999"
                    },
                    "document_number": "61766976204"
                },
                "authentication_type": "opt-in"
            }
        ]
    },
    "destinations": [
        {
            "account_branch": "0001",
            "account_number": "1234567",
            "account_digit": "1",
            "document_number": "04252012000123",
            "name": "Conta do FIDC",
            "ispb_number": "32402502",
            "financial_institution_code_number": "329"
        }
    ],
    "additional_documents": ["b12c8807-8f3f-4083-9cb1-7cce641f3786"]
}
```

### Request Body Params

| Campo | Tipo | Descrição | Caracteres |
|---|---| ---|---|
| `account_owner` * | object  | Objeto contendo as informações do Titular da Conta | **[Objeto account_owner](#objeto-account_owner)** |
 `signed_contract` * | object  | Objeto contendo as informações do Titular da Conta | **[Objeto signed_contract](#objeto-signed_contract)** |
| `destinations ` * | list  | Lista de contas destino autorizadas a receber transaferências. | **[Objeto destinations](#objeto-destinations)** |
| `additional_documents` | list | Lista de id's de documentos extras/opcionais . | Array de UUID's |

### Objeto account_owner

| Campo | Tipo | Descrição | Caracteres |
|---| ---| ---| ---| 
| `address` * | object | Endereço do titular da conta. | **[Objeto adress](#objeto-address)** |  |
| `cnae_code` | string | Classificação Nacional de Atividades Econômicas | 9 |
| `company_document_number ` * | string |  CNPJ | 14 |
| `company_statute ` | uuidv4 | DOCUMENT_KEY do PDF do estatuto da empresa (enviado previamente). | 36 |
| `company_type` * | enumerator	 |  Tipo da empresa|   **[Enumeradores company_type](#enumeradores-company_type)**    |
| `email` * | string |  Email do titular da conta. | 200 |
| `foundation_date` | string |  Data de abertura da empresa (formato "AAAA-MM-DD"). | 10 |
| `name` * | string | Razão social do titular da conta. | 50 |
| `person_type` * | enumerator | Identificador de que o objeto enviado é uma pessoa física ou jurídica.| **[Enumeradores person_type](#enumeradores-person_type)**|
| `phone` * | object | Objeto com dados do telefone | **[Objeto phone](#objeto-phone)**|
| `trading_name ` * | string | Nome fantasia. | 200 |
| `company_representatives` | list | Lista dos representantes legais da empresa | **[Objeto company_representatives](#objeto-company_representatives)** |
| `monthly_revenue`* | number | Faturamento mensal da empresa | |

### Objeto signed_contract 
| Campo | Tipo   | Descrição        | Caracteres    |
|-------|--------|------------------|---------------|
| ` document_key` * | uuidv4 | Chave única de identificação do documento do **Termo de Abertura de Conta** ou **Contrato de Conta Escrow**. (A DOCUMENT_KEY é retornada na resposta do endpoint de [Upload de documentos](./upload_de_documentos)) | 36            |
|` signatures` *   | list   | Dados de assinatura do documento enviado. Cada item da lista, corresponde a um assinante do documento.      | [Objeto signatures](#objeto-signatures) |

### Objeto destinations

| Campo | Tipo | Descrição | Caracteres |
|---| ---| ---| ---| 
| `account_branch` * | string | Número da Agência da conta destino. | 4 | 
| `account_number` * | string |  Número da conta destino. | - |
| `account_digit` * | string |  Dígito verificador do número da conta destino. | 1 |
| `document_number` * | string |  CPF/CNPJ do titular da conta destino. | - |
| `name ` | string | Nome/Razão Social do titular da conta destino. | - |
| `ispb_number` * | string |  ISPB (base do CNPJ) da instituição financeira da conta destino.| 8 |
| `financial_institution_code_number ` * | string |  Código da instituição financeira da conta destino. | 3 |

### Objeto company_representatives

| Campo                              | Tipo    | Descrição                                                                                              | Caracteres                                                                              |
|------------------------------------|---------|--------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------|
| **name** *                         | string  | Nome do representante da empresa                                                                       | 100                                                                                     |
| **address** *                      | object  | Objeto endereço do representante da empresa                                                            | **[Objeto address](#objeto-address)**                                                   |
| **email** *                        | string  | Email do representante da empresa                                                                      | 254                                                                                     |
| **birth_date**                   | string  | Data de nascimento representante da empresa (formato "AAAA-MM-DD")                                     | 10                                                                                      |
| **individual_document_number** *   | string  | CPF do representante da empresa (apenas números).                                                      | 11                                                                                      |
| **document_identification**        | string  | DOCUMENT_KEY do PDF do documento de identificação da pessoa com foto (RG ou CNH) (enviado previamente) | 36                                                                                      |
| **document_identification_number** | string  | Número do documento de identificação com foto da pessoa (RG ou CNH)                                    | 16                                                                                      |
| **document_identification_type**   | enum    | Tipo do documento de identificação com foto da pessoa (RG ou CNH)                                      | [Enumeradores document_identification_type](#enumeradores-document_identification_type) |
| **is_pep** *                       | boolean | Declaração se a pessoa é PEP (http://www.portaldatransparencia.gov.br/download-de-dados/pep).          | -                                                                                       |
| **final_beneficiary**              | boolean | Declaração se o representante é beneficiário final da empresa.                                         | -                                                                                       |
| **marital_status**                 | enum    | Estado civil do representante da empresa                                                               | **[Enumeradores marital status](#enumeradores-marital_status)**                         |
| **mother_name**                  | string  | Nome da mãe do representante da empresa                                                                | 100                                                                                     |
| **nationality**                    | string  | Nacionalidade do representante da empresa                                                              | 50                                                                                      |
| **person_type** *                  | enum    | Identificador de que o objeto enviado é uma pessoa física                                              | **[Enumeradores person_type](#enumeradores-person_type)**                               |
| **phone** * | object  | Objeto com dados do telefone do representante da empresa  | **[Objeto phone](#objeto-phone)** |

### Objeto address

Este objeto, presente tanto no objeto PF quanto no objeto PJ, é um simples objeto para representar um endereço.

| Campo              | Descrição | Exemplo                                                                                   | Caracteres |
|--------------------|-----------|-------------------------------------------------------------------------------------------|------------|
| **street** *       | string    | Rua do endereço                                                                           | 500        |
| **state** *        | enum      | Estado do endereço (com dois caracteres maiúsculos)                                       | 2          |
| **city** *         | string    | Cidade do endereço                                                                        | 255        |
| **neighborhood** * | string    | Bairro do endereço                                                                        | 500        |
| **number** *       | string    | Número da rua                                                                             | 10         |
| **postal_code** *  | string    | CEP do endereço (http://www.buscacep.correios.com.br/sistemas/buscacep/) (apenas números) | 8          |
| **complement**     | string    | Complemento do endereço (texto livre)                                                     | 500        |

### Objeto signed_contract 
| Campo | Tipo   | Descrição        | Caracteres    |
|-------|--------|------------------|---------------|
| **document_key** * | uuidv4 | Chave única de identificação do documento do **Termo de Abertura de Conta** ou **Contrato de Conta Escrow**. (A DOCUMENT_KEY é retornada na resposta do endpoint de [Upload de documentos](./upload_de_documentos)) | 36            |
| **signatures** *   | list   | Dados de assinatura do documento enviado. Cada item da lista, corresponde a um assinante do documento.      | [Objeto signatures](#objeto-signatures) |

### Objeto signatures
| Campo | Tipo       | Descrição         | Caracteres        |
|-------|------------|-------------------|-------------------|
| **authenticity** * | object     | Conjunto de dados que evidenciam a assinatura eletrônica realizada pelo assinante. | [Objeto authenticity](#objeto-authenticity) |
| **signer** * | object     | Objeto contendo os dados de um dos assinantes do documento.           | [Objeto signer](#objeto-signer)|
| **authentication_type** * | enumerator | Tipo de assinatura. Sempre será "**opt-in**"| "**opt-in**"                   |

### Objeto authenticity
| Campo | Tipo   | Descrição               | Caracteres |
|-------|--------|-------------------------|------------|
| **timestamp** *            | string | Data e hora do momento da assinatura do documento.                | 27         |
| **facial_recognition_key** *| uuidv4 | Chave única de identificação da foto da selfie do titular da conta.| 36         |
| **lang**                   | string | Coordenada de longitude da geolocalização do assinante capturada no momento da assinatura.                  | -          |
| **lat**                    | string | Coordenada de latitude da geolocalização do assinante capturada no momento da assinatura.                   | -          |
| **ip_address**             | string | Endereço IP do dispositivo do assinante.     | -          |
| **session_id**  *           | string | ID da seção do assinante no momento da assinatura.                | -          |

### Objeto signer
| Campo                 | Tipo   | Descrição                                 | Caracteres                        |
|-----------------------|--------|-------------------------------------------|-----------------------------------|
| **name** *            | string | Nome do assinante.                        | -                                 |
| **email** *           | string | Email do assinante.                       | -                                 |
| **phone** *           | object | Objeto com dados do telefone do assinante | **[Objeto phone](#objeto-phone)** |
| **document_number** * | string | CPF do assinante.                         | 11                                |

### Objeto phone 

| Campo | Descrição | Exemplo |  Máx. Caracteres | 
| --- | --- | --- | --- | 
|`country_code` *| string | Código DDI do telefone (https://ddi.guiamais.com.br/) | 3 | 
| `area_code` *| string | Código DDD do telefone (https://ddd.guiamais.com.br/) | 2 |
| `number` *| string |Número de telefone (apenas números) |  10 |

### Enumeradores person_type
| Enum        | Description       |
|-------------|-------------------|
| **natural** | Pessoa física     |
| **legal**   | Pessoa jurídica   |

### Enumeradores document_identification_type
| Enum    | Description                            |
|---------|----------------------------------------|
| **rg**  | RG - Registro Geral                    |
| **cnh** | CNH - Carteira Nacional de Habilitação |

### Enumeradores company_type
| Enum                       | 	Description                                                             |
|----------------------------|--------------------------------------------------------------------------|
| **ltda**                   | Limitada                                                                |
| **sa**	                    | Sociedade Anônima                                                        |
| **micro_enterprise**	      | Micro Empresa                                                            |
| **freelancer**             | Freelancer                                                              |
| **sa_opened**              | Sociedade Anônima de Capital Aberto                                     |
| **sa_closed**	             | Sociedade Anônima de Capital Fechado                                     |
| **se_ltda**                | Sociedade Empresária Limitada                                           |
| **se_cn**                  | Sociedade Empresária em Nome Coletivo                                   |
| **se_cs**                  | Sociedade Empresária em Comandita Simples                               |
| **se_ca**	                 | Sociedade Empresária em Comandita por Ações                              |
| **scp**                    | Sociedade em Conta de Participação                                      |
| **ei**	                    | Empresário Individual                                                    |
| **ese**	                   | Estabelecimento, no Brasil, de Sociedade Estrangeira                     |
| **eeab**	                  | Estabelecimento, no Brasil, de Empresa Binacional Argentino-Brasileira   |
| **ssp**                    | Sociedade Simples Pura                                                  |
| **ss_ltda**	               | Sociedade Simples Limitada                                               |
| **ss_cn**                  | Sociedade Simples em Nome Coletivo                                      |
| **ss_cs**                  | Sociedade Simples em Comandita Simples                                  |
| **eireli_ne**              | Empresa Individual de Responsabilidade Limitada (de Natureza Empresária) |
| **eireli_ns**              | Empresa Individual de Responsabilidade Limitada (de Natureza Simples)   |
| **eireli**                 | Empresa de Responsabilidade Individual                                  |
| **mei**                    | Micro Empreendedor Individual                                            |
| **me**	                    | Micro Empresa                                                            |
| **cop**	                   | Cooperativa                                                              |
| **private_association**	   | Sociedade Privada        
| **association**	   | Associação                                                   |
| **others**	   | Outros  |

### Enumeradores marital_status
| Enum         | 	Description  |
|--------------|---------------|
| **single**   | Solteiro(a)   |
| **married**  | Casado(a)    |
| **widower**  | Viúvo(a)     |
| **divorced** | Divorciado(a) |
| **separated** | Separado(a) |

## Response

STATUS 201

Response Body

```json
{
    "account_key": "e48eb139-448e-43b9-9aee-df5f4b51158c"
}
```

:::warning Atenção
 A `account_key`  será a chave única de identificação da conta. Toda interação com a conta se dará através dela.

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`  | Descrição (eng)<br/>`description` | Descrição(ptbr) <br></br>`translation`|
|---| --- | --- | --- | --- | 
| 400 | QIT000001 | Bad Request | Schema Error | Erro de Schema|
| 404 | QIT000404 | Not Found | Resource could not be found | Recurso não encontrado|

---

# Abertura de Conta de Pessoa Física

URL: /documentation/baas/escrow/reservar_conta_pf

A abertura de conta ocorre em duas etapas obrigatórias. Primeiro, uma requisição POST envia dados preliminares para reservar a conta. Em seguida, um webhook do tipo `account_request.status_change` com o status `pending_additional_data` é disparado. Na segunda etapa, uma requisição PATCH finaliza a abertura, oficializando a conta com as informações complementares. 

## Solicitar Reserva de Conta

## Request 
ENDPOINT /account_request/escrow
MÉTODO POST

Request Body

```json
{
    "account_owner": {
        "document_number": "64669455000187",
        "email": "marcos.alves@yopmail.com",
        "birthdate": "2017-09-16",
        "name": "NOME",
        "documents": {
            "rg": {
                "ocr_front_key": "9d6fefc0-77c9-4acc-8526-53523ff155b9",
                "ocr_back_key": "30157d15-3b93-46ad-9c94-cd8bd533f9ed"
            },
            "cnh": {
                "ocr_key": "f30cea56-dd66-415b-9a28-746f7330b708"
            }
        },
        "face": "dbdaf3c9-cdf6-4737-8551-92910b213b7e"
    }
}
```

:::info Mock de CPF/CNPJ
Para simular situações de aprovação, reprovação e analise manual pode ser utilizado o primeiro digito do CPF/CNPJ do owner da conta:

0 à 6 -> Análise Manual

7 -> Rejeitado pelo bacen protege+

8 -> Reprovado automaticamente no KYC

9 -> Aprovação Automática
:::

### Request Body Params

| Campo | Tipo | Descrição | Caracteres |
|---|---| ---|---|
| `account_owner` * | object  | Objeto contendo as informações do Titular da Conta | **[Objeto account_owner](#objeto-account_owner)** |

### Objeto account_owner
| Campo | Tipo | Descrição | Caracteres |
|--- | --- | --- | --- |
| `document_number` * | string  | CPF do Titular da Conta | 11 |
| `email` * | string  | E-mail do Titular da Conta | 200 |
| `birthdate` | string  | 	Data de nascimento. (formato YYYY-MM-DD) | 10 |
| `name` * | string  | Nome do Titular da Conta | 50 |
| `documents` *| object  | Documento(s) do titular da conta | **[Objeto documents](#objeto-documents)** |
| `face` *     | uuidv4  | Chave do reconhecimento facial feito junto ao antifraude (`face_recognition_key`) | 36 |

### Objeto documents

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `rg`                           | object      | Chaves OCR (OCR keys) do upload da frente e verso do RG do titular | **[Objeto rg](#objeto-rg)**   |
| `cnh`                          | object      | Chave OCR do upload da CNH do titular                              | **[Objeto cnh](#objeto-cnh)** |
| `cnh_digital`                     | object      | Chave OCR do upload da CNH digital do titular                       | **[Objeto cnh_digital](#objeto-cnh_digital)** |
| `national_registry_of_foreigners` | object   | Chaves OCR (OCR keys) do upload da frente e verso do RNE do titular| **[Objeto national_registry_of_foreigners](#objeto-national_registry_of_foreigners)** |
| `national_migration_registry` | object   | Chaves OCR (OCR keys) do upload da frente e verso do CRNM do titular| **[Objeto national_migration_registry](#objeto-national_migration_registry)** |
| `passport`                     | object      | Chave OCR do upload do passaporte do titular                       | **[Objeto passport](#objeto-passport)** |
| `cin_digital`                     | object      | Chave OCR do upload da Cédula de Identidade Nacional digital do titular                       | **[Objeto cin_digital](#objeto-cin_digital)** |

:::info Informação
As chaves OCR (`ocr_key` ou `ocr_front_key` e `ocr_back_key`) do upload das imagens dos documentos são fornecidos como resposta do upload das imagens no antifraude. A `face_recognition_key` é retornada na resposta do reconhecimento facial.
:::

### Objeto rg

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_front_key` *              | uuidv4      | Chave OCR do upload da imagem da frente do RG                      | 36                            |
| `ocr_back_key` *               | uuidv4      | Chave OCR do upload da imagem do verso do RG                       | 36                            |

OU

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_key` *                    | uuidv4      | Chave OCR do upload da imagem do RG                                | 36                       |

### Objeto cnh

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_front_key` *              | uuidv4      | Chave OCR do upload da imagem da frente da CNH                     | 36                            |
| `ocr_back_key` *               | uuidv4      | Chave OCR do upload da imagem do verso da CNH                      | 36                            |

OU

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_key` *                    | uuidv4      | Chave OCR do upload da imagem da CNH                               | 36                            |

### Objeto cnh_digital

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_key` *                    | uuidv4      | Chave OCR do upload da imagem da CNH digital                               | 36                            |

### Objeto national_registry_of_foreigners

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_front_key` *              | uuidv4      | Chave OCR do upload da imagem da frente do RNE                     | 36                            |
| `ocr_back_key` *               | uuidv4      | Chave OCR do upload da imagem do verso do RNE                      | 36                            |

OU

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_key` *                    | uuidv4      | Chave OCR do upload da imagem do RNE                               | 36                            |

### Objeto national_migration_registry

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_front_key` *              | uuidv4      | Chave OCR do upload da imagem da frente do CRNM                     | 36                            |
| `ocr_back_key` *               | uuidv4      | Chave OCR do upload da imagem do verso do CRNM                      | 36                            |

OU

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_key` *                    | uuidv4      | Chave OCR do upload da imagem do CRNM                               | 36                            |

### Objeto passport

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_key` *                    | uuidv4      | Chave OCR do upload da imagem do passaporte                               | 36                            |

### Objeto cin_digital

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_key` *                    | uuidv4      | Chave OCR do upload da imagem da Cédula de Identidade Nacional digital                               | 36                            |

## Response

STATUS 201

Response Body

```json
{
    "account_info": {
        "account_branch": "0001",
        "account_digit": "0",
        "account_number": "1693580"
    },
    "account_request_key": "f230f1b5-07af-4737-b0e3-8a472304f5e7",
    "account_request_status": "pending_bacen_validation"
}
```

:::info Fluxo Bacen Protege+
A proposta começa com status `pending_bacen_validation`. O sistema realiza uma validação prévia junto ao Bacen Protege+ antes de prosseguir com a análise de KYC. Após aprovação do Bacen, o status será atualizado para `pending_kyc_analysis` automaticamente.
:::

:::warning Atenção
 O campo `account_request_key` deve ser armazenado e será utilizado para a confirmação da abertura da conta.
:::

### Response Body Params

| Campo | Tipo | Descrição | Caracteres|
|---|---| ---|---|
| `account_info` * | object  | Objeto contendo as informações do Titular da Conta |**[Objeto account_info](#objeto-account_info)**  | - |
| `account_request_key` * | string  | Chave de identificação da requisição de criação | - | - |
| `account_request_status` * | string  | Status de KYC | - | - |

### Objeto account_info
| Campo | Tipo | Descrição | Caracteres |
|---|---| ---| --- |
| `account_branch` * | string  | Número da Agência | 4 |
| `account_digit` * | string  | Dígito da Conta | 11 |
| `account_number` * | string  | Número da Conta | 50 |

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`  | Descrição (eng)<br/>`description` | Descrição(ptbr) <br></br>`translation`|
|---| --- | --- | --- | --- | 
| 400 | QIT000001 | Bad Request | Schema Error | Erro de Schema|
| 404 | QIT000404 | Not Found | Resource could not be found | Recurso não encontrado|

---

# Abertura de Conta de Pessoa Jurídica

URL: /documentation/baas/escrow/reservar_conta_pj

A abertura de conta ocorre em duas etapas obrigatórias. Primeiro, uma requisição POST envia dados preliminares para reservar a conta. Em seguida, um webhook do tipo `account_request.status_change` com o status `pending_additional_data` é disparado. Na segunda etapa, uma requisição PATCH finaliza a abertura, oficializando a conta com as informações complementares. 

## Solicitar Reserva de Conta

## Request
ENDPOINT /account_request/escrow
MÉTODO POST

Request Body

```json
{
    "account_owner": {
        "company_document_number": "99999999999",
        "email": "email@teste.com",
        "foundation_date": "2017-09-16",
        "name": "Nome da Empresa"
    },
    "legal_representatives": [
        {
            "birthdate": "1963-07-23",
            "name": "Don Corleone",
            "document_number": "03912394323",
            "documents": {
                "national_registry_of_foreigners": {
                    "ocr_front_key": "0aa8a4ca-5873-49bd-851c-1f2c71a1cc28",
                    "ocr_back_key": "29f6e346-7fae-4dcb-9ea1-2a3e4ef593ea"
                }
            },
            "face": "68da08f1-6cf4-4dce-a297-7b2f09311784"
        },
        {
            "birthdate": "1996-03-10",
            "name": "John Doe",
            "document_number": "39113492093",
            "documents": {
                "cnh": {
                    "ocr_key": "beee557e-9240-4c5b-88f1-42812b195168"
                }
            }
        }
    ]
}
```

:::info Mock de CPF/CNPJ
Para simular situações de aprovação, reprovação e analise manual pode ser utilizado o primeiro digito do CPF/CNPJ do owner da conta:

0 à 6 -> Análise Manual

7 -> Rejeitado pelo bacen protege+

8 -> Reprovado automaticamente no KYC

9 -> Aprovação Automática
:::

### Request Body Params

| Campo | Tipo | Descrição | Caracteres |
|---|---| ---|---|
| `account_owner` * | object  | Objeto contendo as informações do Titular da Conta | **[Objeto account_owner](#objeto-account_owner)** |
| `legal_representatives` | object array | Lista de representantes da conta e seus dados | **[Objeto legal_representative](#objeto-legal_representative)** |

### Objeto account_owner
| Campo | Tipo | Descrição | Caracteres |
|--- | --- | --- | --- |
| `"company_document_number"` * | string  | CNPJ do Titular da Conta | 14 |
| `email` * | string  | Email da empresa titular do contrato | 200 |
| `foundation_date` | string  | Data de abertura da empresa (formato YYYY-MM-DD) | 10 |
| `name` * | string  | Razão Social | 50 |

### Objeto legal_representative

| Campo | Tipo | Descrição | Caracteres |
|--- | --- | --- | --- |
| `document_number` * | string  | CPF do Titular da Conta | 11 |
| `birthdate` | string  | 	Data de nascimento. (formato YYYY-MM-DD) | 10 |
| `name` * | string  | Nome do Titular da Conta | 50 |
| `documents` * | object  | Documento(s) do titular da conta | **[Objeto documents](#objeto-documents)** |
| `face`      | uuidv4  | Chave do reconhecimento facial feito junto ao antifraude (`face_recognition_key`) | 36 |

### Objeto documents

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `rg`                           | object      | Chaves OCR (OCR keys) do upload da frente e verso do RG do titular | **[Objeto rg](#objeto-rg)**   |
| `cnh`                          | object      | Chave OCR do upload da CNH do titular                              | **[Objeto cnh](#objeto-cnh)** |
| `cnh_digital`                     | object      | Chave OCR do upload da CNH digital do titular                       | **[Objeto cnh_digital](#objeto-cnh_digital)** |
| `national_registry_of_foreigners` | object   | Chaves OCR (OCR keys) do upload da frente e verso do RNE do titular| **[Objeto national_registry_of_foreigners](#objeto-national_registry_of_foreigners)** |
| `national_migration_registry` | object   | Chaves OCR (OCR keys) do upload da frente e verso do CRNM do titular| **[Objeto national_migration_registry](#objeto-national_migration_registry)** |
| `passport`                     | object      | Chave OCR do upload do passaporte do titular                       | **[Objeto passport](#objeto-passport)** |
| `cin_digital`                     | object      | Chave OCR do upload da Cédula de Identidade Nacional digital do titular                       | **[Objeto cin_digital](#objeto-cin_digital)** |

:::info Informação
As chaves OCR (`ocr_key` ou `ocr_front_key` e `ocr_back_key`) do upload das imagens dos documentos são fornecidos como resposta do upload das imagens no antifraude. A `face_recognition_key` é retornada na resposta do reconhecimento facial.
:::

### Objeto rg

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_front_key` *              | uuidv4      | Chave OCR do upload da imagem da frente do RG                      | 36                            |
| `ocr_back_key` *               | uuidv4      | Chave OCR do upload da imagem do verso do RG                       | 36                            |

OU

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_key` *                    | uuidv4      | Chave OCR do upload da imagem do RG                                | 36                       |

### Objeto cnh

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_front_key` *              | uuidv4      | Chave OCR do upload da imagem da frente da CNH                     | 36                            |
| `ocr_back_key` *               | uuidv4      | Chave OCR do upload da imagem do verso da CNH                      | 36                            |

OU

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_key` *                    | uuidv4      | Chave OCR do upload da imagem da CNH                               | 36                            |

### Objeto cnh_digital

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_key` *                    | uuidv4      | Chave OCR do upload da imagem da CNH digital                               | 36                            |

### Objeto national_registry_of_foreigners

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_front_key` *              | uuidv4      | Chave OCR do upload da imagem da frente do RNE                     | 36                            |
| `ocr_back_key` *               | uuidv4      | Chave OCR do upload da imagem do verso do RNE                      | 36                            |

OU

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_key` *                    | uuidv4      | Chave OCR do upload da imagem do RNE                               | 36                            |

### Objeto national_migration_registry

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_front_key` *              | uuidv4      | Chave OCR do upload da imagem da frente do CRNM                     | 36                            |
| `ocr_back_key` *               | uuidv4      | Chave OCR do upload da imagem do verso do CRNM                      | 36                            |

OU

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_key` *                    | uuidv4      | Chave OCR do upload da imagem do CRNM                               | 36                            |

### Objeto passport

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_key` *                    | uuidv4      | Chave OCR do upload da imagem do passaporte                               | 36                            |

### Objeto cin_digital

| Campo                          | Tipo        | Descrição                                                          | Caracteres                    |
|--------------------------------|-------------|--------------------------------------------------------------------|-------------------------------|
| `ocr_key` *                    | uuidv4      | Chave OCR do upload da imagem da Cédula de Identidade Nacional digital                               | 36                            |

## Response

STATUS 201

Response Body

```json
{
    "account_info": {
        "account_branch": "0001",
        "account_digit": "0",
        "account_number": "1693580"
    },
    "account_request_key": "f230f1b5-07af-4737-b0e3-8a472304f5e7",
    "account_request_status": "pending_bacen_validation"
}
```

:::info Fluxo Bacen Protege+
A proposta começa com status `pending_bacen_validation`. O sistema realiza uma validação prévia junto ao Bacen Protege+ antes de prosseguir com a análise de KYC. Após aprovação do Bacen, o status será atualizado para `pending_kyc_analysis` automaticamente.
:::

:::warning Atenção
 O campo `account_request_key` deve ser armazenado e será utilizado para a confirmação da abertura da conta.
:::

### Response Body Params

| Campo | Tipo | Descrição | Caracteres|
|---|---| ---|---|
| `account_info` * | object  | Objeto contendo as informações do Titular da Conta |**[Objeto account_info](#objeto-account_info)**  | - |
| `account_request_key` * | string  | Chave de identificação da requisição de criação | - | - |
| `account_request_status` * | string  | Status de KYC | - | - |

### Objeto account_info
| Campo | Tipo | Descrição | Caracteres |
|---|---| ---| --- |
| `account_branch` * | string  | Número da Agência | 4 |
| `account_digit` * | string  | Dígito da Conta | 11 |
| `account_number` * | string  | Número da Conta | 50 |

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`  | Descrição (eng)<br/>`description` | Descrição(ptbr) <br></br>`translation`|
|---| --- | --- | --- | --- | 
| 400 | QIT000001 | Bad Request | Schema Error | Erro de Schema|
| 404 | QIT000404 | Not Found | Resource could not be found | Recurso não encontrado|

---

# baas_consulta_de_instituicoes_financeiras

URL: /documentation/baas/lista_de_instituicoes_financeiras/baas_consulta_de_instituicoes_financeiras



---

# baas_configuracao_de_notificacao

URL: /documentation/baas/notificacoes/baas_configuracao_de_notificacao



---

# baas_configuracao_template

URL: /documentation/baas/notificacoes/baas_configuracao_template



---

# baas_introducao

URL: /documentation/baas/notificacoes/baas_introducao



---

# baas_reenvio_de_notificacoes

URL: /documentation/baas/notificacoes/baas_reenvio_de_notificacoes



---

# baas_template

URL: /documentation/baas/notificacoes/baas_template



---

# baas_tipos_de_evento

URL: /documentation/baas/notificacoes/baas_tipos_de_evento



---

# Consultar Dados de um Lote de Pagamentos por conta

URL: /documentation/baas/pix_automatico/conciliacao/consultar_lote_por_conta

## Request

ENDPOINT /account/ ACCOUNT_KEY /payment_order_conciliation_batch/ PAYMENT_ORDER_CONCILIATION_BATCH_KEY
MÉTODO GET

### Path Params

| Campo                    | Tipo   | Descrição                                         | Caracteres |
|--------------------------|--------|---------------------------------------------------|------------|
| **`ACCOUNT_KEY`** *          | uuidv4 | Chave única de identificação da conta.            | 36         |
| **`PAYMENT_ORDER_CONCILIATION_BATCH_KEY`***| uuidv4 | Chave única de identificação do lote.      | 36         |

## Response

STATUS 200

Response Body

```json
{
  "payment_order_conciliation_batch_status": "open",
  "payment_order_conciliation_batch_type": "fixed_amount",
  "total_amount": 1000.00,
  "conciliated_amount": 500.00,
  "total_payment_orders": 10,
  "conciliated_payment_orders": 5,
  "reference_date": "2025-06-13",
  "created_at": "2025-06-10T20:30:23.459Z"
}
```

### Response Body Params

| Campo                                    | Tipo       | Descrição                                                      | Caracteres |
|------------------------------------------|------------|----------------------------------------------------------------|------------|
| `payment_order_conciliation_batch_status`| enumerator | Status do lote de conciliação de ordens de pagamento.          | [Enumeradores payment_order_conciliation_batch_status](#enumeradores-payment_order_conciliation_batch_status) |
| `payment_order_conciliation_batch_type`  | enumerator | Tipo do lote de conciliação de ordens de pagamento.           | [Enumeradores payment_order_conciliation_batch_type](#enumeradores-payment_order_conciliation_batch_type) |
| `total_amount`                           | number     | Valor total do lote de conciliação em reais (R$).              | -          |
| `conciliated_amount`                     | number     | Valor já conciliado do lote em reais (R$).                     | -          |
| `total_payment_orders`                   | integer    | Número total de ordens de pagamento no lote.                   | -          |
| `conciliated_payment_orders`             | integer    | Número de ordens de pagamento já conciliadas no lote.          | -          |
| `reference_date`                         | string     | Data de referência do lote (formato ISO 8601, e.g., "2025-06-13"). | 10         |
| `created_at`                             | string     | Data e hora de criação do lote (formato ISO 8601).             | -          |

### Enumeradores payment_order_conciliation_batch_status

| Enumerador   | Descrição                                   |
|--------------|---------------------------------------------|
| `open`       | Lote de conciliação aberto                 |
| `closed`     | Lote de conciliação fechado                |
| `processing` | Lote de conciliação em processamento       |
| `completed`  | Lote de conciliação concluído              |
| `cancelled`  | Lote de conciliação cancelado              |

### Enumeradores payment_order_conciliation_batch_type

| Enumerador        | Descrição                                   |
|-------------------|---------------------------------------------|
| `fixed_amount`    | Lote de conciliação de valor fixo          |
| `variable_amount` | Lote de conciliação de valor variável      |

STATUS 4XX

Response Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em português",
  "code": "codigo"
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                | Descrição (eng)<br/>`description`                                          | Descrição (ptbr)<br/>`translation`                                 |
|-------------|----------------------|-----------------------------------|----------------------------------------------------------------------------|--------------------------------------------------------------------|
| 400         | QIT000002            | Bad Request                       | Invalid request schema.                                                    | Erro no esquema da requisição.                                     |
| 404         | APX000003            | Conciliation Batch Not Found      | Conciliation batch \{conciliation_batch_key\} not found.                   | Lote de conciliação \{conciliation_batch_key\} não encontrado.      |

---

# Consultar Lotes de Pagamentos por Requester

URL: /documentation/baas/pix_automatico/conciliacao/consultar_lote_requester

## Request

ENDPOINT /payment_order_conciliation_batches
MÉTODO GET

### Query Params

| Campo                                    | Tipo       | Descrição                                                      | Obrigatório |
|------------------------------------------|------------|----------------------------------------------------------------|-------------|
| `payment_order_conciliation_batch_status`| enumerator | Filtro por status do lote de conciliação.                     | Não         |
| `payment_order_conciliation_batch_type`  | enumerator | Filtro por tipo do lote de conciliação.                       | Não         |
| `page`                                   | integer    | Número da página para paginação (padrão: 1).                  | Não         |
| `page_size`                              | integer    | Tamanho da página para paginação (padrão: 25).                | Não         |
| `from_date`                              | string     | Data inicial para filtro (formato ISO 8601, e.g., "2025-06-01"). | Não         |
| `to_date`                                | string     | Data final para filtro (formato ISO 8601, e.g., "2025-06-30").   | Não         |

## Response

STATUS 200

Response Body

```json
{
    "payment_order_conciliation_batches": [
        {
            "payment_order_conciliation_batch_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
            "payment_order_conciliation_batch_status": "closed",
            "payment_order_conciliation_batch_type": "fixed_amount",
            "account_key": "9b9ae7b0-7292-4b0d-9131-0167525ab067",
            "total_amount": 1200,
            "conciliated_amount": 1200,
            "total_payment_orders": 12,
            "conciliated_payment_orders": 12,
            "reference_date": "2025-06-13",
            "created_at": "2025-06-10T20:30:23.459Z"
        },
        {
            "payment_order_conciliation_batch_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
            "payment_order_conciliation_batch_status": "closed",
            "payment_order_conciliation_batch_type": "variable_amount",
            "account_key": "9b9ae7b0-7292-4b0d-9131-0167525ab067",
            "total_amount": 700,
            "conciliated_amount": 600,
            "total_payment_orders": 7,
            "conciliated_payment_orders": 6,
            "reference_date": "2025-06-13",
            "created_at": "2025-06-10T20:30:23.459Z"
        },
        {
            "payment_order_conciliation_batch_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
            "payment_order_conciliation_batch_status": "open",
            "payment_order_conciliation_batch_type": "variable_amount",
            "account_key": "9b9ae7b0-7292-4b0d-9131-0167525ab067",
            "total_amount": 900,
            "conciliated_amount": 700,
            "total_payment_orders": 9,
            "conciliated_payment_orders": 7,
            "reference_date": "2025-06-17",
            "created_at": "2025-06-10T20:30:23.459Z"
        },
        {
            "payment_order_conciliation_batch_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
            "payment_order_conciliation_batch_status": "closed",
            "payment_order_conciliation_batch_type": "fixed_amount",
            "account_key": "c24a0ac4-792c-494e-b887-6185e07a33a3",
            "total_amount": 800,
            "conciliated_amount": 800,
            "total_payment_orders": 8,
            "conciliated_payment_orders": 8,
            "reference_date": "2025-06-13",
            "created_at": "2025-06-10T20:30:23.459Z"
        },
        {
            "payment_order_conciliation_batch_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
            "payment_order_conciliation_batch_status": "open",
            "payment_order_conciliation_batch_type": "variable_amount",
            "account_key": "c24a0ac4-792c-494e-b887-6185e07a33a3",
            "total_amount": 1000,
            "conciliated_amount": 500,
            "total_payment_orders": 10,
            "conciliated_payment_orders": 5,
            "reference_date": "2025-06-17",
            "created_at": "2025-06-10T20:30:23.459Z"
        }
    ],
    "pagination": {
        "page": 1,
        "page_size": 25,
        "number_of_pages": 1
    }
}
```

### Response Body Params

| Campo                                | Tipo  | Descrição                                                    | Caracteres |
|--------------------------------------|-------|--------------------------------------------------------------|------------|
| `payment_order_conciliation_batches` | array | Lista de lotes de conciliação de ordens de pagamento.       | [Array payment_order_conciliation_batches](#array-payment_order_conciliation_batches) |
| `pagination`                         | object| Informações de paginação da consulta.                       | [Objeto pagination](#objeto-pagination) |

### Array payment_order_conciliation_batches

| Campo                                    | Tipo       | Descrição                                                      | Caracteres |
|------------------------------------------|------------|----------------------------------------------------------------|------------|
| `payment_order_conciliation_batch_key`   | uuidv4     | Identificador único do lote de conciliação.                   | 36         |
| `payment_order_conciliation_batch_status`| enumerator | Status do lote de conciliação de ordens de pagamento.          | [Enumeradores payment_order_conciliation_batch_status](#enumeradores-payment_order_conciliation_batch_status) |
| `payment_order_conciliation_batch_type`  | enumerator | Tipo do lote de conciliação de ordens de pagamento.           | [Enumeradores payment_order_conciliation_batch_type](#enumeradores-payment_order_conciliation_batch_type) |
| `account_key`                            | uuidv4     | Chave única de identificação da conta.                        | 36         |
| `total_amount`                           | number     | Valor total do lote de conciliação em reais (R$).              | -          |
| `conciliated_amount`                     | number     | Valor já conciliado do lote em reais (R$).                     | -          |
| `total_payment_orders`                   | integer    | Número total de ordens de pagamento no lote.                   | -          |
| `conciliated_payment_orders`             | integer    | Número de ordens de pagamento já conciliadas no lote.          | -          |
| `reference_date`                         | string     | Data de referência do lote (formato ISO 8601, e.g., "2025-06-13"). | 10         |
| `created_at`                             | string     | Data e hora de criação do lote (formato ISO 8601).             | -          |

### Objeto pagination

| Campo              | Tipo    | Descrição                                      | Caracteres |
|--------------------|---------|------------------------------------------------|------------|
| `page`             | integer | Página atual da consulta.                     | -          |
| `page_size`        | integer | Tamanho da página (número de itens por página). | -          |
| `number_of_pages`  | integer | Número total de páginas disponíveis.          | -          |

### Enumeradores payment_order_conciliation_batch_status

| Enumerador   | Descrição                                   |
|--------------|---------------------------------------------|
| `open`       | Lote de conciliação aberto                 |
| `closed`     | Lote de conciliação fechado                |
| `processing` | Lote de conciliação em processamento       |
| `completed`  | Lote de conciliação concluído              |
| `cancelled`  | Lote de conciliação cancelado              |

### Enumeradores payment_order_conciliation_batch_type

| Enumerador        | Descrição                                   |
|-------------------|---------------------------------------------|
| `fixed_amount`    | Lote de conciliação de valor fixo          |
| `variable_amount` | Lote de conciliação de valor variável      |

STATUS 4XX

Response Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em português",
  "code": "codigo"
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                | Descrição (eng)<br/>`description`                                          | Descrição (ptbr)<br/>`translation`                                 |
|-------------|----------------------|-----------------------------------|----------------------------------------------------------------------------|--------------------------------------------------------------------|
| 400         | QIT000002            | Bad Request                       | Invalid request schema.                                                    | Erro no esquema da requisição.                                     |
| 404         | APX000003            | Conciliation Batch Not Found      | Conciliation batch not found.                                              | Lote de conciliação não encontrado.                                |

---

# Listagem de Pagamentos de uma Conta

URL: /documentation/baas/pix_automatico/conciliacao/listar_payment_orders

## Request

ENDPOINT /account/ ACCOUNT_KEY /payment_order_conciliation_batch/ PAYMENT_ORDER_CONCILIATION_BATCH_KEY /payment_orders
MÉTODO GET

### Query Params

| Campo                  | Tipo       | Descrição                                                                      | Caracteres |
|------------------------|------------|--------------------------------------------------------------------------------|------------|
| `payment_order_status` | enumerador | Filtra pagamentos pelo status (e.g., `processed`, `pending`, `failed`).        | 30         |
| `page`                 | integer    | Número da página a ser retornada (paginação).                                  | -          |
| `page_size`            | integer    | Número de itens por página (paginação).                                        | -          |

## Response

STATUS 200

Response Body

```json
{
  "payment_orders": [
    {
      "payment_order_key": "a1b2c3d4-e5f6-7890-ghij-1234567890kl",
      "payment_order_status": "processed",
      "amount": 150.75,
      "currency": "BRL",
      "transaction_date": "2023-10-05",
      "recipient_data": {
        "name": "Maria Silva",
        "document_number": "12345678900",
        "bank_account": {
          "account_number": "987654",
          "account_digit": "2",
          "account_branch": "1234",
          "ispb": "12345678"
        }
      },
      "pix_key": "maria@example.com",
      "pix_message": "Pagamento ref. Fatura 123",
      "conciliation_id": "uuid-conciliation"
    }
  ],
  "pagination": {
    "page": 1,
    "page_size": 25,
    "number_of_pages": 3
  }
}
```

## Response Body Params

| Campo           | Tipo   | Descrição                                               | Caracteres |
|-----------------|--------|---------------------------------------------------------|------------|
| `payment_orders`| array  | Lista de objetos de pedidos de pagamento.               | [Array payment_orders](#array-payment_orders) |
| `pagination`    | object | Objeto de paginação contendo informações dos resultados. | [Objeto pagination](#objeto-pagination)         |

---

### Array payment_orders

| Campo                 | Tipo       | Descrição                                                               | Caracteres |
|-----------------------|------------|-------------------------------------------------------------------------|------------|
| `payment_order_key`   | uuidv4     | Identificador único do pedido de pagamento.                             | 36         |
| `payment_order_status`| string     | Status do pedido de pagamento (`processed`, `pending`, `failed`, etc.). | 30         |
| `amount`              | number     | Valor do pedido de pagamento em reais (R$).                             | -          |
| `currency`            | string     | Moeda do pagamento.                                                     | 3          |
| `transaction_date`    | string     | Data da transação (formato ISO 8601, e.g., `2023-10-05`).               | 10         |
| `recipient_data`      | object     | Dados do destinatário do pagamento.                                     | [Objeto recipient_data](#objeto-recipient_data) |
| `pix_key`             | string     | Chave Pix do destinatário.                                              | 77         |
| `pix_message`         | string     | Mensagem enviada junto à transação Pix.                                 | 140        |
| `conciliation_id`     | string     | Identificador de conciliação do pagamento.                              | 36         |

---

### Objeto recipient_data

| Campo             | Tipo   | Descrição               | Caracteres |
|-------------------|--------|-------------------------|------------|
| `name`            | string | Nome do destinatário.   | 50         |
| `document_number` | string | CPF ou CNPJ do destinatário. | 14      |
| `bank_account`    | object | Dados da conta bancária do destinatário. | [Objeto bank_account](#objeto-bank_account) |

---

### Objeto bank_account

| Campo           | Tipo   | Descrição                    | Caracteres |
|-----------------|--------|------------------------------|------------|
| `account_number`| string | Número da conta.             | -          |
| `account_digit` | string | Dígito da conta.             | -          |
| `account_branch`| string | Agência.                     | -          |
| `ispb`          | string | ISPB da instituição financeira.| -         |

### Objeto pagination

| Campo            | Tipo    | Descrição                           | Caracteres |
|------------------|---------|-------------------------------------|------------|
| `page`           | integer | Número da página retornada.         | -          |
| `page_size`      | integer | Quantidade de itens por página.     | -          |
| `number_of_pages`| integer | Total de páginas disponíveis.       | 
-          |

### Enumeradores payment_order_status

| Enumerador            | Descrição                                          |
|-----------------------|----------------------------------------------------|
| `pending_conciliation`| Aguardando conciliação.                            |
| `pending`             | Pendente e ainda não processada.                   |
| `accepted`            | Aceita e aguardando pagamento.                     |
| `paid`                | Paga com sucesso.                                  |
| `rejected`            | Rejeitada e não será processada.                   |
| `cancelled`           | Cancelada antes do pagamento.                      |

STATUS 4XX

Response Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em português",
  "code": "codigo"
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                | Descrição (eng)<br/>`description`                                          | Descrição (ptbr)<br/>`translation`                                 |
|-------------|----------------------|-----------------------------------|----------------------------------------------------------------------------|--------------------------------------------------------------------|
| 400         | QIT000002            | Bad Request                       | Invalid request schema.                                                    | Erro no esquema da requisição.                                     |
| 404         | APX000002            | Payment Order Not Found           | Payment order \{payment_order_key\} not found.                             | Pedido de pagamento \{payment_order_key\} não encontrado.           |

---

# Webhook de Criação de Lote de Conciliação de Ordens de Pagamento

URL: /documentation/baas/pix_automatico/conciliacao/webhooks

As notificações via webhook são essenciais para processamento de eventos sobre conciliação de pagamentos no Pix Automático. Este webhook informa sobre a criação de lotes de conciliação de ordens de pagamento.

## Webhook de Criação de Lote de Conciliação

Este webhook é emitido quando um novo lote de conciliação de ordens de pagamento é criado.

:::danger Atenção!
Os webhooks da QI Tech não devem ser mapeados de forma restrita.
Campos adicionais podem ser incluídos aos payloads dos webhooks retornados em nossas APIs.
:::

### Webhook Request Body

Request Body: Jornada 1

```json
{
    "webhook_type": "baas.automatic_pix.payment_order_conciliation_batch.creation",
    "webhook_datetime": "2021-10-22T20:30:23.459Z",
    "data": {
        "payment_order_conciliation_batches": [
            {
                "payment_order_conciliation_batch_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
                "payment_order_conciliation_batch_status": "open",
                "payment_order_conciliation_batch_type": "fixed_amount",
                "account_key": "uuid",
                "total_amount": 0,
                "conciliated_amount": 0,
                "total_payment_orders": 0,
                "conciliated_payment_orders": 0,
                "reference_date": "2025-06-13",
                "created_at": "2025-06-10T20:30:23.459Z"
            },
            {
                "payment_order_conciliation_batch_key": "99fc62fd-b0a0-4604-9bea-475e91a9dc82",
                "payment_order_conciliation_batch_status": "open",
                "payment_order_conciliation_batch_type": "variable_amount",
                "account_key": "uuid",
                "total_amount": 0,
                "conciliated_amount": 0,
                "total_payment_orders": 0,
                "conciliated_payment_orders": 0,
                "reference_date": "2025-06-13",
                "created_at": "2025-06-10T20:30:23.459Z"
            }
        ]
    }
}
```

### Webhook Body Params

| Campo             | Tipo    | Descrição                                                                                     | Caracteres |
|-------------------|---------|-----------------------------------------------------------------------------------------------|------------|
| `webhook_type` *  | string  | Tipo do evento do webhook (`baas.automatic_pix.payment_order_conciliation_batch.creation`).   | 100        |
| `webhook_datetime` * | string | Data e hora que o webhook foi gerado (formato ISO 8601).                                     | -          |
| `data` *          | Object  | Objeto contendo detalhes dos lotes de conciliação.                                            | [Objeto data](#objeto-data)                          |

---

### Objeto data

| Campo                                 | Tipo  | Descrição                                                                         | Caracteres |
|---------------------------------------|-------|-----------------------------------------------------------------------------------|------------|
| `payment_order_conciliation_batches` * | array | Lista de lotes de conciliação criados.                                            | [Array payment_order_conciliation_batches](#array-payment_order_conciliation_batches) |

### Array payment_order_conciliation_batches

| Campo                                  | Tipo    | Descrição                                                                | Caracteres |
|----------------------------------------|---------|--------------------------------------------------------------------------|------------|
| `payment_order_conciliation_batch_key` | string  | Chave única do lote de conciliação.                                      | 36         |
| `payment_order_conciliation_batch_status` | string | Status do lote de conciliação (`open`).                                  | -          |
| `payment_order_conciliation_batch_type` | string | Tipo do lote de conciliação (`fixed_amount`, `variable_amount`).         | -          |
| `account_key`                          | uuidv4  | Chave de identificação da conta associada ao lote.                       | 36         |
| `total_amount`                         | number  | Valor total do lote de conciliação.                                      | -          |
| `conciliated_amount`                   | number  | Valor total conciliado no lote.                                          | -          |
| `total_payment_orders`                 | number  | Número total de ordens de pagamento no lote.                             | -          |
| `conciliated_payment_orders`           | number  | Número de ordens de pagamento conciliadas no lote.                       | -          |
| `reference_date`                       | string  | Data de referência do lote (formato YYYY-MM-DD).                         | 10         |
| `created_at`                           | string  | Data de criação do lote (formato ISO 8601).                              | -          |

---

# FAQ - Pix Automático

URL: /documentation/baas/pix_automatico/faq

{`
.faq-container {
  margin: 30px 0;
}

.faq-section {
  margin-bottom: 40px;
}

.faq-section-title {
  font-size: 20px;
  font-weight: 700;
  color: #0f172a;
  margin-bottom: 24px;
  padding-bottom: 12px;
  border-bottom: 2px solid #e5e7eb;
}

.faq-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}

.faq-card {
  background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
  border: 2px solid #1e40af;
  border-radius: 12px;
  padding: 24px;
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
  width: 100%;
}

.faq-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
  background: linear-gradient(to bottom, rgb(40, 85, 232), #0f172a);
  transition: width 0.3s ease;
}

.faq-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  border-color: #1e3a8a;
}

.faq-card:hover::before {
  width: 6px;
}

.faq-question {
  font-size: 18px;
  font-weight: 700;
  color: #0f172a;
  margin-bottom: 16px;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  line-height: 1.4;
}

.faq-question::before {
  content: '';
  font-size: 20px;
  flex-shrink: 0;
  margin-top: 2px;
}

.faq-answer {
  font-size: 14px;
  line-height: 1.7;
  color: #475569;
  margin: 0;
}

.faq-answer ul {
  margin: 12px 0;
  padding-left: 20px;
}

.faq-answer li {
  margin-bottom: 8px;
  line-height: 1.6;
}

.faq-answer strong {
  color: #0f172a;
  font-weight: 700;
}

@media (max-width: 768px) {
  .faq-grid {
    grid-template-columns: 1fr;
  }
}
`}

Perguntas sobre Recorrências
  
Uma recorrência precisa ter vigência ou quantidade de pagamentos pré-definidos?
A vigência da recorrência é um parâmetro definido na relação entre o recebedor e o pagador. A autorização pode ser concedida por período indefinido , ou alternativamente ter pré-definidos o número de cobranças ou a data final de vigência .

A data escolhida para o débito poderá ser qualquer uma dentro do ciclo?
Sim, desde que respeitada a antecedência mínima de 2 dias entre a data do agendamento e a data prevista para a liquidação, que deverá ser anterior à data de início do próximo ciclo .

Perguntas sobre Jornadas de Autorização
  
Qual a diferença principal entre as jornadas com QR Code?
A diferença principal está na experiência do usuário e no momento da autorização da recorrência. A Jornada 2 autoriza apenas a recorrência futura, sem processar pagamento na hora. A Jornada 3 permite o primeiro pagamento imediato junto com a autorização da recorrência - o pagamento efetuado é o que ativa a recorrência. A Jornada 4 funciona de forma diferente: o usuário lê um QR Code como se fosse um PIX normal, e após realizar o pagamento ou agendamento, o sistema oferece a opção de pix automático para ele. A Jornada 4 é a única que suporta recorrências de valor variável e oferece mais flexibilidade na experiência do usuário.

Se, por meio da jornada 3, ocorrer sucesso na liquidação e insucesso na autorização, será necessário o cancelamento do pagamento, já que o fluxo prevê o sucesso de ambos?
Fica a critério do usuário recebedor . Ele poderá devolver o Pix liquidado e viabilizar uma nova jornada 3 ou poderá oferecer outra jornada de autorização do Pix Automático com a finalidade exclusiva de viabilizar a autorização para pagamentos subsequentes.

Perguntas Frequentes sobre Lotes de Conciliação
  
O que são lotes de conciliação?
Os lotes de conciliação são agrupamentos de pagamentos que são criados automaticamente pelo sistema para facilitar a conciliação e controle dos pagamentos do Pix Automático. Eles servem como uma forma de organizar e rastrear os pagamentos por data de liquidação e tipo de recorrência.

Como os pagamentos são agrupados em lotes?
Os pagamentos são agrupados automaticamente em lotes baseados em critérios como:
Data de liquidação prevista para o pagamento
Tipo de recorrência: fixed_amount ou variable_amount
Conta específica
Requester específico

Quando um lote é criado?
Os lotes são criados automaticamente pelo sistema quando há ordens de pagamento que precisam ser processadas para determinada data de pagamento. O sistema agrupa essas ordens que possuem liquidação no mesmo dia em lotes , para facilitar o processamento, visualização e conciliação.

Quando um lote é fechado?
Um lote é fechado sempre três dias antes da data de referência de pagamento daquele lote, pois as ordens de pagamento precisam ser enviadas com até no máximo dois dias de antecedência referente à data de pagamento daquele ciclo. Ou seja, quando chega a data do seu fechamento.
O sistema calcula automaticamente essa data baseado na data de liquidação do pagamento menos 3 dias, garantindo que as instruções de pagamento sejam enviadas dentro do prazo regulamentar estabelecido pelo Banco Central.

Posso consultar pagamentos de lotes fechados?
Sim, você pode consultar pagamentos de lotes fechados através dos endpoints de consulta de lotes e listagem de pagamentos de um lote específico.

Perguntas sobre Ordens de Pagamento e Tentativas
  
Qual a diferença entre ordem de pagamento e tentativa de pagamento?
Ordem de Pagamento: É a instrução criada pelo sistema para realizar um pagamento específico em uma data determinada.
Tentativa de Pagamento: É cada execução individual dessa ordem de pagamento, podendo haver múltiplas tentativas se a primeira falhar.

Quantas tentativas de pagamento são realizadas?
O sistema realiza até 4 tentativas de pagamento por ordem de pagamento. Se todas as tentativas falharem, a ordem de pagamento é marcada como rejeitada.

O que acontece quando todas as tentativas falham?
Quando todas as 4 tentativas de pagamento falham, a ordem de pagamento tem seu status alterado para "rejected" e não serão realizadas mais tentativas para o pagamento desse ciclo.

Como funcionam as retentativas?
As retentativas são executadas automaticamente pelo sistema de acordo com os dias de retentativas configurados pelo recebedor na hora da criação da recorrência. Cada tentativa que falha gera um webhook de notificação para que você possa acompanhar o status desse pagamento.

Perguntas sobre Cancelamentos
  
Posso cancelar uma ordem de pagamento específica?
Sim, você pode cancelar uma ordem de pagamento específica através do endpoint de cancelamento de ordem de pagamento, desde que ela ainda não tenha sido liquidada.

Qual a diferença entre cancelar uma recorrência e cancelar uma ordem de pagamento?
Cancelar Recorrência: Cancela toda a recorrência e todas as ordens de pagamento futuras associadas a ela.
Cancelar Ordem de Pagamento: Cancela apenas a ordem de pagamento específica daquele ciclo, sem afetar a recorrência ou outras ordens.

Perguntas sobre Simulação
  
Para que servem os cenários de simulação?
Os cenários de simulação servem para testar o fluxo completo do Pix Automático no ambiente sandbox, simulando as respostas e interações do PSP Pagador (Provedor de Serviços de Pagamento).

Como usar adequadamente os cenários de simulação?
Os cenários devem ser executados em sequência para simular o fluxo completo:
Criar uma recorrência
Processar ordens de pagamento
Atualizar datas de execução (sandbox)
Processar tentativas de pagamento
Simular PIX de entrada
Simular tentativas rejeitadas (se necessário)

Perguntas sobre Webhooks
  
Quais webhooks são enviados pelo Pix Automático?
O sistema envia webhooks para diversos eventos, incluindo:
Mudanças de status de recorrências
Mudanças de status de ordens de pagamento
Mudanças de status de tentativas de pagamento
Criação e fechamento de lotes de conciliação

Perguntas sobre Benefícios e Comparações
  
Quais são os principais benefícios para os recebedores aderirem ao Pix Automático relativamente aos demais meios de pagamento existentes?
O Pix Automático oferece uma nova opção aos usuários recebedores para o recebimento e gestão das cobranças periódicas recorrentes, utilizando a infraestrutura do Pix. Dentre as vantagens, destacam-se: aumento da base de clientes , menor custo operacional por não precisar firmar convênios com mais de uma instituição, diversificação da forma de pagamento , oferecendo o Pix como alternativa aos clientes que usam cartão ou boleto, além da redução da inadimplência e mais agilidade no gerenciamento de seus recebimentos.

Qual a principal diferença entre o débito automático em conta (tradicional) e o Pix Automático?
Com foco na experiência tanto dos usuários recebedores, quanto dos pagadores, o Pix Automático apresenta novas funcionalidades para gerenciamento de autorizações e agendamentos recorrentes . Além disso, qualquer participante do Pix pode oferecer o produto a seus clientes, ampliando o acesso de cidadãos e empresas que hoje não são atendidos pelo serviço de débito automático, ofertado de forma mais restrita apenas entre instituições bancárias.

---

# Introdução ao Pix Automático

URL: /documentation/baas/pix_automatico/introducao

O **Pix Automático** é uma solução inovadora que automatiza pagamentos recorrentes de forma simplificada, eficiente e segura. Ideal para negócios que trabalham com assinaturas, mensalidades ou cobranças recorrentes de contas, o Pix Automático evolui dos métodos tradicionais ao eliminar a necessidade de interação manual, reduzir inadimplências e facilitar a gestão financeira, atendendo tanto empresas quanto consumidores.

{`
.hero-section {
  background: linear-gradient(135deg, #eff6ff 0%, #ffffff 100%);
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  padding: 24px;
  margin: 24px 0 32px 0;
}

.hero-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 16px;
  margin-top: 20px;
}

.hero-item {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 16px;
}

.hero-item strong {
  display: block;
  color: #1e40af;
  font-size: 14px;
  margin-bottom: 6px;
}

.hero-item p {
  margin: 0;
  font-size: 13px;
  color: #475569;
  line-height: 1.5;
}

.flow-section {
  margin: 32px 0;
}

.flow-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  margin-top: 20px;
}

.flow-step-card {
  border-radius: 12px;
  padding: 18px;
  color: #ffffff;
  min-height: 100px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.flow-step-card h4 {
  margin: 0;
  font-size: 15px;
  font-weight: 700;
}

.flow-step-card p {
  margin: 0;
  font-size: 13px;
  opacity: 0.95;
  line-height: 1.5;
}
`}

Como funciona na prática?
  
Para quem?
Ideal para empresas que oferecem assinaturas, serviços recorrentes, mensalidades escolares, planos de saúde e similares.
    
O que preciso fazer?
O recebedor cria uma recorrência e o pagador autoriza uma única vez. Depois, os pagamentos acontecem automaticamente em cada ciclo.
    
Vantagens principais
Reduz atrasos, elimina necessidade de lembrar datas de pagamento e simplifica a gestão financeira para ambas as partes.

### Fluxo em 4 etapas simples

1. Criar Recorrência
O recebedor define as características da cobrança recorrente (valor, periodicidade, data de início).
    
2. Autorizar
O pagador autoriza uma única vez no aplicativo do banco, escolhendo uma das 4 jornadas disponíveis.
    
3. Agendar
A cada ciclo, o recebedor envia a instrução de pagamento e o banco do pagador agenda automaticamente.
    
4. Liquidar
Na data agendada, o débito e crédito são processados automaticamente na conta de cada parte.

---

## Funcionalidades da API do Pix Automático

A QI Tech, por meio de sua **API Automatic Pix**, capacita a integração de pagamentos automáticos usando o Pix, com base em autorizações prévias do pagador ao recebedor. O sistema abrange as seguintes responsabilidades:

{`
.features-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
  margin: 30px 0;
}

.feature-card {
  background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
  border: 2px solid #e5e7eb;
  border-radius: 12px;
  padding: 24px;
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
}

.feature-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
  background: linear-gradient(to bottom, #3b82f6, #1e40af);
  transition: width 0.3s ease;
}

.feature-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  border-color: #3b82f6;
}

.feature-card:hover::before {
  width: 6px;
}

.feature-title {
  font-size: 16px;
  font-weight: 700;
  color: #1e40af;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.feature-icon {
  font-size: 20px;
}

.feature-description {
  font-size: 14px;
  line-height: 1.6;
  color: #475569;
  margin: 0;
}

.recurrence-types {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 24px;
  margin: 30px 0;
}

.recurrence-card {
  background: #ffffff;
  border-radius: 16px;
  padding: 28px;
  border: 2px solid;
  position: relative;
  transition: all 0.3s ease;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.recurrence-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.12);
}

.recurrence-card.fixed {
  border-color:rgb(11, 63, 250);
  background: linear-gradient(135deg, #ffffff 0%,rgb(235, 240, 255) 100%);
}

.recurrence-card.variable {
  border-color:rgb(11, 63, 250);
  background: linear-gradient(135deg, #ffffff 0%,rgb(235, 240, 255) 100%);
}

.recurrence-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}

.recurrence-badge {
  padding: 6px 14px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.recurrence-card.fixed .recurrence-badge {
  background:rgb(16, 64, 185);
  color: #ffffff;
}

.recurrence-card.variable .recurrence-badge {
  background:rgb(16, 64, 185);
  color: #ffffff;
}

.recurrence-title {
  font-size: 20px;
  font-weight: 700;
  color: #0f172a;
  margin: 0;
}

.recurrence-description {
  font-size: 15px;
  line-height: 1.7;
  color: #475569;
  margin-bottom: 16px;
}

.recurrence-detail {
  background: rgba(255, 255, 255, 0.7);
  border-left: 3px solid;
  padding: 12px 16px;
  border-radius: 8px;
  font-size: 13px;
  line-height: 1.6;
  color: #64748b;
}

.recurrence-card.fixed .recurrence-detail {
  border-left-color:rgb(203, 15, 68);
}

.recurrence-card.variable .recurrence-detail {
  border-left-color:rgb(203, 15, 68);
}

.periodicity-container {
  background: linear-gradient(135deg, #eff6ff 0%, #ffffff 100%);
  border: 2px solid #e5e7eb;
  border-radius: 16px;
  padding: 28px;
  margin: 30px 0;
}

.periodicity-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 16px;
  margin-top: 20px;
}

.periodicity-item {
  background: #ffffff;
  padding: 16px;
  border-radius: 10px;
  text-align: center;
  border: 2px solid #e5e7eb;
  transition: all 0.3s ease;
}

.periodicity-item:hover {
  border-color: #3b82f6;
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(59, 130, 246, 0.15);
}

.periodicity-label {
  font-size: 14px;
  font-weight: 600;
  color: #1e40af;
  margin: 0;
}

.journeys-container {
  margin: 30px 0;
}

.journey-card {
  background: #ffffff;
  border: 2px solid #e5e7eb;
  border-radius: 12px;
  padding: 24px;
  margin-bottom: 16px;
  transition: all 0.3s ease;
  border-left: 5px solid;
}

.journey-card:hover {
  transform: translateX(5px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
}

.journey-card.journey-1 {
  border-left-color: #3b82f6;
}

.journey-card.journey-2 {
  border-left-color: #10b981;
}

.journey-card.journey-3 {
  border-left-color: #f59e0b;
}

.journey-card.journey-4 {
  border-left-color: #ec4899;
}

.journey-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.journey-number {
  background: linear-gradient(135deg, #1e40af, #3b82f6);
  color: #ffffff;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 16px;
  flex-shrink: 0;
}

.journey-card.journey-1 .journey-number {
  background: linear-gradient(135deg, #1e40af, #3b82f6);
}

.journey-card.journey-2 .journey-number {
  background: linear-gradient(135deg, #059669, #10b981);
}

.journey-card.journey-3 .journey-number {
  background: linear-gradient(135deg, #d97706, #f59e0b);
}

.journey-card.journey-4 .journey-number {
  background: linear-gradient(135deg, #db2777, #ec4899);
}

.journey-title {
  font-size: 18px;
  font-weight: 700;
  color: #0f172a;
  margin: 0;
}

.journey-description {
  font-size: 14px;
  line-height: 1.7;
  color: #475569;
  margin: 0;
  padding-left: 48px;
}

.cancellation-info {
  background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
  border: 2px solid #e5e7eb;
  border-radius: 16px;
  padding: 28px;
  margin: 30px 0;
}

.cancellation-list {
  list-style: none;
  padding: 0;
  margin: 20px 0 0 0;
}

.cancellation-item {
  background: #ffffff;
  padding: 16px 20px;
  border-radius: 10px;
  margin-bottom: 12px;
  border-left: 4px solid #3b82f6;
  display: flex;
  gap: 12px;
}

.cancellation-item:last-child {
  margin-bottom: 0;
}

.cancellation-label {
  font-weight: 700;
  color: #1e40af;
  min-width: 180px;
}

.cancellation-text {
  color: #475569;
  flex: 1;
  margin: 0;
}

.advantages-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
  margin: 30px 0;
}

.advantage-card {
  background: linear-gradient(135deg, #ffffff 0%, #f0fdf4 100%);
  border: 2px solid #d1fae5;
  border-radius: 12px;
  padding: 20px;
  transition: all 0.3s ease;
}

.advantage-card:hover {
  transform: translateY(-4px);
  border-color: #10b981;
  box-shadow: 0 10px 25px rgba(16, 185, 129, 0.15);
}

.advantage-text {
  font-size: 14px;
  line-height: 1.7;
  color: #475569;
  margin: 0;
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.advantage-icon {
  color: #10b981;
  font-size: 18px;
  flex-shrink: 0;
  margin-top: 2px;
}

@media (max-width: 768px) {
  .features-grid,
  .recurrence-types,
  .advantages-grid {
    grid-template-columns: 1fr;
  }

  .periodicity-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .journey-description {
    padding-left: 0;
    margin-top: 12px;
  }
}
`}

Criação e Gestão
Facilita a criação, gestão e cancelamento de recorrências de forma simplificada e eficiente.

Orquestração de Autorizações
Garante que os pagamentos recorrentes do Pix Automático sejam autorizados corretamente pelo pagador.

Agendamento e Liquidação
Automatiza completamente os ciclos de pagamento, desde o agendamento até a liquidação.

Logs e Auditorias
Mantém registro completo de todas as operações para conformidade com as regras do Bacen.

---

## Tipos de Recorrência

Valor Fixo
Recorrência de Valor Fixo
      Na modalidade de valor fixo, o pagador autoriza a recorrência de pagamentos periódicos de valores fixos, previamente estabelecidos na criação da recorrência.
Ideal para: Assinaturas mensais, mensalidades escolares, planos de serviços com valores fixos.

Valor Variável
Recorrência de Valor Variável
      Na modalidade de valor variável, o pagador e o recebedor concordam com uma faixa de valores permitidos para cada cobrança recorrente. O recebedor define o valor mínimo e o pagador define o valor máximo.
Importante: O recebedor deve conciliar a ordem de pagamento com o valor a ser cobrado no período de 10 a 3 dias antes da data da cobrança.
Ideal para: Modelos baseados em consumo, contas de serviços variáveis, pagamentos ajustáveis ao longo do tempo.

---

## Periodicidade das Recorrências

Atualmente, é possível realizar a criação de recorrências com as seguintes periodicidades:

Periodicidades Disponíveis
Semanal
Mensal
Trimestral
Semestral
Anual

---

## Jornadas de Autorização do Pix Automático

O Pix Automático suporta várias jornadas de autorização para atender a diferentes cenários de negócio:

1
Jornada 1: Push Notification
      Notificação via app para confirmação da recorrência, sem necessidade de QR Code. O pagador recebe uma notificação e autoriza diretamente no aplicativo.

2
Jornada 2: QR Code - Recorrência
      Autorização com QR Code contendo apenas dados da recorrência. O pagador escaneia o QR Code e autoriza apenas a recorrência futura.

3
Jornada 3: QR Code + Primeiro Pagamento
      QR Code permitindo o primeiro pagamento imediato e a configuração de recorrência simultaneamente. Ideal para casos onde deseja-se receber o primeiro pagamento e criar a recorrência na mesma transação.

4
Jornada 4: QR Code Completo
      QR Code incluindo dados para pagamento/agendamento imediato e oferta de pix automático para aquela cobrança, após pagamento ou agendamento. Permite pagamento (ou agendamento) e oferta do pix automático em uma única operação.

:::info Documentação das Jornadas
Para detalhes completos sobre como implementar cada jornada, consulte:
- [Jornada 1 - Push Notification](./recebedor/journey_one.md)
- [Jornada 2 - QR Code (apenas recorrência)](./recebedor/journey_two.md)
- [Jornada 3 - QR Code (com primeiro pagamento)](./recebedor/journey_three.md)
- [Jornada 4 - QR Code (com primeiro pagamento e valores variáveis)](./recebedor/journey_four.md)
:::

---

## Cancelamento de Recorrência

Regras de Cancelamento
  
Solicitação de Cancelamento
Pode ser feita tanto pelo usuário pagador quanto pelo recebedor de forma unilateral, sem necessidade de aprovação mútua.
Impacto do Cancelamento
A autorização e a recorrência são canceladas simultaneamente, bloqueando novas instruções de pagamento automaticamente.
Processo de Cancelamento
O usuário pagador atualiza e comunica o status de cancelamento ao usuário recebedor, que deve ser informado imediatamente.
Efeitos Imediatos
Cancela automaticamente todos os agendamentos associados, exceto aqueles previstos para liquidação no próprio dia do cancelamento.
Iniciativa do Recebedor
O recebedor pode cancelar a recorrência por decisão própria ou sob solicitação do pagador através da API.

---

## Vantagens e Potencial

O Pix Automático oferece diversas vantagens, como a centralização de autorizações e pagamentos, incentivo à digitalização financeira, e eficiência em soluções de débito automático, suprindo lacunas dos métodos tradicionais de pagamento.

✓
Redução do risco de atrasos e da necessidade de lembrar datas de vencimento, com eliminação de etapas manuais

✓
Centralização do controle de autorizações e pagamentos em uma única plataforma

✓
Incentivo à digitalização dos processos financeiros e modernização do relacionamento com clientes

✓
Simplificação das operações para estabelecimentos e clientes finais

✓
Eficiência em soluções de débito automático com tecnologia Pix

✓
Preenchimento de lacunas existentes nos instrumentos tradicionais de pagamento

---

## Simulação de Cenários

Durante o desenvolvimento e testes da integração com o Pix Automático, é essencial validar todos os fluxos antes de utilizar o ambiente de produção. A **Simulação de Cenários** fornece um ambiente sandbox completo que permite testar todo o ciclo de vida de uma recorrência, desde a criação até a liquidação dos pagamentos.

### O que é a Simulação de Cenários?

A Simulação de Cenários é uma ferramenta que permite **testar o fluxo completo do Pix Automático** no ambiente sandbox, simulando as respostas da SPI (Sistema de Pagamentos Instantâneos) sem realizar transações reais. Ela abrange:

- **Criação e aprovação de recorrências** utilizando as 4 jornadas disponíveis
- **Processamento de ordens de pagamento** e criação de lotes de conciliação
- **Simulação de tentativas de pagamento** com diferentes resultados (sucesso ou rejeição)
- **Teste de fluxos de cancelamento** e gestão de recorrências

### Quando usar?

A simulação é recomendada para:

- **Validação de integração**: Testar se sua aplicação está corretamente integrada com a API
- **Desenvolvimento**: Desenvolver e debugar sua implementação sem custos
- **Testes de fluxos**: Validar diferentes cenários (pagamentos bem-sucedidos, rejeições, cancelamentos)
- **Treinamento**: Familiarizar sua equipe com os fluxos do Pix Automático antes de ir para produção

### Como usar?

O processo de simulação segue uma sequência de passos que replica o fluxo real:

1. **Criar uma recorrência** usando uma das jornadas de autorização
2. **Aprovar a recorrência** via mock, simulando a confirmação do pagador
3. **Processar ordens de pagamento** que criam automaticamente os lotes de conciliação
4. **Consultar e conciliar** as ordens (obrigatório para valores variáveis)
5. **Atualizar data de execução** para acelerar os testes no sandbox
6. **Processar tentativas** de pagamento
7. **Simular o resultado**: Pix de entrada (sucesso) ou rejeição

:::tip Documentação Completa
Para um guia passo a passo detalhado sobre como usar a simulação de cenários, incluindo todos os endpoints disponíveis e exemplos de requisições, consulte:

**[📋 Guia de Simulação de Cenários](./recebedor/simulacao.md)**
:::

### Benefícios da Simulação

✓
Testes sem custos ou riscos, em ambiente controlado e isolado

✓
Validação completa de todos os fluxos antes da produção

✓
Aceleração de datas e processos para testes mais rápidos

✓
Simulação de diferentes cenários (sucessos, falhas, cancelamentos)

---

# Aceitar recorrência de pagamento

URL: /documentation/baas/pix_automatico/movimentacoes/aceitar_recorrencia

## Request

ENDPOINT /account/ ACCOUNT_KEY /incoming_recurrence/ INCOMING_RECURRENCE_KEY /approve
MÉTODO PATCH

### Request Path Params

| Campo       | Tipo   | Descrição                      | Caracteres |
|-------------|--------|--------------------------------|------------|
| `account_key` * | uuid4  | Chave única de identificação da conta. | 36 |
| `incoming_recurrence_key` * | uuid4  | Chave única de identificação da autorização                                    | 36 |

### Request Body

Request Body: Aprovar recorrência de valor fixo

```json
{
  "incoming_recurrence_status": "active"
}
```

Request Body: Aprovar recorrência de valor variável com limite máximo

```json
{
  "incoming_recurrence_status": "active",
  "maximum_transaction_amount": 500.00
}
```

### Body Params

| Campo                   | Tipo       | Descrição                                                                                                                                                                                                                                        | Caracteres |
|-------------------------|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|
| `incoming_recurrence_status` *           | string     | Identificador de status da recorrência Pix. Deve ser "active" para ativar a recorrência                                                                                                                                                                                                | 20        |
| `maximum_transaction_amount`           | number     | Valor máximo que o usuário aceita pagar por transação (opcional, apenas para recorrências de valor variável)                                                                                                                                                                                                | 10        |

:::info Valor Máximo para Recorrências Variáveis
O campo `maximum_transaction_amount` é **opcional** e deve ser usado apenas para **recorrências de valor variável**. Ele permite que o pagador defina o valor máximo que aceita pagar por transação dentro da recorrência autorizada.
:::
## Response

STATUS 200

Response Body: Recorrência ativada

```json
{
  "incoming_recurrence_key": "cfa32109-a6dd-4304-94db-03a7b6d92a47",
  "incoming_recurrence_status": "active",
  "created_at": "2025-05-22T20:30:23.459Z",
  "updated_at": "2025-05-22T20:39:23.459Z"
}
```

STATUS 4XX

Response Body

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo"
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`           | Descrição (eng)<br/>`Description`                                   | Descrição (ptbr)<br/>`translation`                                |
|-------------|----------------------|------------------------------|---------------------------------------------------------------------|-------------------------------------------------------------------|
| 400         | QIT000001            | Bad Request	            | Schema Error                                      | Erro de Schema                       |
 403         | APX000025            | User is not allowed to do this transaction        | User is not allowed to do this transaction | Usuário não tem autorização para fazer essa transação |
| 403         | APX000017            | Requester not allowed to access this endpoint        | Requester has no permission to perform pix transfers on this endpoint | Requester não possui permissão de realizar transações pix através deste endpoint |
| 404         | APX000020            | Account not Found             | Account was not found | Conta \{account_key\} não foi encontrada. |
| 404         | APX000001            | Recurrence not Found        | Recurrence was not found | Recorrência \{incoming_recurrence_key\} não foi encontrada |

---

# Cancelar a recorrência

URL: /documentation/baas/pix_automatico/movimentacoes/cancelar_recorrencia

## Request

ENDPOINT /account/ ACCOUNT_KEY /incoming_recurrence/ INCOMING_RECURRENCE_KEY /cancel
MÉTODO PATCH

### Request Path Params

| Campo       | Tipo   | Descrição                      | Caracteres |
|-------------|--------|--------------------------------|------------|
| `account_key` * | uuid4  | Chave única de identificação da conta. | 36 |
| `incoming_recurrence_key` * | uuid4  | Chave única de identificação da autorização                                    | 36 |

### Request Body

Request Body: Cancelar uma recorrência

```json
{
  "incoming_recurrence_status": "cancelled",
}
```

### Body Params

| Campo                   | Tipo       | Descrição                                                                                                                                                                                                                                        | Caracteres |
|-------------------------|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|
| `incoming_recurrence_status` *           | string     | Identificador de status da recorrência Pix.                                                                                                                                                                                                | cancelled        |
## Response

STATUS 200

Response Body: Recorrência cancelada

```json
{
  "incoming_recurrence_key": "cfa32109-a6dd-4304-94db-03a7b6d92a47",
  "incoming_recurrence_status": "cancelled",
  "created_at": "2025-05-22T20:30:23.459Z",
  "updated_at": "2025-05-22T20:39:23.459Z"
}
```

STATUS 4XX

Response Body

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo"
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`           | Descrição (eng)<br/>`Description`                                   | Descrição (ptbr)<br/>`translation`                                |
|-------------|----------------------|------------------------------|---------------------------------------------------------------------|-------------------------------------------------------------------|
| 400         | QIT000001            | Bad Request	            | Schema Error                                      | Erro de Schema                       |
 403         | APX000025            | User is not allowed to do this transaction        | User is not allowed to do this transaction | Usuário não tem autorização para fazer essa transação |
| 403         | APX000017            | Requester not allowed to access this endpoint        | Requester has no permission to perform pix transfers on this endpoint | Requester não possui permissão de realizar transações pix através deste endpoint |
| 404         | APX000020            | Account not Found             | Account was not found | Conta \{account_key\} não foi encontrada. |
| 404         | APX000001            | Recurrence not Found        | Recurrence was not found | Recorrência \{incoming_recurrence_key\} não foi encontrada |

---

# Consultar Recorrência

URL: /documentation/baas/pix_automatico/movimentacoes/consultar_recorrencia

## Consultar recorrência Pix por incoming_recurrency_key

### Request

ENDPOINT /account/ ACCOUNT_KEY /incoming_recurrence/ INCOMING_RECURRENCE_KEY
MÉTODO GET

### Path Params

| Campo                      | Tipo       | Descrição                                             | Caracteres                                                                  |
|----------------------------|------------|-------------------------------------------------------|-----------------------------------------------------------------------------|
| `account_key` *            | uuid4     | Chave única de identificação da conta QI.             | 36                                                                          |
| `incoming_recurrency_key` *       | uuid4     | Chave única de identificação da recorrência de Pix automático.    | 36                                                                          |

### Response

STATUS 200

Response Body: Consulta da recorrência

```json
{
  "incoming_recurrence_key": "c2f3eefa-1b8e-4d5f-9b9d-123456789abc",
  "incoming_recurrence_status": "pending_confirmation",
  "request_control_key": "e04197f6-433e-48d2-8a8e-9258a70aba0b",
  "transaction_amount": "150.00",
  "periodicity": "monthly",
  "journey_type": "journey_one",
  "pix_transfer_type": "key",
  "end_to_end_id": "E1234567890123456789012",
  "start_date": "2025-06-01",
  "end_date": "2026-06-01",
  "next_execution_date": "2025-07-01",
  "receiver_conciliation_id": "rec-conc-789",
  "target_pix_key": "receiver@bank.com.br",
  "payer_document_number": "12345678900",
  "pix_message": "Pagamento mensal de serviço",
  "created_at": "2025-05-22T10:00:00Z",
  "updated_at": "2025-05-22T12:00:00Z",
}

```

| Campo                          | Tipo    | Descrição                                                                                                                                                                                                                                                                                     | Max. Caracteres                                                   |
|--------------------------------|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|
| `incoming_recurrence_key`  | uuid4    | Chave única de identificação da autorização                                                                                                                                                              | 36         | 
| `incoming_recurrence_status`               | string  |Identificador de status da recorrência                                                                                                                                         | [Enumerador incoming_recurrence_status](#enumerador-incoming_recurrence_status)                                                           |
| `request_control_key`  | uuid4     | Chave única de identificação da request utilizada pelo cliente                                                                                                                                                              | 36         | 
| `transaction_amount`   | number     | Valor da transferência para ocorrência de valor fixo.                                                                                                                                                                                                                         | 10         |
| `minimum_transaction_amount`   | number     | Valor mínimo da transferência para ocorrência de valor variável.                                                                                                                                                                                                                         | 10         |
| `maximum_transaction_amount`   | number     | Valor máximo da transferência para ocorrência de valor valor variável.                                                                                                                                                                                                                         | 10         |
| `periodicity`    | enumerator | Tipo da periodicidade associada ao pagamento                                                                                                                                           | [Enumeradores periodicity](#enumeradores-periodicity)     |
| `journey_type`    | enumerator | Tipo da jornada de solicitação                                                                                                                                                    | [Enumeradores journey_type](#enumeradores-journey_type)     |
| `pix_transfer_type`    | enumerator | Tipo do pix a ser realizado                                                                                                                                                   | [Enumeradores pix_transfer_type](#enumeradores-pix_transfer_type)     |
| `end_to_end_id`        | string     | Chave de idempotência de uma transação Pix dentro do SPI (Sistema de Pagamento Instantâneo). Esta chave é retornada na consulta de chave Pix. | 32 |
| `start_date`    | string | Data de ínicio da recorrência                                                                                                                                                         | -      |
| `end_date`   | string | Data de término da recorrência, para os casos de tempo indeterminado, enviar como null                                                                                                                        
| `next_execution_date`    | string | Data de execução da próxima transação da recorrência                                                                                                                                                      | -      |
| `receiver_conciliation_id` | string     | Identicação de conciliação do recebedor. | 35                                        |
| `target_pix_key`       | string     | Chave pix da conta da transação.                                                                                                                                                                                                    | 100        |
| `payer_document_number`       | string     | Número de documento do pagador da transação transação.                                                                                                                                                                                                    | 14        |
| `pix_message`           | string     | Mensagem a ser enviada junto à transferência Pix.                                                                                                                                                                                                | 140        |
| `created_at`              | string  | Horário da criação da solicitação de recorrência                                                                                                                                       | -          
| `updated_at`              | string  | Horário de atualização da solicitação de recorrência                                                                                                                                       | -                                  

### Enumerador incoming_recurrence_status

| Enumerador           | Descrição           |
|----------------------|---------------------|
| `pending_confirmation` | Recorrência pendente de confirmação      |
| `active`   | Recorrência ativa       |
| `cancelled`   | Recorrência cancelada      |
| `suspended`  | Recorrência suspensa |
| `expired`  | Recorrência expirada |

### Enumeradores periodicity
| Enumerador       | Descrição          |
|------------------|--------------------|
| `weekly` | Recorrência semanal |
| `monthly` | Recorrência mensal  |
| `quarterly` | Recorrência trimestral     |
| `semiannual` | Recorrência semestral     |
| `annual` | Recorrência anual      |

### Enumeradores journey_type
| Enumerador       | Descrição          |
|------------------|--------------------|
| `journey_one` | Solicitação de autorização mediante uma notificação no aplicativo |
| `jouney_two` | Solicitação de autorização mediante a leitura de um QR Code  |
| `journey_three` | Autorização de recorrência por meio de um pix imediato mediante leitura de um QR Code     |
| `journey_four` | Pagamento ou agendamento de um pix com uma solicitação de autorização da recorrência em sequência      |

### Enumeradores pix_transfer_type

| Enumerador          | Descrição                                |
|---------------------|------------------------------------------|
| `manual`          | Pix utilizando os dados da conta destino |
| `key`             | Pix utilizando uma chave pix             |
| `static_qr_code`  | Pix utilizando um QR code estático       |
| `dynamic_qr_code` | Pix utilizando um QR code dinâmico       |

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                          | Descrição (eng)<br/>`Description`                   | Descrição (ptbr)<br/>`translation`                                            |
|-------------|----------------------|---------------------------------------------|-----------------------------------------------------|-------------------------------------------------------------------------------|
 403         | APX000025            | User is not allowed to do this transaction        | User is not allowed to do this transaction | Usuário não tem autorização para fazer essa transação |
| 403         | APX000017            | Requester not allowed to access this endpoint        | Requester has no permission to perform pix transfers on this endpoint | Requester não possui permissão de realizar transações pix através deste endpoint |
| 404         | APX000020            | Account not Found             | Account was not found | Conta \{account_key\} não foi encontrada. |
| 404         | APX000001            | Recurrence not Found        | Recurrence was not found | Recorrência \{incoming_recurrence_key\} não foi encontrada |

---

# Listagem de Recorrências

URL: /documentation/baas/pix_automatico/movimentacoes/listar_recorrencias

## Listagem de recorrências Pix para uma conta

### Request

ENDPOINT /account/ ACCOUNT_KEY /incoming_recurrences
MÉTODO GET

### Path Params

| Campo                      | Tipo       | Descrição                                             | Caracteres                                                                  |
|----------------------------|------------|-------------------------------------------------------|-----------------------------------------------------------------------------|
| `account_key` *            | uuid4     | Chave única de identificação da conta QI.             | 36                                                                          |

### Query Params

| Campo                    | Tipo       | Descrição                                                                                                  | Caracteres                                                                  |
|--------------------------|------------|------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------|
| `request_control_key`    | uuid4     | Chave única de identificação da request utilizada pelo cliente.                                            | 36                                                                          |
| `status`          | string     | Identificador de status da recorrência Pix                                                                | [Enumerador status](#enumerador-status)                                                                          |
| `date_from`              | string     | Data inicial para o filtro de listagem.   | Formato "YYYY-MM-DD" |
| `date_to`                | string     | Data final para o filtro de listagem. | Formato "YYYY-MM-DD" | 
| `page`                   | integer    | Número da página requisitada. |  Padrão 1  |
| `page_size`              | integer    | Tamanho da página requisitada na consulta.                                     | Valor padrão e máximo de 30                                 

### Enumerador status

| Enumerador           | Descrição           |
|----------------------|---------------------|
| `pending_confirmation` | Recorrência pendente de confirmação      |
| `active`   | Recorrência ativa       |
| `cancelled`   | Recorrência cancelada      |
| `suspended`  | Recorrência suspensa |
| `expired`  | Recorrência expirada |

### Response

STATUS 200

Response Body: Listagem das recorrências

```json

{
    "data": [
        {
            "incoming_recurrence_key": "c2f3eefa-1b8e-4d5f-9b9d-123456789abc",
            "incoming_recurrence_status": "pending_confirmation",
            "request_control_key": "e04197f6-433e-48d2-8a8e-9258a70aba0b",
            "transaction_amount": "150.00",
            "periodicity": "monthly",
            "journey_type": "journey_one",
            "pix_transfer_type": "key",
            "end_to_end_id": "E1234567890123456789012",
            "start_date": "2025-06-01",
            "end_date": "2026-06-01",
            "next_execution_date": "2025-07-01",
            "receiver_conciliation_id": "rec-conc-789",
            "target_pix_key": "receiver@bank.com.br",
            "payer_document_number": "12345678900",
            "pix_message": "Pagamento mensal de serviço",
            "created_at": "2025-05-22T10:00:00Z",
            "updated_at": "2025-05-22T12:00:00Z"
        }
    ],
    "pagination": {
        "current_page": 1,
        "rows_per_page": 30
    }
}

```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                          | Descrição (eng)<br/>`Description`                   | Descrição (ptbr)<br/>`translation`                                            |
|-------------|----------------------|---------------------------------------------|-----------------------------------------------------|-------------------------------------------------------------------------------|
 403         | APX000025            | User is not allowed to do this transaction        | User is not allowed to do this transaction | Usuário não tem autorização para fazer essa transação |
| 403         | APX000017            | Requester not allowed to access this endpoint        | Requester has no permission to perform pix transfers on this endpoint | Requester não possui permissão de realizar transações pix através deste endpoint |
| 404         | APX000020            | Account not Found             | Account was not found | Conta \{account_key\} não foi encontrada. |

---

# Simulação de cenários

URL: /documentation/baas/pix_automatico/movimentacoes/simulacao

Passo a passo para simular a criação de recorrências e pagamentos automáticos no âmbito do PIX Automático. Essas simulações incluem a criação de recorrências e a criação de pagamentos programados.

## 1 - Simulação de criação de recorrência

### Request

ENDPOINT /mock/incoming_recurrence
MÉTODO POST

Request Body: Recorrência de valor fixo

```json
{
  "request_control_key": "01585acf-b0c3-4389-baf3-a58abbe92d58",
  "recurrence_type": "fixed_amount",
  "transaction_amount": 100.50,
  "periodicity": "monthly",
  "journey_type": "journey_one",
  "start_date": "2025-07-01",
  "is_retry_allowed": true,
  "payer_account_information": {
    "owner_name": "John Doe",
    "document_number": "06975239000136",
    "ispb": "32402502",
    "account_digit": "7",
    "account_branch": "3",
    "account_number": "9552432"
}
```

Request Body: Recorrência de valor variável

```json
{
  "request_control_key": "01585acf-b0c3-4389-baf3-a58abbe92d58",
  "recurrence_type": "variable_amount",
  "minimum_transaction_amount": 50.00,
  "periodicity": "monthly",
  "journey_type": "journey_one",
  "start_date": "2025-07-01",
  "is_retry_allowed": true,
  "payer_account_information": {
    "owner_name": "John Doe",
    "document_number": "06975239000136",
    "ispb": "32402502",
    "account_digit": "7",
    "account_branch": "3",
    "account_number": "9552432"}
```

### Objeto Request Body

| Campo                           | Tipo           | Descrição                                                    | Máx. Caract. |
|--------------------------------|----------------|--------------------------------------------------------------|--------------|
| **request_control_key***       | string         | Chave única de identificação da request no formato uuid4    | 36           |
| **recurrence_type***           | string         | Tipo de recorrência (fixed_amount ou variable_amount)       | 20           |
| **transaction_amount**         | number, null   | Valor da transação para recorrência de valor fixo (fixed_amount) | 10           |
| **minimum_transaction_amount** | number, null   | Valor mínimo da transação para recorrência de valor variável (variable_amount) | 10           |
| **periodicity***               | string         | Periodicidade da recorrência                                 | 20           |
| **journey_type***              | string         | Tipo da jornada de autorização                               | 50           |
| **start_date***                | string         | Data de início da recorrência (formato YYYY-MM-DD)          | 10           |
| **end_date**                   | string, null   | Data de término da recorrência (formato YYYY-MM-DD)         | 10           |
| **is_retry_allowed***          | boolean        | Permissão para retentativa de transação                     | -            |
| **payer_account_information*** | object         | Dados da conta do pagador                                    | -            |
| **pix_message**                | string, null   | Mensagem PIX associada à transação                          | 140          |

:::caution Observação
Pelo menos um dos campos `transaction_amount` ou `minimum_transaction_amount` deve ser fornecido com um valor não nulo. Ambos os campos não podem ser nulos simultaneamente.
:::

### Objeto payer_account_information

| Campo                      | Tipo   | Descrição                                           | Máx. Caract. |
|----------------------------|--------|-----------------------------------------------------|--------------|
| **owner_name***            | string | Nome do titular da conta                            | 150          |
| **document_number***       | string | CPF ou CNPJ do titular da conta (apenas números)   | 14           |
| **ispb***                  | string | Código ISPB da instituição financeira              | 8            |
| **account_digit***         | string | Dígito da conta                                     | 1            |
| **account_branch***        | string | Agência da conta                                    | 6            |
| **account_number***        | string | Número da conta                                     | 20           |

:::info Tipos de Recorrência
- **Recorrência de valor fixo (fixed_amount)**: Utilize o campo `transaction_amount` e não envie `minimum_transaction_amount`
- **Recorrência de valor variável (variable_amount)**: Utilize o campo `minimum_transaction_amount` e não envie `transaction_amount`
:::

## Response

STATUS 200

Response Body

```json
{
    "incoming_recurrence_key": "e13c5986-f4d1-4d07-a56b-eda90862630a",
    "incoming_recurrence_spi_id": "RR32402502202507170197A5B7CB9",
    "incoming_recurrence_status": "pending_confirmation",
    "created_at": "2025-07-17T14:44:38Z",
    "account_key": "ba685cfd-3aee-4992-b6bf-58f8038faa6b"
}
```

### Response Body

| Campo                         | Tipo       | Descrição                                                    | Caracteres |
|-------------------------------|------------|--------------------------------------------------------------|------------|
| `incoming_recurrence_key`     | uuid       | Chave única de identificação da recorrência de entrada      | 36         |
| `incoming_recurrence_spi_id`  | string     | Identificador SPI da recorrência de entrada                 | 29         |
| `incoming_recurrence_status`  | enumerator | Status atual da recorrência de entrada                      | [Enumeradores incoming_recurrence_status](#enumeradores-incoming_recurrence_status) |
| `created_at`                  | string     | Data e hora de criação da recorrência (formato ISO 8601)    | -          |
| `account_key`                 | uuid       | Chave única de identificação da conta                       | 36         |

### Enumeradores incoming_recurrence_status

| Enumerador              | Descrição                           |
|-------------------------|-------------------------------------|
| `pending_confirmation`  | Recorrência pendente de confirmação |
| `active`                | Recorrência ativa                   |
| `cancelled`             | Recorrência cancelada               |
| `suspended`             | Recorrência suspensa                |
| `expired`               | Recorrência expirada                |

## 2 - Simulação de criação de pagamento

### Request

ENDPOINT /mock/incoming_recurrence/ INCOMING_RECURRENCE_SPI_ID /outgoing_payment
MÉTODO POST

Request Body

```json
{
  "transaction_amount": 100.50,
  "target_account_data": {
    "owner_name": "John Doe",
    "owner_document_number": "06975239000136",
    "ispb": "32402502",
    "account_digit": "7",
    "account_branch": "3",
    "account_type": "checking_account",
    "account_number": "9552432"
  },
  "receiver_conciliation_id": "3d7d6a2bf72f44z7bb2079a2b94dff56452",
  "outgoing_payment_spi_id": "7d2d1b6cd72f44z7bb2079a2b94dff52673",
  "end_to_end_id": "E60701190202110191604DY5LHIZ9O66",
  "next_execution_datetime": "2023-06-01"
}
```

### Objeto Request Body

| Campo                         | Tipo   | Descrição                                                    | Máx. Caract. |
|-------------------------------|--------|--------------------------------------------------------------|--------------|
| **transaction_amount***       | number | Valor da transação                                           | 10           |
| **target_account_data**       | object | Dados da conta de destino                                    | -            |
| **receiver_conciliation_id*** | string | Identificação de conciliação do recebedor                    | 35           |
| **outgoing_payment_spi_id***  | string | Identificador SPI do pagamento                               | 20           |
| **end_to_end_id***            | string | Chave de idempotência da transação PIX no SPI               | 32           |
| **next_execution_datetime**   | string | Data e hora da próxima execução (formato YYYY-MM-DD)        | 10           |

### Objeto target_account_data

| Campo                      | Tipo   | Descrição                                           | Máx. Caract. |
|----------------------------|--------|-----------------------------------------------------|--------------|
| **owner_name***            | string | Nome do titular da conta                            | 150          |
| **owner_document_number*** | string | CPF ou CNPJ do titular da conta (apenas números)   | 14           |
| **ispb_number***                  | string | Código ISPB da instituição financeira              | 8            |
| **account_digit***         | string | Dígito da conta                                     | 1            |
| **account_branch***        | string | Agência da conta                                    | 6            |
| **account_type***          | string | Tipo da conta                                       | 20           |
| **account_number***        | string | Número da conta                                     | 20           |

### Enumerador account_type

| Enumerador           | Descrição           |
|----------------------|---------------------|
| **checking_account** | Conta Corrente      |
| **salary_account**   | Conta Salário       |
| **saving_account**   | Conta Poupança      |
| **payment_account**  | Conta de Pagamentos |

### Enumeradores periodicity

| Enumerador    | Descrição            |
|---------------|----------------------|
| **weekly**    | Recorrência semanal  |
| **monthly**   | Recorrência mensal   |
| **quarterly** | Recorrência trimestral |
| **semiannual**| Recorrência semestral |
| **annual**    | Recorrência anual    |

### Enumeradores journey_type

| Enumerador                     | Descrição                                                                    |
|--------------------------------|------------------------------------------------------------------------------|
| **journey_one**                | Solicitação de autorização mediante uma notificação no aplicativo           |
| **journey_two**                | Solicitação de autorização mediante a leitura de um QR Code                 |
| **journey_three**              | Autorização de recorrência por meio de um pix imediato mediante leitura de um QR Code |
| **journey_four**               | Pagamento ou agendamento de um pix com uma solicitação de autorização da recorrência em sequência |

---

# Webhooks

URL: /documentation/baas/pix_automatico/movimentacoes/webhooks

Uma vez que as transferências ocorrem de forma assíncrona, é de suma importância o mapeamento e o tratamento corretos
dos webhooks enviados.

:::danger Atenção!
Os webhooks da QI Tech não devem ser mapeados de forma restrita.
Campos adicionais podem ser incluídos aos payloads dos webhooks retornados em nossas APIs.
:::

## Webhook para criação da recorrência de Pix Automático  

Webhook destinado com as informações de criação de recorrência do cliente

### Webhook Request Body

Request Body: Criação de recorrência

```json
{
    "webhook_type": "baas.automatic_pix.incoming_recurrence",
    "webhook_datetime": "2025-10-22T20:30:23.459Z",
    "data": {
        "account_key": "13385acf-b0c3-4389-baf3-a58abbe92d58",
        "incoming_recurrence_key": "12385acf-b0c3-4389-baf3-a58abbe92d58",
        "incoming_recurrence_status": "pending_confirmation",
        "transaction_amount": "150.00",
        "periodicity": "monthly",
        "journey_type": "journey_one",
        "pix_transfer_type": "key",
        "end_to_end_id": "E1234567890123456789012",
        "start_date": "2025-06-01",
        "end_date": "2026-06-01",
        "receiver_conciliation_id": "rec-conc-789",
        "target_pix_key": "receiver@bank.com.br",
        "payer_document_number": "12345678900",
        "pix_message": "Pagamento mensal de serviço",
        "created_at": "2025-05-22T10:00:00Z",
        "updated_at": "2025-05-22T12:00:00Z"
    }
}
```

### Webhook Body Param
| Campo                        | Tipo      | Descrição                                                                                                | Max. Caracteres |
|------------------------------|-----------|----------------------------------------------------------------------------------------------------------|-----------------|
| `webhook_type`               | string    | Um enumerador que define o tipo de evento sendo reportado                                                | 23              |
| `webhook_datetime`           | string    | Data e hora do envio do webhook                                                                          | 20              |
| `account_key`                | uuid4     | Chave única de identificação da conta.                                                                   | 36              |
| `incoming_recurrence_key`    | uuid4     | Chave única de identificação da autorização                                                              | 36              |
| `incoming_recurrence_status` | string    | Identificador de status da recorrência Pix.                                                              | [Enumeradores incoming_recurrence_status](#enumeradores-incoming_recurrence_status) |
| `transaction_amount`         | number    | Valor da transferência para ocorrência de valor fixo.                                                    | 10              |
| `minimum_transaction_amount` | number    | Valor mínimo da transferência para ocorrência de valor variável.                                         | 10              |
| `maximum_transaction_amount` | number    | Valor máximo da transferência para ocorrência de valor variável.                                         | 10              |
| `periodicity`                | enum      | Tipo da periodicidade associada ao pagamento                                                             | [Enumeradores periodicity](#enumeradores-periodicity) |
| `journey_type`               | enum      | Tipo da jornada de solicitação                                                                            | [Enumeradores journey_type](#enumeradores-journey_type) |
| `pix_transfer_type`          | enum      | Tipo do Pix a ser realizado                                                                              | [Enumeradores pix_transfer_type](#enumeradores-pix_transfer_type) |
| `end_to_end_id`              | string    | Chave de idempotência de uma transação Pix dentro do SPI.                                                | 32              |
| `start_date`                 | string    | Data de início da recorrência                                                                            | -               |
| `end_date`                   | string    | Data de término da recorrência, para os casos de tempo indeterminado, enviar como null                   | -               |
| `receiver_conciliation_id`   | string    | Identificação de conciliação do recebedor.                                                               | 35              |
| `target_pix_key`             | string    | Chave Pix da conta da transação.                                                                         | 100             |
| `payer_document_number`      | string    | Número de documento do pagador da transação                                                              | 14              |
| `pix_message`                | string    | Mensagem a ser enviada junto à transferência Pix.                                                        | 140             |
| `created_at`                 | string    | Horário da criação da solicitação de recorrência                                                         | -               |
| `updated_at`                 | string    | Horário de atualização da solicitação de recorrência                                                     | -               |

### Enumerador incoming_recurrence_status

| Enumerador           | Descrição           |
|----------------------|---------------------|
| `pending_confirmation` | Recorrência pendente de confirmação      |
| `active`   | Recorrência ativa       |
| `cancelled`   | Recorrência cancelada      |
| `suspended`  | Recorrência suspensa |
| `expired`  | Recorrência expirada |

### Enumeradores periodicity
| Enumerador       | Descrição          |
|------------------|--------------------|
| `weekly` | Recorrência semanal |
| `monthly` | Recorrência mensal  |
| `quarterly` | Recorrência trimestral     |
| `semiannual` | Recorrência semestral     |
| `annual` | Recorrência anual      |

### Enumeradores journey_type
| Enumerador       | Descrição          |
|------------------|--------------------|
| `journey_one` | Solicitação de autorização mediante uma notificação no aplicativo |
| `journey_two` | Solicitação de autorização mediante a leitura de um QR Code  |
| `journey_three` | Autorização de recorrência por meio de um pix imediato mediante leitura de um QR Code     |
| `journey_four` | Pagamento ou agendamento de um pix com uma solicitação de autorização da recorrência em sequência      |

### Enumeradores pix_transfer_type

| Enumerador          | Descrição                                |
|---------------------|------------------------------------------|
| `manual`          | Pix utilizando os dados da conta destino |
| `key`             | Pix utilizando uma chave pix             |
| `static_qr_code`  | Pix utilizando um QR code estático       |
| `dynamic_qr_code` | Pix utilizando um QR code dinâmico       |

[//]: # (Break here for new page -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------)

---

# Atualizar Valor da Ordem de Pagamento

URL: /documentation/baas/pix_automatico/pagamentos/atualizar_payment_order

## Request

ENDPOINT /account/ ACCOUNT_KEY /outgoing_recurrence/ OUTGOING_RECURRENCE_KEY /payment_order/ PAYMENT_ORDER_KEY
MÉTODO PATCH

### Path Params

| Campo                    | Tipo   | Descrição                                          | Caracteres |
|--------------------------|--------|----------------------------------------------------|------------|
| `ACCOUNT_KEY`            | uuidv4 | Chave única de identificação da conta.             | 36         |
| `OUTGOING_RECURRENCE_KEY`| uuidv4 | Chave única da recorrência a ser atualizada.       | 36         |
| `PAYMENT_ORDER_KEY`      | uuidv4 | Chave única da ordem de pagamento a ser atualizada.| 36         |

### Request Body

Atualizar Payment Order

```json
{
    "transaction_amount": 100
}
```

### Request Body Params

| Campo                | Tipo   | Descrição                          | Caracteres |
|----------------------|--------|------------------------------------|------------|
| `transaction_amount` | floating | Valor da transação a ser atualizado.| -          |

## Response

STATUS 200

Response Body

```json
{}
```

STATUS 4XX

Response Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em português",
  "code": "codigo"
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                | Descrição (eng)<br/>`description`                                          | Descrição (ptbr)<br/>`translation`                                 |
|-------------|----------------------|-----------------------------------|----------------------------------------------------------------------------|--------------------------------------------------------------------|
| 400         | QIT000002            | Bad Request                       | Invalid request schema.                                                    | Erro no esquema da requisição.                                     |
| 404         | APX000404            | Payment Order Not Found      | Payment Order \{payment_order_key\} not found.                   | Lote de conciliação \{payment_order_key\} não encontrado.      |

---

# Cancelar uma Ordem de Pagamento

URL: /documentation/baas/pix_automatico/pagamentos/cancelar_payment_order

Este endpoint permite cancelar uma ordem de pagamento específica associada a uma recorrência automática Pix.

:::warning
Só é possível cancelar uma payment order que está em status de pending_conciliation ou pending, até as 22h do dia anterior ao reference_date.
:::

## Request

ENDPOINT /automatic_pix/account/ ACCOUNT_KEY /outgoing_recurrence/ OUTGOING_RECURRENCE_KEY /payment_order/ PAYMENT_ORDER_KEY /cancel
MÉTODO PATCH

### Path Params

| Campo                    | Tipo   | Descrição                                          | Caracteres |
|--------------------------|--------|----------------------------------------------------|------------|
| `ACCOUNT_KEY`            | uuidv4 | Chave única de identificação da conta.             | 36         |
| `OUTGOING_RECURRENCE_KEY`| uuidv4 | Chave única da recorrência.                        | 36         |
| `PAYMENT_ORDER_KEY`      | uuidv4 | Chave única da ordem de pagamento a ser cancelada. | 36         |

### Request Body

Cancelar Payment Order

```json
{}
```

## Response

STATUS 200

Response Body

```json
{
    "payment_order_key": "10fc62fd-b0a0-4604-9bea-475e91a9dc82",
    "payment_order_conciliation_batch_key": "11fc62fd-b0a0-4604-9bea-475e91a9dc82",
    "payment_order_status": "cancelled"
}
```

### Response Body Params

| Campo                                  | Tipo   | Descrição                                          | Caracteres |
|----------------------------------------|--------|----------------------------------------------------|------------|
| `payment_order_key`                    | string | Chave única da ordem de pagamento.                 | 36         |
| `payment_order_conciliation_batch_key` | string | Chave do lote de conciliação da ordem de pagamento.| 36         |
| `payment_order_status`                 | string | Status atual da ordem de pagamento.                | -          |

### Enumeradores payment_order_status

| Enumerador            | Descrição                                          |
|-----------------------|----------------------------------------------------|
| `pending_conciliation`| Aguardando conciliação.                            |
| `pending`             | Pendente e ainda não processada.                   |
| `accepted`            | Aceita e aguardando pagamento.                     |
| `paid`                | Paga com sucesso.                                  |
| `rejected`            | Rejeitada e não será processada.                   |
| `cancelled`           | Cancelada antes do pagamento.                      |

STATUS 4XX

Response Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em português",
  "code": "codigo"
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                | Descrição (eng)<br/>`description`                                          | Descrição (ptbr)<br/>`translation`                                 |
|-------------|----------------------|-----------------------------------|----------------------------------------------------------------------------|--------------------------------------------------------------------|
| 400         | QIT000002            | Bad Request                       | Invalid request schema.                                                    | Erro no esquema da requisição.                                     |
| 404         | APX000404            | Payment Order Not Found      | Payment Order \{payment_order_key\} not found.                   | Lote de conciliação \{payment_order_key\} não encontrado.      |

---

# Consultar Payment Order

URL: /documentation/baas/pix_automatico/pagamentos/consultar_payment_order

## Request

Este endpoint permite consultar os detalhes de uma payment order específica associada a uma recorrência automática Pix.

ENDPOINT /account/ ACCOUNT_KEY /outgoing_recurrence/ OUTGOING_RECURRENCE_KEY /payment_order/ PAYMENT_ORDER_KEY
MÉTODO GET

### Path Params

| Campo                    | Tipo   | Descrição                                         | Caracteres |
|--------------------------|--------|---------------------------------------------------|------------|
| `account_key`            | uuidv4 | Chave única de identificação da conta.            | 36         |
| `outgoing_recurrence_key`| uuidv4 | Chave única da recorrência a ser consultada.      | 36         |
| `payment_order_key`      | uuidv4 | Chave única da ordem de pagamento a ser consultada.| 36         |

## Response Body

STATUS 200

Response Body

```json
{
    "outgoing_recurrence_spi_id": "RR2222222220240429njua7shf40k",
    "payment_order_status": "paid",
    "reference_date": "2025-06-30",
    "payment_order_conciliation_batch_key": "21fc62fd-b0a0-4604-9bea-475e91a9dc82",
    "receiver_conciliation_id": "cac0b5f7-4ee2-40f1-b2ad-16902506503d",
    "transaction_amount": 125.53,
    "transaction_key": "21fc62fd-b0a0-4604-9bea-475e91a9dc56",
    "incoming_pix_transfer_key": "21fc62fd-b0a0-4604-9bea-475e91a9dc56",
    "debtor_account_data": {
        "account_number": "897465",
        "account_digit": "1",
        "account_branch": "0123",
        "ispb": "323243"
    },
    "created_at": "2021-10-22T20:30:23.459Z",
    "paid_at": "2023-10-22T20:30:23.459Z",
    "payment_order_attempts": [
        {
            "payment_order_attempt_key": "uuid",
            "end_to_end_id": "id",
            "payment_order_attempt_status": "sent",
            "payment_order_attempt_error": {
                "code": "code",
                "description": "description do error",
                "translation": "translation"
            },
            "created_at": "2021-10-22T20:30:23.459Z"
        }
    ]
}
```

### Response Body Params

| Campo                              | Tipo     | Descrição                                                                 | Caracteres |
|------------------------------------|----------|---------------------------------------------------------------------------|------------|
| `outgoing_recurrence_spi_id`       | string   | ID da SPI da recorrência automática.                                      | 36         |
| `payment_order_status`             | string   | Status atual da ordem de pagamento.                                       |[Enumeradores payment_order_status](#payment_order_status)        |
| `reference_date`                   | string   | Data de referência da cobrança.                                           | 10         |
| `payment_order_conciliation_batch_key`| uuidv4 | Chave do lote de conciliação da ordem de pagamento.                       | 36         |
| `receiver_conciliation_id`         | uuidv4   | ID de conciliação do recebedor.                                           | 36         |
| `transaction_amount`               | number   | Valor da transação.                                                       | -          |
| `transaction_key`                  | uuidv4   | Chave única da transação.                                                 | 36         |
| `incoming_pix_transfer_key`        | uuidv4   | Chave de transferência Pix recebida.                                      | 36         |
| `debtor_account_data`              | object   | Dados da conta devedor.                                                   | [Objeto debtor_account_data](#objeto-debtor_account_data) |
| `created_at`                       | string   | Data/hora de criação da ordem.                                            | -          |
| `paid_at`                          | string   | Data/hora do pagamento efetuado.                                          | -          |
| `payment_order_attempts`           | array    | Tentativas de pagamento da ordem.                                         | [Array payment_order_attempts](#array-payment_order_attempts) |

### Objeto debtor_account_data

| Campo            | Tipo   | Descrição                  | Caracteres |
|------------------|--------|----------------------------|------------|
| `account_number` | string | Número da conta            | -          |
| `account_digit`  | string | Dígito da conta            | -          |
| `account_branch` | string | Agência                    | -          |
| `ispb`           | string | ISPB da instituição financeira | -       |

### Array payment_order_attempts

| Campo                        | Tipo     | Descrição                                                      | Caracteres |
|------------------------------|----------|----------------------------------------------------------------|------------|
| `payment_order_attempt_key`  | string   | Chave única da tentativa de pagamento.                         | 36         |
| `end_to_end_id`              | string   | Identificador end-to-end da tentativa.                         | 36         |
| `payment_order_attempt_status`| string  | Status da tentativa de pagamento.                              | -          |
| `payment_order_attempt_error`| object   | Erro associado à tentativa de pagamento.                       | [Objeto payment_order_attempt_error](#objeto-payment_order_attempt_error) |
| `created_at`                 | string   | Data/hora de criação da tentativa.                             | -          |

### Objeto payment_order_attempt_error

| Campo       | Tipo   | Descrição               | Caracteres |
|-------------|--------|-------------------------|------------|
| `code`      | string | Código do erro.         | -          |
| `description`| string | Descrição do erro.     | -          |
| `translation`| string | Tradução da descrição. | -          |

### Enumeradores payment_order_status

| Enumerador            | Descrição                                          |
|-----------------------|----------------------------------------------------|
| `pending_conciliation`| Aguardando conciliação.                            |
| `pending`             | Pendente e ainda não processada.                   |
| `accepted`            | Aceita e aguardando pagamento.                     |
| `paid`                | Paga com sucesso.                                  |
| `rejected`            | Rejeitada e não será processada.                   |
| `cancelled`           | Cancelada antes do pagamento.                      |

STATUS 4XX

Response Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em português",
  "code": "codigo"
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                | Descrição (eng)<br/>`description`                                          | Descrição (ptbr)<br/>`translation`                                 |
|-------------|----------------------|-----------------------------------|----------------------------------------------------------------------------|--------------------------------------------------------------------|
| 400         | QIT000002            | Bad Request                       | Invalid request schema.                                                    | Erro no esquema da requisição.                                     |
| 404         | APX000002            | Payment Order Not Found           | Payment order \{payment_order_key\} not found.                             | Ordem de pagamento \{payment_order_key\} não encontrada.            |

---

# Listar Payment Orders por Conta

URL: /documentation/baas/pix_automatico/pagamentos/listar_account_payment_orders

Este endpoint permite listar as ordens de pagamento associadas a uma conta específica.

ENDPOINT /account/ ACCOUNT_KEY /payment_orders
MÉTODO GET

### Path Params

| Campo        | Tipo   | Descrição                                             | Caracteres |
|--------------|--------|-------------------------------------------------------|------------|
| `account_key`| uuidv4 | Chave única de identificação da conta.                | 36         |

### Query Params

| Campo                | Tipo   | Descrição                                        | Caracteres |
|----------------------|--------|--------------------------------------------------|------------|
| `payment_order_status`| string | Filtra as ordens por status (e.g., `paid`).     | -          |
| `start_date`         | string | Data de início para filtrar ordens (formato YYYY-MM-DD). | 10         |
| `end_date`           | string | Data de fim para filtrar ordens (formato YYYY-MM-DD).   | 10         |

## Response Body

STATUS 200

Response Body

```json
{
    "payment_orders": [
        {
            "payment_order_key": "a1b2c3d4-e5f6-4789-a123-456789abcdef",
            "payment_order_spi_id": "1a2b3c4d5e6f7890abcdef1234567890",
            "outgoing_recurrence_key": "b2c3d4e5-f6a7-4890-b234-567890abcdef",
            "outgoing_recurrence_spi_id": "RR3240250220251025A1B2C3D4E5F",
            "payment_order_conciliation_batch_key": "c3d4e5f6-a7b8-4901-c345-678901abcdef",
            "payment_order_status": "pending_conciliation",
            "reference_date": "2025-11-15",
            "receiver_conciliation_id": "2b3c4d5e6f7890abcdef1234567890ab",
            "transaction_amount": null,
            "account_key": "d4e5f6a7-b8c9-4012-d456-789012abcdef",
            "transaction_key": null,
            "incoming_pix_transfer_key": null,
            "debtor_account_data": {
                "ispb": "31872495",
                "account_digit": "7",
                "account_branch": "0001",
                "account_number": "123456"
            },
            "created_at": "2025-10-15T03:00:12Z",
            "paid_at": null,
            "payment_order_attempts": []
        },
        {
            "payment_order_key": "e5f6a7b8-c9d0-4123-e567-890123abcdef",
            "payment_order_spi_id": "3c4d5e6f7890abcdef1234567890abcd",
            "outgoing_recurrence_key": "f6a7b8c9-d0e1-4234-f678-901234abcdef",
            "outgoing_recurrence_spi_id": "RR3240250220251025B2C3D4E5F6A",
            "payment_order_conciliation_batch_key": "c3d4e5f6-a7b8-4901-c345-678901abcdef",
            "payment_order_status": "pending",
            "reference_date": "2025-11-15",
            "receiver_conciliation_id": "4d5e6f7890abcdef1234567890abcdef",
            "transaction_amount": 220.00,
            "account_key": "d4e5f6a7-b8c9-4012-d456-789012abcdef",
            "transaction_key": null,
            "incoming_pix_transfer_key": null,
            "debtor_account_data": {
                "ispb": "31872495",
                "account_digit": "7",
                "account_branch": "0001",
                "account_number": "123456"
            },
            "created_at": "2025-10-15T03:00:10Z",
            "paid_at": null,
            "payment_order_attempts": []
        }
    ],
    "pagination": {
        "page": 1,
        "page_size": 25,
        "number_of_pages": 9
    }
}
```

### Response Body Params

| Campo                                  | Tipo     | Descrição                                                           | Caracteres |
|----------------------------------------|----------|---------------------------------------------------------------------|------------|
| `payment_order_key`                    | uuidv4   | Chave única da ordem de pagamento.                                  | 36         |
| `payment_order_spi_id`                 | string   | ID da SPI da ordem de pagamento.                                    | 32         |
| `outgoing_recurrence_key`              | uuidv4   | Chave única da recorrência de saída.                               | 36         |
| `outgoing_recurrence_spi_id`           | string   | ID da SPI da recorrência automática.                               | 27         |
| `payment_order_conciliation_batch_key` | uuidv4   | Chave do lote de conciliação da ordem de pagamento.                | 36         |
| `payment_order_status`                 | string   | Status atual da ordem de pagamento.                                | -          |
| `reference_date`                       | string   | Data de referência da cobrança.                                    | 10         |
| `receiver_conciliation_id`             | string   | ID de conciliação do recebedor.                                    | 32         |
| `transaction_amount`                   | number   | Valor da transação (pode ser null).                                | -          |
| `account_key`                          | uuidv4   | Chave única da conta.                                               | 36         |
| `transaction_key`                      | uuidv4   | Chave única da transação (pode ser null).                          | 36         |
| `incoming_pix_transfer_key`            | uuidv4   | Chave de transferência Pix recebida (pode ser null).               | 36         |
| `debtor_account_data`                  | object   | Dados da conta do devedor.                                          | [Objeto debtor_account_data](#objeto-debtor_account_data) |
| `created_at`                           | string   | Data/hora de criação da ordem (formato ISO 8601).                  | -          |
| `paid_at`                              | string   | Data/hora do pagamento efetuado (formato ISO 8601, pode ser null). | -          |
| `payment_order_attempts`               | array    | Tentativas de pagamento da ordem.                                   | [Array payment_order_attempts](#array-payment_order_attempts) |

### Objeto debtor_account_data

| Campo            | Tipo   | Descrição                  | Caracteres |
|------------------|--------|----------------------------|------------|
| `account_number` | string | Número da conta            | -          |
| `account_digit`  | string | Dígito da conta            | -          |
| `account_branch` | string | Agência                    | -          |
| `ispb`           | string | ISPB da instituição financeira | -       |

### Array payment_order_attempts

| Campo                        | Tipo     | Descrição                                                      | Caracteres |
|------------------------------|----------|----------------------------------------------------------------|------------|
| `payment_order_attempt_key`  | string   | Chave única da tentativa de pagamento.                         | 36         |
| `end_to_end_id`              | string   | Identificador end-to-end da tentativa.                         | 32         |
| `due_date`                   | string   | Data de vencimento da tentativa (formato YYYY-MM-DD, pode ser null). | 10         |
| `payment_order_attempt_status`| string  | Status da tentativa de pagamento.                              | -          |
| `payment_order_attempt_error`| object   | Erro associado à tentativa de pagamento (pode ser null).       | [Objeto payment_order_attempt_error](#objeto-payment_order_attempt_error) |
| `sent_at`                    | string   | Data/hora de envio da tentativa (formato ISO 8601, pode ser null). | -          |
| `created_at`                 | string   | Data/hora de criação da tentativa (formato ISO 8601).          | -          |

### Objeto payment_order_attempt_error

| Campo       | Tipo   | Descrição               | Caracteres |
|-------------|--------|-------------------------|------------|
| `code`      | string | Código do erro.         | -          |
| `description`| string | Descrição do erro.      | -          |
| `translation`| string | Tradução da descrição. | -          |

### Enumeradores payment_order_status

| Enumerador              | Descrição                                          |
|-------------------------|----------------------------------------------------|
| `pending_conciliation`  | A ordem de pagamento está pendente de conciliação |
| `pending`               | A ordem de pagamento está pendente                |
| `accepted`              | A ordem de pagamento foi aceita                   |
| `paid`                  | A ordem de pagamento foi paga                     |
| `rejected`              | A ordem de pagamento foi rejeitada                |
| `cancelled`             | A ordem de pagamento foi cancelada                |

STATUS 4XX

Response Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em português",
  "code": "codigo"
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                | Descrição (eng)<br/>`description`                                          | Descrição (ptbr)<br/>`translation`                                 |
|-------------|----------------------|-----------------------------------|----------------------------------------------------------------------------|--------------------------------------------------------------------|
| 400         | QIT000002            | Bad Request                       | Invalid request schema.                                                    | Erro no esquema da requisição.                                     |
| 404         | APX000002            | Payment Order Not Found           | Payment order \{payment_order_key\} not found.                             | Ordem de pagamento \{payment_order_key\} não encontrada.            |

---

# Decodificar QR Code para Pix Automático

URL: /documentation/baas/pix_automatico/qr_code/decodificar_qr_code

## Request

ENDPOINT /account/ ACCOUNT_KEY /qrcode/decode
MÉTODO POST

### Request Path Params

| Campo       | Tipo   | Descrição                      | Caracteres |
|-------------|--------|--------------------------------|------------|
| `account_key` * | uuid4  | Chave única de identificação da conta. | 36 |

### Request Body

Request Body: Decodificar QR Code

```json
{
    "qr_code_payload": "00020101021226840014br.gov.bcb.pix2562invoice.starkbank.com/v2/cobv/8b434df48c30482a81f7c936ae35cc87080400005303986540555.595802BR5925Stark Bank S.A.6015Sao Caetano do Sul62070503***80740014br.gov.bcb.pix2552pix.example.com/rec/2353c790eefb11eaadc10242ac120002630411FC"
}
```

### Body Params

| Campo                   | Tipo       | Descrição                                                                                                                                                                                                                                        | Caracteres |
|-------------------------|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|
| `qr_code_payload` *           | string     | URL do PIX Copia e Cola                                                                                                                                                                                                | -        |

## Response

STATUS 200

Response Body: QR decodificado

```json
{
    "end_to_end_id": "E32402502202303101532yCipbxgUnUj",
    "qr_code_payload": "00020101021226840014br.gov.bcb.pix2562invoice.starkbank.com/v2/cobv/8b434df48c30482a81f7c936ae35cc87080400005303986540555.595802BR5925Stark Bank S.A.6015Sao Caetano do Sul62070503***80740014br.gov.bcb.pix2552pix.example.com/rec/2353c790eefb11eaadc10242ac120002630411FC",
    "qr_code_key": "8c2c19bd-f260-4714-955c-956f3eaa30ca",
    "qr_code_type": "dynamic_composed",
    "qr_code_data": {
        "incoming_recurrence": {
            "incoming_recurrence_key": "67abc123-4567-89ab-cdef-1234567890ab",
            "journey_type": "j2_recurrence_only_qrcode",
            "incoming_recurrence_type": "variable_amount",
            "incoming_recurrence_status": "pending_confirmation",
            "start_date": "2024-08-01",
            "end_date": null,
            "periodicity": "weekly",
            "target_pix_key": "teste.recorrencia@email.com.br",
            "minimum_transaction_amount": "100.00",
            "maximum_transaction_amount": "500.00",
            "transaction_amount": null,
            "is_retry_allowed": true,
            "created_at": "2024-07-23T14:30:45.123Z",
            "payer_document_number": "12345678901",
            "payer_name": "João da Silva",
            "payer_account_key": "a5d7e60f-1c9b-4b8a-9de7-6f3b919cc45d",
            "request_control_key": "c7d7e60f-1c9b-4b8a-9de7-6f3b919cc45f",
            "receiver_conciliation_id": "RRAUTOTESTE001",
            "pix_message": "Autorização de débito mensal"
        },
        "payment_data": {
            "request_control_key": "c7d7e60f-1c9b-4b8a-9de7-6f3b919cc45f",
            "transaction_amount": "150.75",
            "target_pix_key": "teste.recorrencia@email.com.br",
            "target_account": null,
            "receiver_conciliation_id": "fgnb4NTt7pOUBGfrcporERwVVqr0f8PWRfK",
            "pix_message": "Assinatura mensal do serviço"
        }
    }
}
```

| Campo                          | Tipo    | Descrição                                                                                                                                                                                                                                                                                     | Max. Caracteres                                                   |
|--------------------------------|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|
| `end_to_end_id`        | string     | Chave de idempotência de uma transação Pix dentro do SPI (Sistema de Pagamento Instantâneo). Esta chave é retornada na consulta de chave Pix. | 32 |
| `qr_code_payload`          | string     | URL do PIX Copia Cola  |  |
| `qr_code_key`  | uuid4    | Chave única de identificação do qr code                                                                                                                                                              | 36         |         
 `qr_code_data`       | Object     | Dados dos qr code | [Objeto qr_code_data](#objeto-qr_code_data) | 10 |

### Objeto qr_code_data

| Campo                     | Tipo       | Descrição                                           | Caracteres                                              |
|---------------------------|------------|-----------------------------------------------------|---------------------------------------------------------|
| `incoming_recurrence`         | objeto     | Objeto de identificação da recorrência |   [Objeto incoming_recurrence](#objeto-incoming_recurrence)                                                     |
| `payment_data`          | objeto     | Objeto com informações de pagamento para journey_types: *j3_payment_and_recurrence_qrcode*, *j4_recurrence_offer_post_payment* | [Objeto payment_data](#objeto-payment_data)  

### Objeto incoming_recurrence

| Campo                     | Tipo       | Descrição                                           | Caracteres                                              |
|---------------------------|------------|-----------------------------------------------------|---------------------------------------------------------|
| `incoming_recurrence_key`  | uuid4    | Chave única de identificação da autorização                                                                                                                                                              | 36         | 
| `incoming_recurrence_status`               | string  |Identificador de status da recorrência                                                                                                                                         | [Enumerador incoming_recurrence_status](#enumerador-incoming_recurrence_status)                                                           |
| `request_control_key`  | uuid4     | Chave única de identificação da request utilizada pelo cliente                                                                                                                                                              | 36         | 
| `transaction_amount`   | number     | Valor da transferência para ocorrência de valor fixo.                                                                                                                                                                                                                         | 10         |
| `minimum_transaction_amount`   | number     | Valor mínimo da transferência para ocorrência de valor variável.                                                                                                                                                                                                                         | 10         |
| `maximum_transaction_amount`   | number     | Valor máximo da transferência para ocorrência de valor valor variável.                                                                                                                                                                                                                         | 10         |
| `periodicity`    | enumerator | Tipo da periodicidade associada ao pagamento                                                                                                                                           | [Enumeradores periodicity](#enumeradores-periodicity)     |
| `journey_type`    | enumerator | Tipo da jornada de solicitação                                                                                                                                                    | [Enumeradores journey_type](#enumeradores-journey_type)     |
| `end_to_end_id`        | string     | Chave de idempotência de uma transação Pix dentro do SPI (Sistema de Pagamento Instantâneo). Esta chave é retornada na consulta de chave Pix. | 32 |
| `start_date`    | string | Data de ínicio da recorrência                                                                                                                                                         | -      |
| `end_date`   | string | Data de término da recorrência, para os casos de tempo indeterminado, enviar como null                                                                                                                        
| `next_execution_date`    | string | Data de execução da próxima transação da recorrência                                                                                                                                                      | -      |
| `receiver_conciliation_id` | string     | Identicação de conciliação do recebedor. | 35                                        |
| `target_pix_key`       | string     | Chave pix da conta da transação.                                                                                                                                                                                                    | 100        |
| `is_retry_allowed`           | boolean     | Permissão para retentativa de transação Pix.                                                                                                                                                                                                | -        |
| `payer_document_number`       | string     | Número de documento do pagador da transação transação.                                                                                                                                                                                                    | 14        |
| `payer_name`       | string     | Nome do pagador da transação transação.                                                                                                                                                                                                    | -        |
| `payer_account_key`       | string     | Identificador da conta do pagador da transação transação.                                                                                                                                                                                                    | -        |
| `pix_message`           | string     | Mensagem a ser enviada junto à transferência Pix.                                                                                                                                                                                                | 140        |
| `created_at`              | string  | Horário da criação da solicitação de recorrência                                                                                                                                       | -          

### Objeto payment_data

| Campo                     | Tipo       | Descrição                                           | Caracteres                                              |
|---------------------------|------------|-----------------------------------------------------|---------------------------------------------------------|
| `request_control_key`  | uuid4     | Chave única de identificação da request utilizada pelo cliente                                                                                                                                                              | 36         |
| `transaction_amount`   | number     | Valor da transferência para ocorrência de valor fixo.                                                                                                                                                                                                                         | 10         |
| `target_pix_key`       | string     | Chave pix da conta da transação.                                                                                                                                                                                                    | 100        |
| `target_account`       | Object     | Conta destino em transferências manuais. | [Objeto target_account](#objeto-target_account) | 10 |
| `receiver_conciliation_id` | string     | Identicação de conciliação do recebedor. | 35                                        |
| `pix_message`           | string     | Mensagem a ser enviada junto à transferência Pix.                                                                                                                                                                                                | 140        |

### Objeto target_account

| Campo                     | Tipo       | Descrição                                           | Caracteres                                              |
|---------------------------|------------|-----------------------------------------------------|---------------------------------------------------------|
| `account_branch`         | string     | Agência da conta.                                   | 6                                                       |
| `account_digit`          | string     | Dígito da conta.                                    | 1                                                       |
| `account_number`         | string     | Número da conta.                                    | 20                                                      |
| `owner_document_number`  | string     | CPF ou CNPJ (apenas números) do titular da conta.   | 14                                                      |
| `owner_name`             | string     | Nome do titular da conta.                           | 150                                                     |
| `account_type`          | enumerator | Tipo da conta.                                      | [Enumerador account_type](#enumerador-account_type) |
| `ispb`                   | string     | Base no CNPJ da instituição financeira (8 dígitos). | 8                                                       |

:::info
Diferentes enumeradores podem significar o mesmo tipo de conta devido a informação retornada por diferentes
instituições.
:::
### Enumerador account_type

| Enumerador           | Descrição           |
|----------------------|---------------------|
| `checking_account`| Conta Corrente      |
| `salary_account`   | Conta Salário       |
| `saving_account`   | Conta Poupança      |
| `payment_account`  | Conta de Pagamentos |

### Enumerador incoming_recurrence_status

| Enumerador           | Descrição           |
|----------------------|---------------------|
| **pending_confirmation** | Recorrência pendente de confirmação      |
| **active**   | Recorrência ativa       |
| **cancelled**   | Recorrência cancelada      |
| **suspended**  | Recorrência suspensa |
| **expired**  | Recorrência expirada |

### Enumeradores periodicity
| Enumerador       | Descrição          |
|------------------|--------------------|
| `weekly` | Recorrência semanal |
| `monthly` | Recorrência mensal  |
| `quarterly` | Recorrência trimestral     |
| `semiannual` | Recorrência semestral     |
| `annual` | Recorrência anual      |

### Enumeradores journey_type
| Enumerador       | Descrição          |
|------------------|--------------------|
| `j1_in_app_only_recurrence` | Solicitação de autorização mediante uma notificação no aplicativo |
| `j2_recurrence_only_qrcode` | Solicitação de autorização mediante a leitura de um QR Code  |
| `j3_payment_and_recurrence_qrcode` | Autorização de recorrência por meio de um pix imediato mediante leitura de um QR Code     |
| `j4_recurrence_offer_post_payment` | Pagamento ou agendamento de um pix com uma solicitação de autorização da recorrência em sequência      |

### Enumeradores pix_transfer_type

| Enumerador          | Descrição                                |
|---------------------|------------------------------------------|
| `manual`          | Pix utilizando os dados da conta destino |
| `key`             | Pix utilizando uma chave pix             |
| `static_qr_code`  | Pix utilizando um QR code estático       |
| `dynamic_qr_code` | Pix utilizando um QR code dinâmico       |

STATUS 4XX

Response Body

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo"
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`           | Descrição (eng)<br/>`Description`                                   | Descrição (ptbr)<br/>`translation`                                |
|-------------|----------------------|------------------------------|---------------------------------------------------------------------|-------------------------------------------------------------------|
| 400         | QIT000001            | Bad Request	            | Schema Error                                      | Erro de Schema                       |
 403         | APX000025            | User is not allowed to do this transaction        | User is not allowed to do this transaction | Usuário não tem autorização para fazer essa transação |
| 403         | APX000017            | Requester not allowed to access this endpoint        | Requester has no permission to perform pix transfers on this endpoint | Requester não possui permissão de realizar transações pix através deste endpoint |
| 404         | APX000020            | Account not Found             | Account was not found | Conta \{account_key\} não foi encontrada. |

---

# Cancelar recorrência de pagamento

URL: /documentation/baas/pix_automatico/recebedor/cancelar_recorrencia

## Request

ENDPOINT /account/ ACCOUNT_KEY /outgoing_recurrence/ OUTGOING_RECURRENCE_KEY /cancel
MÉTODO PATCH

### Request Path Params

| Campo       | Tipo   | Descrição                      | Caracteres |
|-------------|--------|--------------------------------|------------|
| `account_key` * | uuid4  | Chave única de identificação da conta. | 36 |
| `outgoing_recurrence_key` * | uuid4  | Chave única de identificação da autorização                                    | 36 |

### Request Body

Request Body: Cancelar uma recorrência

```json
{
  "outgoing_recurrence_status": "cancelled",
}
```

### Body Params

| Campo                   | Tipo       | Descrição                                                                                                                                                                                                                                        | Caracteres |
|-------------------------|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|
| `outgoing_recurrence_status` *           | string     | Identificador de status da recorrência Pix.                                                                                                                                                                                                | cancelled        |
## Response

STATUS 200

Response Body: Recorrência cancelada

```json
{
  "outgoing_recurrence_key": "cfa32109-a6dd-4304-94db-03a7b6d92a47",
  "outgoing_recurrence_status": "cancelled",
  "created_at": "2025-05-22T20:30:23.459Z",
  "updated_at": "2025-05-22T20:39:23.459Z"
}
```

STATUS 4XX

Response Body

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo"
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`           | Descrição (eng)<br/>`Description`                                   | Descrição (ptbr)<br/>`translation`                                |
|-------------|----------------------|------------------------------|---------------------------------------------------------------------|-------------------------------------------------------------------|
| 400         | QIT000001            | Bad Request	            | Schema Error                                      | Erro de Schema                       |
 403         | APX000025            | User is not allowed to do this transaction        | User is not allowed to do this transaction | Usuário não tem autorização para fazer essa transação |
| 403         | APX000017            | Requester not allowed to access this endpoint        | Requester has no permission to perform pix transfers on this endpoint | Requester não possui permissão de realizar transações pix através deste endpoint |
| 404         | APX000020            | Account not Found             | Account was not found | Conta \{account_key\} não foi encontrada. |
| 404         | APX000001            | Recurrence not Found        | Recurrence was not found | Recorrência \{outgoing_recurrence_key\} não foi encontrada |

---

# Consultar dados de uma recorrência por outgoing_recurrence_key

URL: /documentation/baas/pix_automatico/recebedor/consultar_recorrencia

## Request

ENDPOINT /account/ ACCOUNT_KEY /outgoing_recurrence/ OUTGOING_RECURRENCE_KEY
MÉTODO GET

### Path Params

| Campo                    | Tipo   | Descrição                                         | Caracteres |
|--------------------------|--------|---------------------------------------------------|------------|
| `account_key` *          | uuidv4 | Chave única de identificação da conta.            | 36         |
| `outgoing_recurrence_key`*| uuidv4 | Chave única da recorrência a ser consultada.      | 36         |

## Response

STATUS 200

Response Body

```json
{
   "request_control_key":"98fc62fd-b0a0-4604-9bea-475e91a9dc82",
   "outgoing_recurrence_key":"8cb70dea-9fb0-4a68-9572-99a72849c8d6",
   "outgoing_recurrence_status":"approved",
   "periodicity":"monthly",
   "journey_type":"journey_four",
   "start_date":"2025-06-10",
   "end_date":"2027-06-10",
   "outgoing_recurrence_data":{
      "minimum_recurrence_amount":123.45,
      "recurrence_amount":null,
      "retry_configuration":{
         "retry_allowed":true,
         "retry_rule":{
            "first_retry":{
               "day":"1",
               "time":"14:00"
            },
            "second_retry":{
               "day":"3",
               "time":"12:00"
            },
            "third_retry":{
               "day":"4",
               "time":"15:32"
            }
         }
      },
      "debtor_data":{
         "name":"Sebastião",
         "email":"sebastiao@test.com",
         "document_number":"05431134850",
         "address":{
            "city":"São Paulo",
            "postal_code":"123456-789",
            "uf":"SP",
            "street":"Av Paulista 123"
         },
         "account_data":{
            "account_number":"123456",
            "account_digit":"7",
            "account_branch":"0001",
            "ispb":"31872495"
         }
      },
      "qr_code_data":{
         "qr_code_key":"0f45cc3d-9bd1-4d68-a865-4cf477b5da45",
         "qr_code_url":"urlqrcode.url",
         "qr_code_image":"image_base64"
      },
      "initial_payment_data":{
         "amount":22.34,
         "pix_key":"3d7d6a2b-f72f-44z7-bb20-79a94dff5645",
         "qr_code_type":"dynamic_term",
         "additional_data":[
            {
               "key_name":"Juros e Multa",
               "value":"Juros 2 ao mes e multa de 1%"
            }
         ],
         "fine_amount":3,
         "interest_amount":2,
         "expiration_date":"2023-03-25",
         "max_payment_days":128,
         "rebate_amount":1,
         "discounts":[],
         "receiver_conciliation_id":"3d7d6a2bf72f44z7bb2079a94dff5645",
         "transaction_data":{
            "transaction_key":"4d7d6a2b-f72f-44z7-bb20-79a94dff5645",
            "pix_transfer_key":"5d7d6a2b-f72f-44z7-bb20-79a94dff5645",
            "end_to_end_id":"E32402502202303141907qlBAF1evdJ2"
         }
      },
      "pix_message":"Conta de Luz Residencial nº123",
      "settlement_date_type":"calendar_days"
      },
      "payment_orders":[
         {
            "payment_order_key":"10fc62fd-b0a0-4604-9bea-475e91a9dc82",
            "payment_order_status":"paid",
            "reference_date":"2025-06-30",
            "receiver_conciliation_id":"cac0b5f74ee240f1b2ad16902506503d",
            "transaction_amount":125.53,
            "transaction_key":"21fc62fd-b0a0-4604-9bea-475e91a9dc56",
            "incoming_pix_transfer_key":"21fc62fd-b0a0-4604-9bea-475e91a9dc56",
            "created_at":"2021-10-22T20:30:23.459Z",
            "paid_at":"2023-10-22T20:30:23.459Z"
         }
      ],
      "outgoing_recurrence_events":[
         {
            "outgoing_recurrence_event_key":"20fc62fd-b0a0-4604-9bea-475e91a9dc82",
            "outgoing_recurrence_status":"created",
            "created_at":"2021-10-22T20:30:23.459Z"
         }
      ]
}
```

### Response Body Params

| Campo                        | Tipo       | Descrição                                                                                   | Caracteres |
|------------------------------|------------|---------------------------------------------------------------------------------------------|------------|
| `request_control_key`        | uuidv4     | Chave única para controle da requisição.                                                    | 36         |
| `outgoing_recurrence_key`    | uuidv4     | Identificador da recorrência automática.                                                    | 36         |
| `outgoing_recurrence_status` | string     | Status atual da recorrência (`approved`, `pending`, `rejected`, etc.).                      | 30         |
| `periodicity`                | enumerator | Periodicidade da recorrência.                                                               | [Enumeradores periodicity](#enumeradores-periodicity)      |
| `journey_type`               | enumerator | Jornada da recorrência automática.                                                          | [Enumeradores journey_type](#enumeradores-journey_type)    |
| `start_date`                 | string     | Data de início da recorrência (formato ISO 8601, e.g., `2025-06-10`).                      | 10         |
| `end_date`                   | string     | Data de término da recorrência (formato ISO 8601) ou null, se indeterminado.                | 10 ou null |
| `outgoing_recurrence_data`   | object     | Objeto agrupando parâmetros da assinatura e dados complementares.                           | [Objeto outgoing_recurrence_data](#objeto-outgoing_recurrence_data) |
| `payment_orders`             | array      | Objeto agrupando parâmetros da assinatura e dados complementares.                           | [Objeto payment_orders](#objeto-payment_orders) |
| `outgoing_recurrence_events` | array      | Objeto agrupando parâmetros dos eventos da recorrência                                      | [Objeto outgoing_recurrence_events](#objeto-outgoing_recurrence_events) |

### Objeto outgoing_recurrence_data

| Campo                       | Tipo     | Descrição                                                          | Caracteres |
|-----------------------------|----------|--------------------------------------------------------------------|------------|
| `minimum_recurrence_amount` | number   | Valor mínimo esperado nas recorrências de valor variável           | -          |
| `recurrence_amount`         | number   | Valor da recorrência (para valor fixo; null se variável)           | -          |
| `retry_configuration`       | object   | Configuração de tentativas para recorrências não concluídas         | [Objeto retry_configuration](#objeto-retry_configuration)   |
| `debtor_data`               | object   | Dados do devedor (assinante)                                       | [Objeto debtor_data](#objeto-debtor_data)                  |
| `qr_code_data`              | object   | Dados de QR Code gerado para o pagamento (se houver)                | [Objeto qr_code_data](#objeto-qr_code_data)                |
| `initial_payment_data`      | object   | Dados da cobrança inicial                                          | [Objeto initial_payment_data](#objeto-initial_payment_data) |
| `pix_message`               | string   | Mensagem enviada junto à transação Pix                             | 140        |
| `settlement_date_type`      | enumerator| Tipo do ajuste da data de liquidação                               | [Enumeradores settlement_date_type](#enumeradores-settlement_date_type) |

---

### Objeto retry_configuration

| Campo           | Tipo    | Descrição                                   | Caracteres |
|-----------------|---------|---------------------------------------------|------------|
| `retry_allowed` | boolean | Indica se retentativas estão habilitadas    | -          |
| `retry_rule`    | object  | Regras detalhadas das retentativas          | [Objeto retry_rule](#objeto-retry_rule) |

---

### Objeto retry_rule

| Campo         | Tipo   | Descrição                         | Caracteres |
|---------------|--------|-----------------------------------|------------|
| `first_retry` | object | Configuração para 1ª retentativa  | [Objeto retry_detail](#objeto-retry_detail) |
| `second_retry`| object | Configuração para 2ª retentativa  | [Objeto retry_detail](#objeto-retry_detail) |
| `third_retry` | object | Configuração para 3ª retentativa  | [Objeto retry_detail](#objeto-retry_detail) |

---

### Objeto retry_detail

| Campo | Tipo   | Descrição               | Caracteres |
|-------|--------|-------------------------|------------|
| `day` | string | Dia da retentativa.     | -          |
| `time`| string | Horário da retentativa. | -          |

---

### Objeto debtor_data

| Campo             | Tipo   | Descrição              | Caracteres |
|-------------------|--------|------------------------|------------|
| `name`            | string | Nome do assinante.     | 50         |
| `email`           | string | E-mail do assinante.   | 100        |
| `document_number` | string | CPF ou CNPJ.           | 14         |
| `address`         | object | Endereço do assinante. | [Objeto address](#objeto-address) |
| `account_data`    | object | Dados bancários.       | [Objeto account_data](#objeto-account_data) |

---

### Objeto address

| Campo         | Tipo   | Descrição         | Caracteres |
|---------------|--------|-------------------|------------|
| `city`        | string | Cidade.           | -          |
| `postal_code` | string | CEP.              | -          |
| `uf`          | string | Estado (sigla).   | -          |
| `street`      | string | Logradouro.       | -          |

---

### Objeto account_data

| Campo           | Tipo   | Descrição                    | Caracteres |
|-----------------|--------|------------------------------|------------|
| `account_number`| string | Número da conta              | -          |
| `account_digit` | string | Dígito da conta              | -          |
| `account_branch`| string | Agência                      | -          |
| `ispb`          | string | ISPB da instituição financeira| -         |

---

### Objeto qr_code_data

| Campo            | Tipo   | Descrição                                   | Caracteres |
|------------------|--------|---------------------------------------------|------------|
| `qr_code_key`    | string | Identificador do QR Code gerado             | -          |
| `qr_code_url`    | string | URL para visualização do QR Code            | -          |
| `qr_code_image`  | string | Imagem do QR Code (em Base64)               | -          |

---

### Objeto initial_payment_data

| Campo                     | Tipo     | Descrição                                                                | Caracteres |
|---------------------------|----------|--------------------------------------------------------------------------|------------|
| `amount`                  | number   | Valor principal da cobrança inicial em reais (R$)                        | -          |
| `pix_key`                 | string   | Chave Pix de destino para o pagamento inicial                            | 77         |
| `qr_code_type`            | enum     | Tipo de QR Code para cobrança inicial.                                   | [Enumeradores qr_code_type](#enumeradores-qr_code_type) |
| `additional_data`         | array    | Lista de informações adicionais relacionadas à cobrança                   | [Array de objects additional_data](#array-additional_data) |
| `fine_amount`             | number   | Valor da multa, caso ocorra atraso no pagamento                          | -          |
| `interest_amount`         | number   | Valor dos juros, caso ocorra atraso no pagamento                         | -          |
| `expiration_date`         | string   | Data de expiração da cobrança inicial (formato ISO 8601)                 | 10         |
| `max_payment_days`        | integer  | Número máximo de dias de aceite após expiração                           | -          |
| `rebate_amount`           | number   | Valor do desconto para pagamento antecipado                              | -          |
| `discounts`               | array    | Lista de descontos adicionais                                            | -          |
| `receiver_conciliation_id`| string   | Identificador de conciliação do pagamento pelo recebedor                 | 35         |
| `transaction_data`        | object   | Detalhes da transação relacionada à cobrança inicial                     | [Objeto transaction_data](#objeto-transaction_data) |

---

### Array additional_data

| Campo        | Tipo    | Descrição                                                       | Caracteres |
|--------------|---------|-----------------------------------------------------------------|------------|
| `key_name`   | string  | Nome da informação adicional (ex: "Juros e Multa")              | 140        |
| `value`      | string  | Valor ou descrição da informação adicional                      | 140        |

---

### Objeto transaction_data

| Campo               | Tipo   | Descrição                              | Caracteres |
|---------------------|--------|----------------------------------------|------------|
| `transaction_key`   | string | Chave única da transação               | 36         |
| `pix_transfer_key`  | string | Identificador da transferência Pix     | 36         |
| `end_to_end_id`     | string | Identificador end-to-end do Pix        | 32         |

---

### Objeto payment_orders

| Campo                       | Tipo    | Descrição                                               | Caracteres |
|-----------------------------|---------|---------------------------------------------------------|------------|
| `payment_order_key`         | string  | Chave única identificadora da ordem de pagamento        | 32         |
| `payment_order_status`      | string  | Status da ordem de pagamento                            | -          |
| `reference_date`            | string  | Data de referência da cobrança                          | -          |
| `receiver_conciliation_id`  | uuidv4  | ID de conciliação do recebedor                          | 35         |
| `transaction_amount`        | number  | Valor monetário da transação                            | -          |
| `transaction_key`           | uuidv4  | Chave única da transação                                | 36         |
| `incoming_pix_transfer_key` | uuidv4  | Chave de transferência Pix recebida                     | 36         |
| `created_at`                | string  | Data/hora de criação da ordem (formato ISO 8601)        | -          |
| `paid_at`                   | string  | Data/hora do pagamento efetuado (formato ISO 8601)      | -          |

### Objeto outgoing_recurrence_events

| Campo                       | Tipo    | Descrição                                               | Caracteres |
|-----------------------------|---------|---------------------------------------------------------|------------|
| `outgoing_recurrence_event_key`         | string  | Chave única identificadora do evento de recorrência        | 36         |
| `outgoing_recurrence_status`      | string  | Status da recorrência                            | -          |
| `created_at`                | string  | Data/hora de criação da ordem (formato ISO 8601)        | -          |

### Enumeradores periodicity

| Enumerador   | Descrição             |
|--------------|----------------------|
| `weekly`     | Recorrência semanal   |
| `monthly`    | Recorrência mensal    |
| `quarterly`  | Recorrência trimestral|
| `semiannual` | Recorrência semestral |
| `annual`     | Recorrência anual     |

---

### Enumeradores journey_type

| Enumerador      | Descrição                                     |
|-----------------|-----------------------------------------------|
| `journey_one`   | Notificação direta no aplicativo bancário     |
| `journey_two`   | Experiência QR Code para cobrança recorrente  |
| `journey_three` | Pagamento instantâneo + recorrência QR Code   |
| `journey_four`  | Opt-in recorrente a partir de operação Pix    |

---

### Enumeradores settlement_date_type

| Enumerador      | Descrição             |
|-----------------|----------------------|
| `workdays`      | Dias úteis           |
| `calendar_days` | Dias corridos         |

---

### Enumeradores qr_code_type

| Enumerador        | Descrição                                                   |
|-------------------|------------------------------------------------------------|
| `dynamic_instant` | QR Code dinâmico para pagamento instantâneo                 |
| `dynamic_term`    | QR Code dinâmico para pagamento com vencimento futuro       |

STATUS 4XX

Response Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em português",
  "code": "codigo"
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                | Descrição (eng)<br/>`description`                                          | Descrição (ptbr)<br/>`translation`                                 |
|-------------|----------------------|-----------------------------------|----------------------------------------------------------------------------|--------------------------------------------------------------------|
| 400         | QIT000002            | Bad Request                       | Invalid request schema.                                                    | Erro no esquema da requisição.                                     |
| 404         | APX000002            | Recurrence Not Found              | Recurrence \{recurrence_key\} not found.                                   | Recorrência \{recurrence_key\} não encontrada.                      |

---

# Consulta de Dados de Recorrência Automática Pix pelo QRCode

URL: /documentation/baas/pix_automatico/recebedor/consultar_recorrencia_receiver

## Request

ENDPOINT /account/ ACCOUNT_KEY /outgoing_recurrence/qr_code_initial_payment/ RECEIVER_CONCILIATION_ID
MÉTODO GET

### Path Params

| Campo                    | Tipo   | Descrição                                         | Caracteres |
|--------------------------|--------|---------------------------------------------------|------------|
| `account_key` *          | uuidv4 | Chave única de identificação da conta.            | 36         |
| `receiver_conciliation_id`*| string | Id de conciliação do qr_code associado à recorrência    | 32         |

## Response

STATUS 200

Response Body

```json
{
  "request_control_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
  "outgoing_recurrence_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "outgoing_recurrence_status": "approved",
  "periodicity": "monthly",
  "journey_type": "journey_four",
  "start_date": "2025-06-10",
  "end_date": "2027-06-10",
  "outgoing_recurrence_data": {
    "minimum_recurrence_amount": 123.45,
    "recurrence_amount": null,
    "retry_configuration": {
      "retry_allowed": true,
      "retry_rule": {
        "first_retry": {
          "day": "1"
        },
        "second_retry": {
          "day": "3"
        },
        "third_retry": {
          "day": "4"
        }
      }
    },
    "debtor_data": {
      "name": "Sebastião",
      "email": "sebastiao@test.com",
      "document_number": "05431134850",
      "address": {
        "city": "São Paulo",
        "postal_code": "123456-789",
        "uf": "SP",
        "street": "Av Paulista 123"
      },
      "account_data": {
        "account_number": "123456",
        "account_digit": "7",
        "account_branch": "0001",
        "ispb": "31872495"
      }
    },
    "qr_code_data": {
      "qr_code_key": "0f45cc3d-9bd1-4d68-a865-4cf477b5da45",
      "qr_code_url": "urlqrcode.url",
      "qr_code_image": "image_base64"
    },
    "initial_payment_data": {
      "amount": 22.34,
      "pix_key": "3d7d6a2b-f72f-44z7-bb20-79a94dff5645",
      "qr_code_type": "dynamic_term",
      "additional_data": [
        {
          "key_name": "Juros e Multa",
          "value": "Juros 2 ao mes e multa de 1%"
        }
      ],
      "fine_amount": 3,
      "interest_amount": 2,
      "expiration_date": "2023-03-25",
      "max_payment_days": 128,
      "rebate_amount": 1,
      "discounts": [],
      "receiver_conciliation_id":"3d7d6a2bf72f44z7bb2079a94dff5645",
      "transaction_data":{
        "transaction_key":"4d7d6a2b-f72f-44z7-bb20-79a94dff5645",
        "pix_transfer_key":"5d7d6a2b-f72f-44z7-bb20-79a94dff5645",
        "end_to_end_id":"E32402502202303141907qlBAF1evdJ2"
      }
    },
    "pix_message": "Conta de Luz Residencial nº123",
    "settlement_date_type": "calendar_days"
  }
}
```

### Response Body Params

| Campo                        | Tipo       | Descrição                                                                                   | Caracteres |
|------------------------------|------------|---------------------------------------------------------------------------------------------|------------|
| `request_control_key`        | uuidv4     | Chave única para controle da requisição.                                                    | 36         |
| `outgoing_recurrence_key`    | uuidv4     | Identificador da recorrência automática.                                                    | 36         |
| `outgoing_recurrence_status` | string     | Status atual da recorrência (`approved`, `pending`, `rejected`, etc.).                      | 30         |
| `periodicity`                | enumerator | Periodicidade da recorrência.                                                               | [Enumeradores periodicity](#enumeradores-periodicity)      |
| `journey_type`               | enumerator | Jornada da recorrência automática.                                                          | [Enumeradores journey_type](#enumeradores-journey_type)    |
| `start_date`                 | string     | Data de início da recorrência (formato ISO 8601, e.g., `2025-06-10`).                      | 10         |
| `end_date`                   | string     | Data de término da recorrência (formato ISO 8601) ou null, se indeterminado.                | 10 ou null |
| `outgoing_recurrence_data`   | object     | Objeto agrupando parâmetros da assinatura e dados complementares.                           | [Objeto outgoing_recurrence_data](#objeto-outgoing_recurrence_data) |

---

### Objeto outgoing_recurrence_data

| Campo                       | Tipo     | Descrição                                                          | Caracteres |
|-----------------------------|----------|--------------------------------------------------------------------|------------|
| `minimum_recurrence_amount` | number   | Valor mínimo esperado nas recorrências de valor variável           | -          |
| `recurrence_amount`         | number   | Valor da recorrência (para valor fixo; null se variável)           | -          |
| `retry_configuration`       | object   | Configuração de tentativas para recorrências não concluídas         | [Objeto retry_configuration](#objeto-retry_configuration)   |
| `debtor_data`               | object   | Dados do devedor (assinante)                                       | [Objeto debtor_data](#objeto-debtor_data)                  |
| `qr_code_data`              | object   | Dados de QR Code gerado para o pagamento (se houver)                | [Objeto qr_code_data](#objeto-qr_code_data)                |
| `initial_payment_data`      | object   | Dados da cobrança inicial                                          | [Objeto initial_payment_data](#objeto-initial_payment_data) |
| `pix_message`               | string   | Mensagem enviada junto à transação Pix                             | 140        |
| `settlement_date_type`      | enumerator| Tipo do ajuste da data de liquidação                               | [Enumeradores settlement_date_type](#enumeradores-settlement_date_type) |

---

### Objeto retry_configuration

| Campo           | Tipo    | Descrição                                   | Caracteres |
|-----------------|---------|---------------------------------------------|------------|
| `retry_allowed` | boolean | Indica se retentativas estão habilitadas    | -          |
| `retry_rule`    | object  | Regras detalhadas das retentativas          | [Objeto retry_rule](#objeto-retry_rule) |

---

### Objeto retry_rule

| Campo         | Tipo   | Descrição                         | Caracteres |
|---------------|--------|-----------------------------------|------------|
| `first_retry` | object | Configuração para 1ª retentativa  | [Objeto retry_detail](#objeto-retry_detail) |
| `second_retry`| object | Configuração para 2ª retentativa  | [Objeto retry_detail](#objeto-retry_detail) |
| `third_retry` | object | Configuração para 3ª retentativa  | [Objeto retry_detail](#objeto-retry_detail) |

---

### Objeto retry_detail

| Campo | Tipo   | Descrição               | Caracteres |
|-------|--------|-------------------------|------------|
| `day` | string | Dia da retentativa.     | -          |
| `time`| string | Horário da retentativa. | -          |

---

### Objeto debtor_data

| Campo             | Tipo   | Descrição              | Caracteres |
|-------------------|--------|------------------------|------------|
| `name`            | string | Nome do assinante.     | 50         |
| `email`           | string | E-mail do assinante.   | 100        |
| `document_number` | string | CPF ou CNPJ.           | 14         |
| `address`         | object | Endereço do assinante. | [Objeto address](#objeto-address) |
| `account_data`    | object | Dados bancários.       | [Objeto account_data](#objeto-account_data) |

---

### Objeto address

| Campo         | Tipo   | Descrição         | Caracteres |
|---------------|--------|-------------------|------------|
| `city`        | string | Cidade.           | -          |
| `postal_code` | string | CEP.              | -          |
| `uf`          | string | Estado (sigla).   | -          |
| `street`      | string | Logradouro.       | -          |

---

### Objeto account_data

| Campo           | Tipo   | Descrição                    | Caracteres |
|-----------------|--------|------------------------------|------------|
| `account_number`| string | Número da conta              | -          |
| `account_digit` | string | Dígito da conta              | -          |
| `account_branch`| string | Agência                      | -          |
| `ispb`          | string | ISPB da instituição financeira| -         |

---

### Objeto qr_code_data

| Campo            | Tipo   | Descrição                                   | Caracteres |
|------------------|--------|---------------------------------------------|------------|
| `qr_code_key`    | string | Identificador do QR Code gerado             | -          |
| `qr_code_url`    | string | URL para visualização do QR Code            | -          |
| `qr_code_image`  | string | Imagem do QR Code (em Base64)               | -          |

---

### Objeto initial_payment_data

| Campo                     | Tipo     | Descrição                                                                | Caracteres |
|---------------------------|----------|--------------------------------------------------------------------------|------------|
| `amount`                  | number   | Valor principal da cobrança inicial em reais (R$)                        | -          |
| `pix_key`                 | string   | Chave Pix de destino para o pagamento inicial                            | 77         |
| `qr_code_type`            | enum     | Tipo de QR Code para cobrança inicial.                                   | [Enumeradores qr_code_type](#enumeradores-qr_code_type) |
| `additional_data`         | array    | Lista de informações adicionais relacionadas à cobrança                   | [Array de objects additional_data](#array-additional_data) |
| `fine_amount`             | number   | Valor da multa, caso ocorra atraso no pagamento                          | -          |
| `interest_amount`         | number   | Valor dos juros, caso ocorra atraso no pagamento                         | -          |
| `expiration_date`         | string   | Data de expiração da cobrança inicial (formato ISO 8601)                 | 10         |
| `max_payment_days`        | integer  | Número máximo de dias de aceite após expiração                           | -          |
| `rebate_amount`           | number   | Valor do desconto para pagamento antecipado                              | -          |
| `discounts`               | array    | Lista de descontos adicionais                                            | -          |
| `receiver_conciliation_id`| string   | Identificador de conciliação do pagamento pelo recebedor                 | 35         |
| `transaction_data`        | object   | Detalhes da transação relacionada à cobrança inicial                     | [Objeto transaction_data](#objeto-transaction_data) |

---

### Array additional_data

| Campo        | Tipo    | Descrição                                                       | Caracteres |
|--------------|---------|-----------------------------------------------------------------|------------|
| `key_name`   | string  | Nome da informação adicional (ex: "Juros e Multa")              | 140        |
| `value`      | string  | Valor ou descrição da informação adicional                      | 140        |

---

### Objeto transaction_data

| Campo               | Tipo   | Descrição                              | Caracteres |
|---------------------|--------|----------------------------------------|------------|
| `transaction_key`   | string | Chave única da transação               | 36         |
| `pix_transfer_key`  | string | Identificador da transferência Pix     | 36         |
| `end_to_end_id`     | string | Identificador end-to-end do Pix        | 32         |

---

### Enumeradores periodicity

| Enumerador   | Descrição             |
|--------------|----------------------|
| `weekly`     | Recorrência semanal   |
| `monthly`    | Recorrência mensal    |
| `quarterly`  | Recorrência trimestral|
| `semiannual` | Recorrência semestral |
| `annual`     | Recorrência anual     |

---

### Enumeradores journey_type

| Enumerador      | Descrição                                     |
|-----------------|-----------------------------------------------|
| `journey_one`   | Notificação direta no aplicativo bancário     |
| `journey_two`   | Experiência QR Code para cobrança recorrente  |
| `journey_three` | Pagamento instantâneo + recorrência QR Code   |
| `journey_four`  | Opt-in recorrente a partir de operação Pix    |

---

### Enumeradores settlement_date_type

| Enumerador      | Descrição             |
|-----------------|----------------------|
| `workdays`      | Dias úteis           |
| `calendar_days` | Dias corridos         |

---

### Enumeradores qr_code_type

| Enumerador        | Descrição                                                   |
|-------------------|------------------------------------------------------------|
| `dynamic_instant` | QR Code dinâmico para pagamento instantâneo                 |
| `dynamic_term`    | QR Code dinâmico para pagamento com vencimento futuro       |

STATUS 4XX

Response Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em português",
  "code": "codigo"
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                | Descrição (eng)<br/>`description`                                          | Descrição (ptbr)<br/>`translation`                                 |
|-------------|----------------------|-----------------------------------|----------------------------------------------------------------------------|--------------------------------------------------------------------|
| 400         | QIT000002            | Bad Request                       | Invalid request schema.                                                    | Erro no esquema da requisição.                                     |
| 404         | APX000002            | Recurrence Not Found              | Recurrence \{recurrence_key\} not found.                                   | Recorrência \{recurrence_key\} não encontrada.                      |

---

# Conciliação e Liquidação de Pagamentos

URL: /documentation/baas/pix_automatico/recebedor/introducao

## Visão Geral do Negócio

O sistema de pagamentos via Pix Automático oferece uma solução eficiente para automatizar débitos recorrentes, proporcionando maior comodidade tanto para o pagador quanto para o recebedor. Ao garantir a automação e a notificação dos envolvidos, minimiza-se o risco de inadimplência e otimiza-se o fluxo de caixa das empresas.

## Processamento de Pagamentos via Pix Automático

Na data agendada para o pagamento de um débito via Pix Automático, o banco do pagador deve emitir a ordem de pagamento entre meia-noite e 8h. Após a confirmação do pagamento, o usuário pagador receberá uma notificação. Caso o débito seja cancelado pelo pagador ou recebedor antes dessa etapa, a transação não será processada.

## Recorrências de Valor Variável

Para recorrências com valor variável, o usuário recebedor definirá o valor mínimo, enquanto o pagador determinará o valor máximo permitido. O valor específico a ser cobrado deve ser enviado pelo recebedor entre 10 a 2 dias antes da data de pagamento. 

:::warning
Se não for enviado, a cobrança não será realizada. Essa etapa não se aplica a recorrências de valor fixo.
:::

### Contexto de Negócio

As recorrências de valor variável são particularmente úteis em setores onde os valores cobráveis podem oscilar, como no fornecimento de utilidades ou em assinaturas baseadas em uso, permitindo flexibilidade nos pagamentos.

## Lotes de Conciliação de Pagamentos

Um conjunto de recorrências com pagamentos a receber será chamado de grupo de liquidação (`conciliation_batch`).

- A criação dos lotes de conciliação ocorre 10 dias antes da data de pagamento.
- Os lotes são fechados 2 dias antes da data de pagamento.
- Após a criação de um lote, um webhook será enviado com a `conciliation_batch_key`. As recorrências associadas podem ser obtidas através do endpoint específico.

### Impacto no Negócio

Os lotes de conciliação facilitam a gestão de recebíveis em escala, proporcionando transparência e controle sobre os fluxos financeiros programados, essencial para o planejamento estratégico e financeiro de qualquer organização.

## Retentativas de Recebimento

O usuário recebedor pode definir retentativas de recebimento durante a criação da recorrência, respeitando as seguintes condições:

- As retentativas podem ocorrer até 7 dias após a data de vencimento original.
- No máximo três tentativas podem ser efetuadas, conforme definido na criação.
- O valor deve ser o mesmo do pagamento original.

### Considerações de Negócio

As retentativas de recebimento são uma funcionalidade crucial para a maximização de recebíveis, garantindo oportunidades adicionais para liquidar pagamentos que, por qualquer motivo, falharam na data original. Isso reduz perdas por inadimplência e melhora a experiência do cliente ao proporcionar flexibilidade adicional.

---

# Criar uma Recorrência (Jornada 4)

URL: /documentation/baas/pix_automatico/recebedor/journey_four

> Jornada 4 — QR Code + Pagament ou agendamento + Oferta do pix automático

{`
.hero-section { background: linear-gradient(135deg, #eff6ff 0%, #ffffff 100%); border: 1px solid #e5e7eb; border-radius: 16px; padding: 24px; margin: 24px 0 32px 0; }
.hero-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; margin-top: 20px; }
.hero-item { background: #ffffff; border: 1px solid #e5e7eb; border-radius: 10px; padding: 16px; }
.hero-item > strong { display: block; color: #1e40af; font-size: 14px; margin-bottom: 6px; font-weight: 700; }
.hero-item p { margin: 0; font-size: 13px; color: #475569; line-height: 1.5; }

.endpoint-card { background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%); border: 2px solid #e5e7eb; border-radius: 12px; padding: 24px; position: relative; overflow: hidden; }
.endpoint-card::before { content: ''; position: absolute; top: 0; left: 0; width: 4px; height: 100%; background: linear-gradient(to bottom, #3b82f6, #1e40af); }
.endpoint-list { display: grid; gap: 12px; font-size: 13px; color: #334155; }
.endpoint__item { display: grid; grid-template-columns: 120px 1fr; align-items: center; gap: 12px; background: #ffffff; border: 1px solid #e5e7eb; border-radius: 8px; padding: 10px 14px; }
.badge { font-size: 11px; font-weight: 800; padding: 4px 10px; border-radius: 6px; color: #fff; text-transform: uppercase; letter-spacing: .4px; background: #1e40af; }

.details-container { background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%); border: 1px solid #e5e7eb; border-radius: 10px; padding: 8px 12px; margin: 20px 0; }
.details-container summary { font-weight: 700; color: #1e40af; cursor: pointer; font-size: 14px; padding: 10px 0 10px 28px; display: flex; align-items: center; position: relative; }
.details-container summary::-webkit-details-marker { display: none; }
.details-container summary::before { content: ''; position: absolute; left: 10px; width: 0; height: 0; border-left: 7px solid #1e40af; border-top: 6px solid transparent; border-bottom: 6px solid transparent; transition: transform .2s ease; }
.details-container[open] summary::before { transform: rotate(90deg); }
.code-block { margin-top: 12px; border-radius: 8px; overflow: hidden; }

.table-container { overflow: auto; border: 0; border-radius: 0; margin: 20px 0; background: transparent; }
.table-container table { width: 100%; border-collapse: collapse; font-size: 13px; }
.table-container th, .table-container td { border-top: 1px solid #e5e7eb; padding: 12px 16px; text-align: left; }
.table-container thead th { background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%); font-weight: 700; color: #0f172a; font-size: 13px; }
`}

Visão geral
O que é O cliente realiza o pagamento ou agendamento de um QR Code e, depois, recebe a oferta para ativar a recorrência Pix Automático.
Quando usar Indicado para faturas, boletos ou contas com proposta de adesão à recorrência, mas só após o pagamento ou agendamento inicial.
Como funciona Pagador lê o QR Code → paga ou agenda o pagamento → ao concluir, recebe convite para ativar o Pix Automático para aquela cobrança (opcional).
Benefícios Flexível: a decisão sobre a recorrência ocorre após o pagamento/agendamento, permitindo adesão voluntária e espontânea pelo pagador.
Pontos de atenção A oferta de recorrência é feita somente após o pagamento/agendamento — pode ser recusada pelo cliente. Se não disponível para aquele caso, prossiga apenas com o pagamento, sem oferecer recorrência.

## Request

{`
.endpoint-card { background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%); border: 2px solid #e5e7eb; border-radius: 12px; padding: 24px; position: relative; overflow: hidden; }
.endpoint-card::before { content: ''; position: absolute; top: 0; left: 0; width: 4px; height: 100%; background: linear-gradient(to bottom, #3b82f6, #1e40af); }
.endpoint-list { display: grid; gap: 12px; font-size: 13px; color: #334155; }
.endpoint__item { display: grid; grid-template-columns: 120px 1fr; align-items: center; gap: 12px; background: #ffffff; border: 1px solid #e5e7eb; border-radius: 8px; padding: 10px 14px; }
.badge { font-size: 11px; font-weight: 800; padding: 4px 10px; border-radius: 6px; color: #fff; text-transform: uppercase; letter-spacing: .4px; background: #1e40af; }
.details-container { background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%); border: 1px solid #e5e7eb; border-radius: 10px; padding: 8px 12px; margin: 20px 0; }
.details-container summary { font-weight: 700; color: #1e40af; cursor: pointer; font-size: 14px; padding: 10px 0 10px 28px; display: flex; align-items: center; position: relative; }
.details-container summary::-webkit-details-marker { display: none; }
.details-container summary::before { content: ''; position: absolute; left: 10px; width: 0; height: 0; border-left: 7px solid #1e40af; border-top: 6px solid transparent; border-bottom: 6px solid transparent; transition: transform .2s ease; }
.details-container[open] summary::before { transform: rotate(90deg); }
.code-block { margin-top: 12px; border-radius: 8px; overflow: hidden; }
`}

ENDPOINT /account/ account_key /outgoing_recurrence/journey_four
MÉTODO POST

### Request Path Params

| Campo         | Tipo  | Descrição                                      | Caracteres |
|---------------|-------|------------------------------------------------|------------|
| `account_key`*| uuid4 | Chave única de identificação da conta.          | 36         |

### Request Body

**Request Body: Criar Recorrência (Jornada 4)**

```json
{
    "request_control_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
    "periodicity": "monthly",
    "minimum_recurrence_amount": 125,
    "start_date": "2025-06-10",
    "end_date": "2027-06-10",
    "pix_message": "Conta de Luz Residencial nº123",
    "recurrence_type": "variable_amount",
    "debtor_data": {
        "name": "Sebastião",
        "email": "sebastiao@test.com",
        "document_number": "05431134850",
        "contract_id": "12345",
        "address": {
            "street": "Av. Brigadeiro Faria Lima",
            "state": "SP",
            "city": "São Paulo",
            "neighborhood": "Jardim Paulistano",
            "number": "2391",
            "postal_code": "01452905",
            "complement": "Complemento"
        }
    },
    "initial_payment_data": {
        "amount": 22.34,
        "pix_key": "3d7d6a2b-f72f-44z7-bb20-79a94dff5645",
        "qr_code_type": "dynamic_term",
        "additional_data": [
            {
                "key_name": "Juros e Multa",
                "value": "Juros 2 ao mes e multa de 1%"
            }	
        ],
        "fine_amount": 3,
        "interest_amount": 2,
        "expiration_date": "2023-03-25",
        "max_payment_days": 128,
        "rebate_amount": 1,
        "discounts": [],
        "receiver_conciliation_id": "3d7d6a2bf72f44z7bb2079a94dff5645"		
    },
    "retry_configuration": {
        "retry_allowed": true,
        "retry_rule": {
            "first_retry": {
                "day": "1"
            },
            "second_retry": {
                "day": "3"
            },
            "third_retry": {
                "day": "4"
            }
        }
    },
    "settlement_date_type": "workdays"
}
```

### Body Params

| Campo                            | Tipo        | Descrição                                                                                                         | Caracteres |
|-----------------------------------|-------------|-------------------------------------------------------------------------------------------------------------------|------------|
| `request_control_key` *           | uuid        | Chave única de identificação da requisição utilizada pelo cliente no formato uuid4.                               | 36         |
| `periodicity` *                   | enumerator  | Tipo da periodicidade associada à recorrência da assinatura.                                                      | [Enumeradores periodicity](#enumeradores-periodicity) |
| `minimum_recurrence_amount`       | float      | Valor mínimo da transação para recorrências de valor variável                                       | -          |
| `start_date` *                    | string      | Data de início da recorrência (formato ISO 8601, e.g., "2025-07-01").                                             | -          |
| `end_date`                        | string      | Data de término da recorrência; para tempo indeterminado, enviar como null.                                       | -          |
| `pix_message` *                   | string      | Mensagem a ser enviada junto à transação Pix.                                                                     | 140        |
| `debtor_data` *                   | Object      | Dados do devedor (assinante).                                                                                     | [Objeto debtor_data](#objeto-debtor_data) |
| `retry_configuration` *           | Object      | Configuração de retentativas para transações não concluídas.                                                      | [Objeto retry_configuration](#objeto-retry_configuration) |
| `settlement_date_type` *          | enumerator  | Tipo de ajuste da data de liquidação                                                                              | [Enumeradores settlement_date_type](#enumeradores-settlement_date_type) |
| `recurrence_type` *               | enumerator  | Tipo de recorrência                                                                                               | [Enumeradores recurrence_type](#enumeradores-recurrence_type) |
| `initial_payment_data` *            | Object      | Objeto com informações da cobrança inicial a ser realizada na criação da assinatura.                              | [Objeto initial_payment_data](#objeto-initial_payment_data) |

:::caution Atenção
O campo `minimum_recurrence_amount` é opcional e deve ser informado apenas para recorrência de valor variável. Caso a recorrência seja de valor fixo, deve-se enviar o campo `recurrence_amount`, com o valor da recorrência. Assim como o enumerador `recurrence_type`, que deverá corresponder ao tipo da recorrência (Valor fixo ou variável).
:::

### Enumeradores periodicity

| Enumerador   | Descrição             |
|--------------|-----------------------|
| `weekly`     | Recorrência semanal   |
| `monthly`    | Recorrência mensal    |
| `quarterly`  | Recorrência trimestral|
| `semiannual` | Recorrência semestral |
| `annual`     | Recorrência anual     |

### Enumeradores settlement_date_type

| Enumerador   | Descrição             |
|--------------|-----------------------|
| `workdays`     | Dias úteis   |
| `calendar_days`     | Dias corridos   |

### Enumeradores recurrence_type

| Enumerador   | Descrição             |
|--------------|-----------------------|
| `fixed_amount`     | Recorrência de Valor Fixo   |
| `variable_amount`     | Recorrência de Valor Variável   |

### Objeto debtor_data

| Campo               | Tipo   | Descrição             | Caracteres |
|---------------------|--------|-----------------------|------------|
| `name` *            | string | Nome do assinante.    | 50         |
| `email` *           | string | E-mail do assinante.  | 100        |
| `document_number` * | string | CPF ou CNPJ do assinante. | 14      |
| `contract_id`       | string | Identificador do contrato do assinante. | 100      |
| `address` *         | Object | Endereço do assinante.| [Objeto address](#objeto-address) |

### Objeto address

| Campo         | Tipo   | Descrição         | Caracteres |
|---------------|--------|-------------------|------------|
| `street`      | string | Rua.              | -          |
| `state`       | string | Estado.           | -          |
| `city`        | string | Cidade.           | -          |
| `neighborhood`| string | Bairro.           | -          |
| `number`      | string | Número.           | -          |
| `postal_code` | string | CEP.              | -          |
| `complement`  | string | Complemento.      | -          |

### Objeto retry_configuration

| Campo         | Tipo    | Descrição               | Caracteres |
|---------------|---------|-------------------------|------------|
| `retry_allowed`| boolean | Indica se retentativas são permitidas. | -     |
| `retry_rule`  | Object  | Regras de retentativa.  | [Objeto retry_rule](#objeto-retry_rule) |

### Objeto retry_rule

| Campo         | Tipo   | Descrição               | Caracteres |
|---------------|--------|-------------------------|------------|
| `first_retry` | Object | Configuração da primeira retentativa. | [Objeto retry_detail](#objeto-retry_detail) |
| `second_retry`| Object | Configuração da segunda retentativa.  | [Objeto retry_detail](#objeto-retry_detail) |
| `third_retry` | Object | Configuração da terceira retentativa. | [Objeto retry_detail](#objeto-retry_detail) |

### Objeto retry_detail

| Campo | Tipo   | Descrição               | Caracteres |
|-------|--------|-------------------------|------------|
| `day` | string | Dia da retentativa.     | -          |

### Objeto initial_payment_data

| Campo                      | Tipo       | Descrição                                                                                | Caracteres |
|----------------------------|------------|------------------------------------------------------------------------------------------|------------|
| `amount` *                 | number     | Valor principal da cobrança inicial em reais (R$).                                       | -          |
| `pix_key` *                | string     | Chave Pix de destino para o pagamento.                                                   | 77         |
| `qr_code_type`*             | enumerator | Tipo de QR Code para a cobrança inicial.                                                | [Enumeradores qr_code_type](#enumeradores-qr_code_type) |
| `additional_data`*          | array      | Lista de objetos com informações adicionais relacionadas à cobrança (ex: juros, multa). | [Objetos additional_data](#obj-additional_data) |
| `fine_amount`              | number     | Valor da multa, caso ocorra atraso no pagamento.                                         | -          |
| `interest_amount`          | number     | Valor dos juros, caso ocorra atraso no pagamento.                                        | -          |
| `expiration_date` *        | string     | Data de expiração da cobrança inicial (formato ISO 8601, e.g., "2023-03-25").            | -          |
| `max_payment_days`         | integer    | Número máximo de dias, a partir da data de expiração, em que o pagamento pode ser aceito.| -          |
| `rebate_amount`            | number     | Valor do desconto para pagamento antecipado.                                             | -          |
| `discounts`                | array      | Lista de descontos adicionais aplicáveis (se houver).                                    | -          |
| `receiver_conciliation_id` | string     | Identificador único para conciliação do pagamento pelo recebedor.                        | 32         |

### Enumeradores qr_code_type

| Valor              | Descrição                                                                 |
|--------------------|---------------------------------------------------------------------------|
| `dynamic_instant`  | Gera um QR Code dinâmico para pagamento instantâneo, com vencimento imediato.       |
| `dynamic_term`     | Gera um QR Code dinâmico com prazo definido para pagamento (vencimento futuro).     |

### Objeto additional_data

| Campo        | Tipo    | Descrição                                                       | Caracteres |
|--------------|---------|-----------------------------------------------------------------|------------|
| `key_name`   | string  | Nome do campo adicional de informação (exemplo: "Juros e Multa").| -        |
| `value`      | string  | Valor ou descrição da informação adicional.                      | -        |

## Response

STATUS 200

:::caution Atenção
Quando o usuário pagor recebe a notificação, ele pode optar por agendar o Pix ou realizar a transferência naquele momento. Caso o pagador realize instantaneamente o pagamento, será enviado o webhook do tipo `baas.automatic_pix.outgoing_recurrence.status_change` com as informações preenchidas, em caso de agendamento os valores serão `null`.
:::

**Response Body**

```json
{
    "request_control_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
    "outgoing_recurrence_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "outgoing_recurrence_status": "pending_confirmation",
    "qr_code_data": {
	    "qr_code_url": "url",
	    "qr_code_key": "6f270b64-1b7a-4269-91f8-3f9cf30ba0bb",
	    "qr_code_image": "imageb64" 
    },
     "initial_payment_data": {
			"receiver_conciliation_id": "6f270b64-1b7a-4269-91f8-3f9cf30ba0bb"			  
		},
    "created_at": "2021-10-22T20:30:23.459Z"
}
```

### Response Body

| Campo                 | Tipo       | Descrição                                                                 | Caracteres |
|-----------------------|------------|---------------------------------------------------------------------------|------------|
| `request_control_key` | uuid       | Chave de controle da requisição enviada pelo cliente.                     | 36         |
| `recurrence_key`      | uuid       | Chave única de identificação da recorrência de assinatura.                | 36         |
| `recurrence_status`   | enumerator | Status atual da recorrência.                                              | [Enumeradores recurrence_status](#enumeradores-recurrence_status) |
| `qr_code_data`        | enumerator | Dados do QRCode                                                           | [Objeto qr_code_data](#enumeradores-qr_code_data) |
| `initial_payment_data`| enumerator | Informações do pagamento iniciado                                          | [Objeto qr_code_data](#enumeradores-qr_code_data) |
| `created_at`          | string     | Data e hora de criação da recorrência (formato ISO 8601).                 | -          |

### Objeto qr_code_data

| Campo | Tipo   | Descrição               | Caracteres |
|-------|--------|-------------------------|------------|
| `qr_code_url` | string | URL do copia e cola do qr_code     | -          |
| `qr_code_key`| uuuid | Chave Única de identificação do qr_code. | 36          |
| `qr_code_image`| string | Base64 da imagem do qr_code | -         |

### Objeto initial_payment_data

| Campo | Tipo   | Descrição               | Caracteres |
|-------|--------|-------------------------|------------|
| `receiver_conciliation_id` | string     | Identificador único para conciliação do pagamento pelo recebedor.                        | 32         |

### Enumeradores recurrence_status

| Enumerador           | Descrição                         |
|----------------------|-----------------------------------|
| `pending_confirmation` | Recorrência pendente de confirmação |
| `active`              | Recorrência ativa                 |
| `cancelled`           | Recorrência cancelada             |
| `suspended`           | Recorrência suspensa              |
| `expired`             | Recorrência expirada              |

STATUS 4XX

**Response Error**

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em português",
  "code": "codigo"
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                | Descrição (eng)<br/>`description`                                          | Descrição (ptbr)<br/>`translation`                                 |
|-------------|----------------------|-----------------------------------|----------------------------------------------------------------------------|--------------------------------------------------------------------|
| 400         | QIT000002            | Bad Request                       | Invalid request schema.                                                    | Erro no esquema da requisição.                                     |
| 403         | APX000030            | Unauthorized Transaction          | User is not authorized to create this recurrence.                          | Usuário não autorizado a criar esta recorrência.                   |
| 403         | APX000018            | Endpoint Access Denied            | Requester lacks permission to access this endpoint.                        | Requester não possui permissão para acessar este endpoint.          |
| 404         | APX000021            | Subscription Not Found            | Subscription \{subscription_key\} not found.                               | Assinatura \{subscription_key\} não encontrada.                     |
| 404         | APX000002            | Recurrence Not Found              | Recurrence \{recurrence_key\} not found.                                   | Recorrência \{recurrence_key\} não encontrada.                      |
| 406         | APX000027            | Invalid Transaction Amount        | Transaction amount \{minimum_transaction_amount\} is invalid.              | Valor da transação \{minimum_transaction_amount\} é inválido.        |
| 409         | APX000014            | Request Control Key Conflict      | The request_control_key \{request_control_key\} is already in use.         | A request_control_key \{request_control_key\} já está em uso.        |

---

# Criar uma Recorrência (Jornada 1)

URL: /documentation/baas/pix_automatico/recebedor/journey_one

> Jornada 1 — Sem QR Code (notificação no app)

{`
.hero-section { background: linear-gradient(135deg, #eff6ff 0%, #ffffff 100%); border: 1px solid #e5e7eb; border-radius: 16px; padding: 24px; margin: 24px 0 32px 0; }
.hero-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; margin-top: 20px; }
.hero-item { background: #ffffff; border: 1px solid #e5e7eb; border-radius: 10px; padding: 16px; }
.hero-item > strong { display: block; color: #1e40af; font-size: 14px; margin-bottom: 6px; font-weight: 700; }
.hero-item p { margin: 0; font-size: 13px; color: #475569; line-height: 1.5; }

.endpoint-card { background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%); border: 2px solid #e5e7eb; border-radius: 12px; padding: 24px; position: relative; overflow: hidden; }
.endpoint-card::before { content: ''; position: absolute; top: 0; left: 0; width: 4px; height: 100%; background: linear-gradient(to bottom, #3b82f6, #1e40af); }
.endpoint-list { display: grid; gap: 12px; font-size: 13px; color: #334155; }
.endpoint__item { display: grid; grid-template-columns: 120px 1fr; align-items: center; gap: 12px; background: #ffffff; border: 1px solid #e5e7eb; border-radius: 8px; padding: 10px 14px; }
.badge { font-size: 11px; font-weight: 800; padding: 4px 10px; border-radius: 6px; color: #fff; text-transform: uppercase; letter-spacing: .4px; background: #1e40af; }

.details-container { background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%); border: 1px solid #e5e7eb; border-radius: 10px; padding: 8px 12px; margin: 20px 0; }
.details-container summary { font-weight: 700; color: #1e40af; cursor: pointer; font-size: 14px; padding: 10px 0 10px 28px; display: flex; align-items: center; position: relative; }
.details-container summary::-webkit-details-marker { display: none; }
.details-container summary::before { content: ''; position: absolute; left: 10px; width: 0; height: 0; border-left: 7px solid #1e40af; border-top: 6px solid transparent; border-bottom: 6px solid transparent; transition: transform .2s ease; }
.details-container[open] summary::before { transform: rotate(90deg); }
.code-block { margin-top: 12px; border-radius: 8px; overflow: hidden; }

.table-container { overflow: auto; border: 0; border-radius: 0; margin: 20px 0; background: transparent; }
.table-container table { width: 100%; border-collapse: collapse; font-size: 13px; }
.table-container th, .table-container td { border-top: 1px solid #e5e7eb; padding: 12px 16px; text-align: left; }
.table-container thead th { background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%); font-weight: 700; color: #0f172a; font-size: 13px; }
`}

Visão geral
O que é Autorização solicitada ao pagador diretamente no app do banco, sem leitura de QR Code.
Quando usar Contato ativo (telefone, chat, presencial) ou relacionamento já existente com o cliente.
Como funciona Recebedor cria a recorrência com dados da conta do pagador → o pagador recebe uma notificação no app → aprova a recorrência → futuras cobranças podem ser agendadas.
Benefícios Experiência simples e direta; não exige exibição de QR Code.

## Request

ENDPOINT /account/ account_key /outgoing_recurrence/journey_one
MÉTODO POST

### Request Path Params

| Campo         | Tipo  | Descrição                                      | Caracteres |
|---------------|-------|------------------------------------------------|------------|
| `account_key`*| uuid4 | Chave única de identificação da conta.          | 36         |

### Request Body

**Request Body: Criar Recorrência (Jornada 1)**

```json
{
    "request_control_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
    "periodicity": "monthly",
    "minimum_recurrence_amount": 125,
    "start_date": "2025-06-10",
    "end_date": "2027-06-10",
    "pix_message": "Conta de Luz Residencial nº123",
    "recurrence_type": "variable_amount",
    "debtor_data": {
        "name": "Sebastião",
        "email": "sebastiao@test.com",
        "document_number": "05431134850",
        "contract_id": "Contrato de pagamento recorrente",
        "address": {
            "street": "Av. Brigadeiro Faria Lima",
            "state": "SP",
            "city": "São Paulo",
            "neighborhood": "Jardim Paulistano",
            "number": "2391",
            "postal_code": "01452905",
            "complement": "Complemento"
        },
        "account_data": {
            "account_number": "123456",
            "account_digit": "7",
            "account_branch": "0001",
            "ispb": "31872495"
        }
    },
    "retry_configuration": {
        "retry_allowed": true,
        "retry_rule": {
            "first_retry": {
                "day": "1",
            },
            "second_retry": {
                "day": "3",
            },
            "third_retry": {
                "day": "4",
            }
        }
    },
    "settlement_date_type": "workdays"
}
```

### Body Params

| Campo                          | Tipo       | Descrição                                                                                                  | Caracteres |
|--------------------------------|------------|------------------------------------------------------------------------------------------------------------|------------|
| `request_control_key` *        | uuid       | Chave única de identificação da requisição utilizada pelo cliente no formato uuid4.                        | 36         |
| `periodicity` *                | enumerator | Tipo da periodicidade associada à recorrência da assinatura.                                               | [Enumeradores periodicity](#enumeradores-periodicity) |
| `minimum_recurrence_amount`   | number     | Valor mínimo da transação para recorrências de valor variável (em centavos).                               | -          |
| `start_date` *                 | string     | Data de início da recorrência (formato ISO 8601, e.g., "2025-07-01").                                      | -          |
| `end_date`                     | string     | Data de término da recorrência; para tempo indeterminado, enviar como null.                                | -          |
| `pix_message` *                | string     | Mensagem a ser enviada junto à transação Pix.                                                              | 140        |
| `debtor_data` *                | Object     | Dados do devedor (assinante).                                                                              | [Objeto debtor_data](#objeto-debtor_data) |
| `retry_configuration` *        | Object     | Configuração de retentativas para transações não concluídas.                                               | [Objeto retry_configuration](#objeto-retry_configuration) |
| `settlement_date_type` *       | enumerator | Tipo de ajuste da data de liquidação                                                                       | [Enumeradores settlement_date_type](#enumeradores-settlement_date_type) |
| `recurrence_type` *       | enumerator | Tipo de recorrência                                                                                             | [Enumeradores recurrence_type](#enumeradores-recurrence_type) |

:::caution Atenção
O campo `minimum_recurrence_amount` é opcional e deve ser informado apenas para recorrência de valor variável. Caso a recorrência seja de valor fixo, deve-se enviar o campo `recurrence_amount`, com o valor da recorrência. Assim como o enumerador `recurrence_type`, que deverá corresponder ao tipo da recorrência (Valor fixo ou variável).
:::

### Enumeradores periodicity

| Enumerador   | Descrição             |
|--------------|-----------------------|
| `weekly`     | Recorrência semanal   |
| `monthly`    | Recorrência mensal    |
| `quarterly`  | Recorrência trimestral|
| `semiannual` | Recorrência semestral |
| `annual`     | Recorrência anual     |

### Enumeradores settlement_date_type

| Enumerador   | Descrição             |
|--------------|-----------------------|
| `workdays`     | Dias úteis   |
| `calendar_days`     | Dias corridos   |

### Enumeradores recurrence_type

| Enumerador   | Descrição             |
|--------------|-----------------------|
| `fixed_amount`     | Recorrência de Valor Fixo   |
| `variable_amount`     | Recorrência de Valor Variável   |

### Objeto debtor_data

| Campo               | Tipo   | Descrição             | Caracteres |
|---------------------|--------|-----------------------|------------|
| `name` *            | string | Nome do assinante.    | 50         |
| `email` *           | string | E-mail do assinante.  | 100        |
| `document_number` * | string | CPF ou CNPJ do assinante. | 14      |
| `contract_id`       | string | Identificador do contrato do assinante. | 100      |
| `address` *         | Object | Endereço do assinante.| [Objeto address](#objeto-address) |
| `account_data` *    | Object | Dados bancários do assinante. | [Objeto account_data](#objeto-account_data) |

### Objeto address

| Campo         | Tipo   | Descrição         | Caracteres |
|---------------|--------|-------------------|------------|
| `street`      | string | Rua.              | -          |
| `state`       | string | Estado.           | -          |
| `city`        | string | Cidade.           | -          |
| `neighborhood`| string | Bairro.           | -          |
| `number`      | string | Número.           | -          |
| `postal_code` | string | CEP.              | -          |
| `complement`  | string | Complemento.      | -          |

### Objeto account_data

| Campo           | Tipo   | Descrição                    | Caracteres |
|-----------------|--------|------------------------------|------------|
| `account_number`| string | Número da conta.             | -          |
| `account_digit` | string | Dígito da conta.             | -          |
| `account_branch`| string | Agência da conta.            | -          |
| `ispb`          | string | ISPB da instituição financeira. | -       |

### Objeto retry_configuration

| Campo         | Tipo    | Descrição               | Caracteres |
|---------------|---------|-------------------------|------------|
| `retry_allowed`| boolean | Indica se retentativas são permitidas. | -     |
| `retry_rule`  | Object  | Regras de retentativa.  | [Objeto retry_rule](#objeto-retry_rule) |

### Objeto retry_rule

| Campo         | Tipo   | Descrição               | Caracteres |
|---------------|--------|-------------------------|------------|
| `first_retry` | Object | Configuração da primeira retentativa. | [Objeto retry_detail](#objeto-retry_detail) |
| `second_retry`| Object | Configuração da segunda retentativa.  | [Objeto retry_detail](#objeto-retry_detail) |
| `third_retry` | Object | Configuração da terceira retentativa. | [Objeto retry_detail](#objeto-retry_detail) |

### Objeto retry_detail

| Campo | Tipo   | Descrição               | Caracteres |
|-------|--------|-------------------------|------------|
| `day` | string | Dia da retentativa.     | -          |

## Response

STATUS 200

**Response Body**

```json
{
    "request_control_key": "a7b9e3c1-f2d4-4a8b-9c7e-123456789abc",
    "recurrence_key": "b2c3d4e5-f6g7-4h8i-9j0k-l1m2n3o4p5q6",
    "recurrence_status": "pending_confirmation",
    "created_at": "2025-06-16T23:52:00.000Z"
}
```

### Response Body

| Campo                 | Tipo       | Descrição                                                                 | Caracteres |
|-----------------------|------------|---------------------------------------------------------------------------|------------|
| `request_control_key` | uuid       | Chave de controle da requisição enviada pelo cliente.                     | 36         |
| `recurrence_key`      | uuid       | Chave única de identificação da recorrência de assinatura.                | 36         |
| `recurrence_status`   | enumerator | Status atual da recorrência.                                              | [Enumeradores recurrence_status](#enumeradores-recurrence_status) |
| `created_at`          | string     | Data e hora de criação da recorrência (formato ISO 8601).                 | -          |

### Enumeradores recurrence_status

| Enumerador           | Descrição                         |
|----------------------|-----------------------------------|
| `pending_confirmation` | Recorrência pendente de confirmação |
| `active`              | Recorrência ativa                 |
| `cancelled`           | Recorrência cancelada             |
| `suspended`           | Recorrência suspensa              |
| `expired`             | Recorrência expirada              |

STATUS 4XX

Response Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em português",
  "code": "codigo"
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                | Descrição (eng)<br/>`description`                                          | Descrição (ptbr)<br/>`translation`                                 |
|-------------|----------------------|-----------------------------------|----------------------------------------------------------------------------|--------------------------------------------------------------------|
| 400         | QIT000002            | Bad Request                       | Invalid request schema.                                                    | Erro no esquema da requisição.                                     |
| 403         | APX000030            | Unauthorized Transaction          | User is not authorized to create this recurrence.                          | Usuário não autorizado a criar esta recorrência.                   |
| 403         | APX000018            | Endpoint Access Denied            | Requester lacks permission to access this endpoint.                        | Requester não possui permissão para acessar este endpoint.          |
| 404         | APX000021            | Subscription Not Found            | Subscription \{subscription_key\} not found.                               | Assinatura \{subscription_key\} não encontrada.                     |
| 404         | APX000002            | Recurrence Not Found              | Recurrence \{recurrence_key\} not found.                                   | Recorrência \{recurrence_key\} não encontrada.                      |
| 406         | APX000027            | Invalid Transaction Amount        | Transaction amount \{minimum_transaction_amount\} is invalid.              | Valor da transação \{minimum_transaction_amount\} é inválido.        |
| 409         | APX000014            | Request Control Key Conflict      | The request_control_key \{request_control_key\} is already in use.         | A request_control_key \{request_control_key\} já está em uso.        |

---

# Criar uma Recorrência (Jornada 3)

URL: /documentation/baas/pix_automatico/recebedor/journey_three

> Jornada 3 — QR Code + Primeiro Pagamento (ativação imediata da recorrência)

{`
.hero-section {
  background: linear-gradient(135deg, #eff6ff 0%, #ffffff 100%);
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  padding: 24px;
  margin: 24px 0 32px 0;
}

.hero-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  margin-top: 20px;
}

.hero-item {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 16px;
  transition: all 0.3s ease;
}

.hero-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  border-color: #3b82f6;
}

/* FIX: título em bloco, destaques inline dentro do parágrafo */
.j3-card > strong,
.hero-item > strong {
  display: block;
  color: #1e40af;
  font-size: 14px;
  margin-bottom: 6px;
  font-weight: 700;
}
.j3-card p strong,
.hero-item p strong {
  display: inline;
  color: #1e40af;
  font-weight: 700;
}

.hero-item p {
  margin: 0;
  font-size: 13px;
  color: #475569;
  line-height: 1.5;
}

.flow-section {
  margin: 32px 0;
}

.flow-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
  margin-top: 20px;
}

.flow-step-card {
  border-radius: 12px;
  padding: 18px;
  color: #ffffff;
  min-height: 100px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.flow-step-card h4 {
  margin: 0;
  font-size: 15px;
  font-weight: 700;
}

.flow-step-card p {
  margin: 0;
  font-size: 13px;
  opacity: 0.95;
  line-height: 1.5;
}

.endpoint-section {
  margin: 32px 0;
}

.endpoint-card {
  background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
  border: 2px solid #e5e7eb;
  border-radius: 12px;
  padding: 24px;
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
}

.endpoint-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
  background: linear-gradient(to bottom, #3b82f6, #1e40af);
  transition: width 0.3s ease;
}

.endpoint-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  border-color: #3b82f6;
}

.endpoint-card:hover::before {
  width: 6px;
}

.endpoint-list {
  display: grid;
  gap: 12px;
  font-size: 13px;
  color: #334155;
}

.endpoint-item {
  display: grid;
  grid-template-columns: 120px 1fr;
  align-items: center;
  gap: 12px;
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 10px 14px;
}

.badge {
  font-size: 11px;
  font-weight: 800;
  padding: 4px 10px;
  border-radius: 6px;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  background: #1e40af;
}

.info-note {
  background: linear-gradient(135deg, #eff6ff 0%, #ffffff 100%);
  border-left: 4px solid #3b82f6;
  padding: 14px 18px;
  border-radius: 8px;
  font-size: 13px;
  color: #1e40af;
  margin: 20px 0;
  line-height: 1.6;
}

.warn-note {
  background: linear-gradient(135deg, #fef3c7 0%, #ffffff 100%);
  border-left: 4px solid #f59e0b;
  padding: 14px 18px;
  border-radius: 8px;
  font-size: 13px;
  color: #0f172a;
  margin: 20px 0;
  line-height: 1.6;
}

.table-container {
  overflow: auto;
  border: 0;
  border-radius: 0;
  margin: 20px 0;
  background: transparent;
}

.table-container table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.table-container th,
.table-container td {
  border-top: 1px solid #e5e7eb;
  padding: 12px 16px;
  text-align: left;
}

.table-container thead th {
  background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
  font-weight: 700;
  color: #0f172a;
  font-size: 13px;
}

.table-container tbody tr:hover {
  background: #f8fafc;
}

.details-container {
  background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 8px 12px;
  margin: 20px 0;
}

.details-container summary {
  font-weight: 700;
  color: #1e40af;
  cursor: pointer;
  font-size: 14px;
  padding: 10px 0 10px 28px;
  display: flex;
  align-items: center;
  position: relative;
}
.details-container summary::-webkit-details-marker { display: none; }
.details-container summary::before {
  content: '';
  position: absolute;
  left: 10px;
  width: 0; height: 0;
  border-left: 7px solid #1e40af;
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  transition: transform .2s ease;
}
.details-container[open] summary::before { transform: rotate(90deg); }

.code-block {
  margin-top: 12px;
  border-radius: 8px;
  overflow: hidden;
}

.tips-section {
  margin: 32px 0;
}

.tip-card {
  background: linear-gradient(135deg, #ffffff 0%, #f0fdf4 100%);
  border: 2px solid #d1fae5;
  border-radius: 12px;
  padding: 18px 20px;
  margin-bottom: 16px;
  transition: all 0.3s ease;
}

.tip-card:hover {
  transform: translateY(-2px);
  border-color: #10b981;
  box-shadow: 0 6px 20px rgba(16, 185, 129, 0.15);
}

.tip-text {
  font-size: 14px;
  line-height: 1.7;
  color: #475569;
  margin: 0;
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.tip-icon {
  color: #10b981;
  font-size: 18px;
  flex-shrink: 0;
  margin-top: 2px;
  font-weight: 700;
}

.section-title {
  font-size: 20px;
  font-weight: 700;
  color: #0f172a;
  margin: 32px 0 20px 0;
  padding-bottom: 12px;
  border-bottom: 2px solid #e5e7eb;
}

@media (max-width: 768px) {
  .hero-grid,
  .flow-grid {
    grid-template-columns: 1fr;
  }
  .endpoint-item {
    grid-template-columns: 100px 1fr;
    font-size: 12px;
  }
  .endpoint-item code {
    font-size: 11px;
  }
}
`}

Visão geral
O que é
Um único QR Code que permite pagar agora e ativar a recorrência no mesmo fluxo.
Quando usar
Casos com cobrança inicial obrigatória (ex.: adesão, matrícula, primeira mensalidade).
Como funciona
O pagador lê o QR → realiza o primeiro pagamento → autoriza a recorrência imediatamente.
Benefícios
Receita imediata + recorrência configurada, reduzindo fricção e inadimplência.

### Fluxo da Jornada 3

1. Ler o QR Code
O usuário escaneia o QR dinâmico gerado para a cobrança inicial.
2. Pagar Agora
O pagamento imediato é processado, registrando a cobrança inicial.
3. Autorizar Recorrência
Na mesma experiência, o usuário confirma a autorização da recorrência.
4. Recorrência Ativa
Próximos ciclos são automatizados; você só precisa conciliar valores quando necessário.

---

## Request

ENDPOINT
/account/ account_key /outgoing_recurrence/journey_three
MÉTODO
POST

### Path Params

Campo Tipo Descrição Caracteres
account_key &#42; uuid4 Chave única de identificação da conta. 36

### Request Body

**Request Body: Criar Recorrência (Jornada 3)**

```json
{
  "request_control_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
  "periodicity": "monthly",
  "minimum_recurrence_amount": 125,
  "start_date": "2025-06-10",
  "end_date": "2027-06-10",
  "pix_message": "Conta de Luz Residencial nº123",
  "recurrence_type": "variable_amount",
  "debtor_data": {
    "name": "Sebastião",
    "email": "sebastiao@test.com",
    "document_number": "05431134850",
    "contract_id": "12345",
    "address": {
      "street": "Av. Brigadeiro Faria Lima",
      "state": "SP",
      "city": "São Paulo",
      "neighborhood": "Jardim Paulistano",
      "number": "2391",
      "postal_code": "01452905",
      "complement": "Complemento"
    }
  },
  "initial_payment_data": {
    "amount": 22.34,
    "pix_key": "3d7d6a2b-f72f-44z7-bb20-79a94dff5645",
    "qr_code_type": "dynamic_term",
    "additional_data": [
      {
        "key_name": "Juros e Multa",
        "value": "Juros 2 ao mes e multa de 1%"
      }
    ],
    "fine_amount": 3,
    "interest_amount": 2,
    "expiration_date": "2023-03-25",
    "max_payment_days": 128,
    "rebate_amount": 1,
    "discounts": [],
    "receiver_conciliation_id": "3d7d6a2bf72f44z7bb2079a94dff5645"
  },
  "retry_configuration": {
    "retry_allowed": true,
    "retry_rule": {
      "first_retry": {
        "day": "1"
      },
      "second_retry": {
        "day": "3"
      },
      "third_retry": {
        "day": "4"
      }
    }
  },
  "settlement_date_type": "workdays"
}
```

### Body Params

Campo Tipo Descrição Caracteres
request_control_key &#42; uuid Chave única da requisição (uuid4). 36
periodicity &#42; enumerator Periodicidade da recorrência. Enumeradores periodicity
minimum_recurrence_amount float Valor mínimo por transação (recorrências variáveis). -
start_date &#42; string Data de início (ISO 8601). -
end_date string Data de término ou null para indeterminado. -
pix_message &#42; string Mensagem exibida na transação Pix. 140
debtor_data &#42; Object Dados do assinante. Objeto debtor_data
retry_configuration &#42; Object Regras de retentativa. Objeto retry_configuration
settlement_date_type &#42; enumerator Ajuste da data de liquidação. Enumeradores settlement_date_type
recurrence_type &#42; enumerator Tipo da recorrência. Enumeradores recurrence_type
initial_payment_data &#42; Object Dados da cobrança inicial. Objeto initial_payment_data

Atenção: para recorrência de valor variável, informe minimum_recurrence_amount . Para valor fixo, envie recurrence_amount e ajuste o enumerador recurrence_type de acordo.

#### Enumeradores periodicity

Enumerador Descrição
weekly Recorrência semanal
monthly Recorrência mensal
quarterly Recorrência trimestral
semiannual Recorrência semestral
annual Recorrência anual

#### Enumeradores settlement_date_type

Enumerador Descrição
workdays Dias úteis
calendar_days Dias corridos

#### Enumeradores recurrence_type

Enumerador Descrição
fixed_amount Recorrência de Valor Fixo
variable_amount Recorrência de Valor Variável

#### Objeto debtor_data

Campo Tipo Descrição Caracteres
name &#42; string Nome do assinante. 50
email &#42; string E-mail do assinante. 100
document_number &#42; string CPF/CNPJ do assinante. 14
contract_id string Identificador do contrato. 100
address &#42; Object Endereço do assinante. Objeto address

#### Objeto address

Campo Tipo Descrição
street string Rua
state string Estado
city string Cidade
neighborhood string Bairro
number string Número
postal_code string CEP
complement string Complemento

#### Objeto retry_configuration

Campo Tipo Descrição
retry_allowed boolean Habilita retentativas
retry_rule Object Regras de retentativa

#### Objeto retry_rule

Campo Tipo Descrição
first_retry Object Primeira retentativa
second_retry Object Segunda retentativa
third_retry Object Terceira retentativa

#### Objeto retry_detail

Campo Tipo Descrição
day string Dia da retentativa

#### Objeto initial_payment_data

Campo Tipo Descrição Caracteres
amount &#42; number Valor da cobrança inicial (R$). -
pix_key &#42; string Chave Pix de destino. 77
qr_code_type &#42; enumerator Tipo de QR Code da cobrança inicial. Enumeradores qr_code_type
additional_data &#42; array Lista de dados adicionais (ex.: juros/multa). Objetos additional_data
fine_amount number Multa por atraso. -
interest_amount number Juros por atraso. -
expiration_date &#42; string Data de expiração (ISO 8601). -
max_payment_days integer Dias máximos após expiração para aceitar o pagamento. -
rebate_amount number Desconto por antecipação. -
discounts array Descontos adicionais. -
receiver_conciliation_id string Identificador para conciliação pelo recebedor. 32

#### Enumeradores qr_code_type

Valor Descrição
dynamic_instant QR dinâmico para pagamento imediato
dynamic_term QR dinâmico com prazo (vencimento futuro)

#### Objetos additional_data

Campo Tipo Descrição
key_name string Rótulo da informação (ex.: Juros e Multa)
value string Valor/descrição

---

## Response

STATUS
200

**Response Body (exemplo)**

```json
{
  "request_control_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
  "outgoing_recurrence_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "outgoing_recurrence_status": "pending_confirmation",
  "qr_code_data": {
    "qr_code_url": "url",
    "qr_code_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc85",
    "qr_code_image": "imageb64"
  },
  "initial_payment_data": {
    "receiver_conciliation_id": "6f270b64-1b7a-4269-91f8-3f9cf30ba0bb"
  },
  "created_at": "2021-10-22T20:30:23.459Z"
}
```

### Campos do Response

Campo Tipo Descrição Caracteres
request_control_key uuid Chave de controle enviada pelo cliente 36
recurrence_key uuid Identificação da recorrência de assinatura 36
recurrence_status enumerator Status da recorrência Enumeradores recurrence_status
qr_code_data Object Dados do QR gerado para o primeiro pagamento Objeto qr_code_data
initial_payment_data Object Informações do pagamento inicial Objeto initial_payment_data
created_at string Data/hora de criação (ISO 8601) -

#### Objeto qr_code_data

Campo Tipo Descrição Caracteres
qr_code_url string URL do copia e cola -
qr_code_key uuid Identificador do QR 36
qr_code_image string Imagem (Base64) -

#### Objeto initial_payment_data

Campo Tipo Descrição Caracteres
receiver_conciliation_id string ID de conciliação do pagamento 32

#### Enumeradores recurrence_status

Enumerador Descrição
pending_confirmation Pendente de confirmação
active Ativa
cancelled Cancelada
suspended Suspensa
expired Expirada

---

## Dicas e Boas Práticas

✓
Conciliação em recorrência variável: para variable_amount , concilie o valor de 10 a 3 dias antes da data de cobrança.
✓
Mensagens Pix: utilize pix_message com até 140 caracteres para explicar claramente a cobrança inicial.
⚠
Segurança: valide documentos/contas e trate erros de rede e de integrações externas com retentativas idempotentes.

---

# Criar uma Recorrência (Jornada 2)

URL: /documentation/baas/pix_automatico/recebedor/journey_two

> Jornada 2 — QR Code com dados apenas da recorrência

{`
.hero-section { background: linear-gradient(135deg, #eff6ff 0%, #ffffff 100%); border: 1px solid #e5e7eb; border-radius: 16px; padding: 24px; margin: 24px 0 32px 0; }
.hero-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; margin-top: 20px; }
.hero-item { background: #ffffff; border: 1px solid #e5e7eb; border-radius: 10px; padding: 16px; }
.hero-item > strong { display: block; color: #1e40af; font-size: 14px; margin-bottom: 6px; font-weight: 700; }
.hero-item p { margin: 0; font-size: 13px; color: #475569; line-height: 1.5; }

.endpoint-card { background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%); border: 2px solid #e5e7eb; border-radius: 12px; padding: 24px; position: relative; overflow: hidden; }
.endpoint-card::before { content: ''; position: absolute; top: 0; left: 0; width: 4px; height: 100%; background: linear-gradient(to bottom, #3b82f6, #1e40af); }
.endpoint-list { display: grid; gap: 12px; font-size: 13px; color: #334155; }
.endpoint__item { display: grid; grid-template-columns: 120px 1fr; align-items: center; gap: 12px; background: #ffffff; border: 1px solid #e5e7eb; border-radius: 8px; padding: 10px 14px; }
.badge { font-size: 11px; font-weight: 800; padding: 4px 10px; border-radius: 6px; color: #fff; text-transform: uppercase; letter-spacing: .4px; background: #1e40af; }

.details-container { background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%); border: 1px solid #e5e7eb; border-radius: 10px; padding: 8px 12px; margin: 20px 0; }
.details-container summary { font-weight: 700; color: #1e40af; cursor: pointer; font-size: 14px; padding: 10px 0 10px 28px; display: flex; align-items: center; position: relative; }
.details-container summary::-webkit-details-marker { display: none; }
.details-container summary::before { content: ''; position: absolute; left: 10px; width: 0; height: 0; border-left: 7px solid #1e40af; border-top: 6px solid transparent; border-bottom: 6px solid transparent; transition: transform .2s ease; }
.details-container[open] summary::before { transform: rotate(90deg); }
.code-block { margin-top: 12px; border-radius: 8px; overflow: hidden; }

.table-container { overflow: auto; border: 0; border-radius: 0; margin: 20px 0; background: transparent; }
.table-container table { width: 100%; border-collapse: collapse; font-size: 13px; }
.table-container th, .table-container td { border-top: 1px solid #e5e7eb; padding: 12px 16px; text-align: left; }
.table-container thead th { background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%); font-weight: 700; color: #0f172a; font-size: 13px; }
`}

Visão geral
O que é QR Code que apresenta apenas os dados da recorrência para o pagador autorizar, sem cobrança imediata.
Quando usar Onboarding sem cobrança inicial; uso em pontos de venda, balcões, telas ou materiais impressos.
Como funciona Pagador lê o QR → visualiza os dados da recorrência no app → autoriza → futuras cobranças poderão ser agendadas.
Benefícios Habilitação ágil via QR; permite captação em massa de clientes com baixo atrito e o QR pode ser reutilizado para novas recorrências.

## Request

{`
.endpoint-card { background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%); border: 2px solid #e5e7eb; border-radius: 12px; padding: 24px; position: relative; overflow: hidden; }
.endpoint-card::before { content: ''; position: absolute; top: 0; left: 0; width: 4px; height: 100%; background: linear-gradient(to bottom, #3b82f6, #1e40af); }
.endpoint-list { display: grid; gap: 12px; font-size: 13px; color: #334155; }
.endpoint__item { display: grid; grid-template-columns: 120px 1fr; align-items: center; gap: 12px; background: #ffffff; border: 1px solid #e5e7eb; border-radius: 8px; padding: 10px 14px; }
.badge { font-size: 11px; font-weight: 800; padding: 4px 10px; border-radius: 6px; color: #fff; text-transform: uppercase; letter-spacing: .4px; background: #1e40af; }
.details-container { background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%); border: 1px solid #e5e7eb; border-radius: 10px; padding: 8px 12px; margin: 20px 0; }
.details-container summary { font-weight: 700; color: #1e40af; cursor: pointer; font-size: 14px; padding: 10px 0 10px 28px; display: flex; align-items: center; position: relative; }
.details-container summary::-webkit-details-marker { display: none; }
.details-container summary::before { content: ''; position: absolute; left: 10px; width: 0; height: 0; border-left: 7px solid #1e40af; border-top: 6px solid transparent; border-bottom: 6px solid transparent; transition: transform .2s ease; }
.details-container[open] summary::before { transform: rotate(90deg); }
.code-block { margin-top: 12px; border-radius: 8px; overflow: hidden; }
`}

ENDPOINT /account/ account_key /outgoing_recurrence/journey_two
MÉTODO POST

### Request Path Params

| Campo         | Tipo  | Descrição                                      | Caracteres |
|---------------|-------|------------------------------------------------|------------|
| `account_key`*| uuid4 | Chave única de identificação da conta.          | 36         |

### Request Body

**Request Body: Criar Recorrência (Jornada 2)**

```json
{
    "request_control_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
    "periodicity": "monthly",
    "minimum_recurrence_amount": 125,
    "start_date": "2025-06-10",
    "end_date": "2027-06-10",
    "pix_message": "Conta de Luz Residencial nº123",
    "recurrence_type": "variable_amount",
    "debtor_data": {
        "name": "Sebastião",
        "email": "sebastiao@test.com",
        "document_number": "05431134850",
        "contract_id": "124587624",
        "address": {
            "street": "Av. Brigadeiro Faria Lima",
            "state": "SP",
            "city": "São Paulo",
            "neighborhood": "Jardim Paulistano",
            "number": "2391",
            "postal_code": "01452905",
            "complement": "Complemento"
        }
    },
    "retry_configuration": {
        "retry_allowed": true,
        "retry_rule": {
            "first_retry": {
                "day": "1"
            },
            "second_retry": {
                "day": "3"
            },
            "third_retry": {
                "day": "4"
            }
        }
    },
    "settlement_date_type": "workdays"
}
```

### Body Params

| Campo                          | Tipo       | Descrição                                                                                                  | Caracteres |
|--------------------------------|------------|------------------------------------------------------------------------------------------------------------|------------|
| `request_control_key` *        | uuid       | Chave única de identificação da requisição utilizada pelo cliente no formato uuid4.                        | 36         |
| `periodicity` *                | enumerator | Tipo da periodicidade associada à recorrência da assinatura.                                               | [Enumeradores periodicity](#enumeradores-periodicity) |
| `minimum_recurrence_amount`   | number     | Valor mínimo da transação para recorrências de valor variável (em centavos).                               | -          |
| `start_date` *                 | string     | Data de início da recorrência (formato ISO 8601, e.g., "2025-07-01").                                      | -          |
| `end_date`                     | string     | Data de término da recorrência; para tempo indeterminado, enviar como null.                                | -          |
| `pix_message` *                | string     | Mensagem a ser enviada junto à transação Pix.                                                              | 140        |
| `debtor_data` *                | Object     | Dados do devedor (assinante).                                                                              | [Objeto debtor_data](#objeto-debtor_data) |
| `retry_configuration` *        | Object     | Configuração de retentativas para transações não concluídas.                                               | [Objeto retry_configuration](#objeto-retry_configuration) |
| `settlement_date_type` *       | enumerator | Tipo de ajuste da data de liquidação                                                                       | [Enumeradores settlement_date_type](#enumeradores-settlement_date_type) |
| `recurrence_type` *       | enumerator | Tipo de recorrência                                                                                             | [Enumeradores recurrence_type](#enumeradores-recurrence_type) |

:::caution Atenção
O campo `minimum_recurrence_amount` é opcional e deve ser informado apenas para recorrência de valor variável. Caso a recorrência seja de valor fixo, deve-se enviar o campo `recurrence_amount`, com o valor da recorrência. Assim como o enumerador `recurrence_type`, que deverá corresponder ao tipo da recorrência (Valor fixo ou variável).
:::

### Enumeradores periodicity

| Enumerador   | Descrição             |
|--------------|-----------------------|
| `weekly`     | Recorrência semanal   |
| `monthly`    | Recorrência mensal    |
| `quarterly`  | Recorrência trimestral|
| `semiannual` | Recorrência semestral |
| `annual`     | Recorrência anual     |

### Enumeradores settlement_date_type

| Enumerador   | Descrição             |
|--------------|-----------------------|
| `workdays`     | Dias úteis   |
| `calendar_days`     | Dias corridos   |

### Enumeradores recurrence_type

| Enumerador   | Descrição             |
|--------------|-----------------------|
| `fixed_amount`     | Recorrência de Valor Fixo   |
| `variable_amount`     | Recorrência de Valor Variável   |

### Objeto debtor_data

| Campo               | Tipo   | Descrição             | Caracteres |
|---------------------|--------|-----------------------|------------|
| `name` *            | string | Nome do assinante.    | 50         |
| `email` *           | string | E-mail do assinante.  | 100        |
| `document_number` * | string | CPF ou CNPJ do assinante. | 14      |
| `contract_id`       | string | Identificador do contrato do assinante. | 100      |
| `address` *         | Object | Endereço do assinante.| [Objeto address](#objeto-address) |

### Objeto address

| Campo         | Tipo   | Descrição         | Caracteres |
|---------------|--------|-------------------|------------|
| `street`      | string | Rua.              | -          |
| `state`       | string | Estado.           | -          |
| `city`        | string | Cidade.           | -          |
| `neighborhood`| string | Bairro.           | -          |
| `number`      | string | Número.           | -          |
| `postal_code` | string | CEP.              | -          |
| `complement`  | string | Complemento.      | -          |

### Objeto retry_configuration

| Campo         | Tipo    | Descrição               | Caracteres |
|---------------|---------|-------------------------|------------|
| `retry_allowed`| boolean | Indica se retentativas são permitidas. | -     |
| `retry_rule`  | Object  | Regras de retentativa.  | [Objeto retry_rule](#objeto-retry_rule) |

### Objeto retry_rule

| Campo         | Tipo   | Descrição               | Caracteres |
|---------------|--------|-------------------------|------------|
| `first_retry` | Object | Configuração da primeira retentativa. | [Objeto retry_detail](#objeto-retry_detail) |
| `second_retry`| Object | Configuração da segunda retentativa.  | [Objeto retry_detail](#objeto-retry_detail) |
| `third_retry` | Object | Configuração da terceira retentativa. | [Objeto retry_detail](#objeto-retry_detail) |

### Objeto retry_detail

| Campo | Tipo   | Descrição               | Caracteres |
|-------|--------|-------------------------|------------|
| `day` | string | Dia da retentativa.     | -          |

## Response

STATUS 200

**Response Body**

```json
{
    "request_control_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
    "outgoing_recurrence_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "outgoing_recurrence_status": "pending_confirmation",
    "qr_code_data": {
	    "qr_code_url": "url",
	    "qr_code_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc85",
	    "qr_code_image": "imageb64"  
    },
    "created_at": "2021-10-22T20:30:23.459Z"
}
```

### Response Body

| Campo                 | Tipo       | Descrição                                                                 | Caracteres |
|-----------------------|------------|---------------------------------------------------------------------------|------------|
| `request_control_key` | uuid       | Chave de controle da requisição enviada pelo cliente.                     | 36         |
| `recurrence_key`      | uuid       | Chave única de identificação da recorrência de assinatura.                | 36         |
| `recurrence_status`   | enumerator | Status atual da recorrência.                                              | [Enumeradores recurrence_status](#enumeradores-recurrence_status) |
| `qr_code_data`   | enumerator | Status atual da recorrência.                                              | [Objeto qr_code_data](#enumeradores-qr_code_data) |
| `created_at`          | string     | Data e hora de criação da recorrência (formato ISO 8601).                 | -          |

### Objeto qr_code_data

| Campo | Tipo   | Descrição               | Caracteres |
|-------|--------|-------------------------|------------|
| `qr_code_url` | string | URL do copia e cola do qr_code     | -          |
| `qr_code_key`| uuuid | Chave Única de identificação do qr_code. | 36          |
| `qr_code_image`| string | Base64 da imagem do qr_code | -         |

### Enumeradores recurrence_status

| Enumerador           | Descrição                         |
|----------------------|-----------------------------------|
| `pending_confirmation` | Recorrência pendente de confirmação |
| `active`              | Recorrência ativa                 |
| `cancelled`           | Recorrência cancelada             |
| `suspended`           | Recorrência suspensa              |
| `expired`             | Recorrência expirada              |

STATUS 4XX

**Response Error**

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em português",
  "code": "codigo"
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                | Descrição (eng)<br/>`description`                                          | Descrição (ptbr)<br/>`translation`                                 |
|-------------|----------------------|-----------------------------------|----------------------------------------------------------------------------|--------------------------------------------------------------------|
| 400         | QIT000002            | Bad Request                       | Invalid request schema.                                                    | Erro no esquema da requisição.                                     |
| 403         | APX000030            | Unauthorized Transaction          | User is not authorized to create this recurrence.                          | Usuário não autorizado a criar esta recorrência.                   |
| 403         | APX000018            | Endpoint Access Denied            | Requester lacks permission to access this endpoint.                        | Requester não possui permissão para acessar este endpoint.          |
| 404         | APX000021            | Subscription Not Found            | Subscription \{subscription_key\} not found.                               | Assinatura \{subscription_key\} não encontrada.                     |
| 404         | APX000002            | Recurrence Not Found              | Recurrence \{recurrence_key\} not found.                                   | Recorrência \{recurrence_key\} não encontrada.                      |
| 406         | APX000027            | Invalid Transaction Amount        | Transaction amount \{minimum_transaction_amount\} is invalid.              | Valor da transação \{minimum_transaction_amount\} é inválido.        |
| 409         | APX000014            | Request Control Key Conflict      | The request_control_key \{request_control_key\} is already in use.         | A request_control_key \{request_control_key\} já está em uso.        |

---

# Listagem de Recorrências de um Requester

URL: /documentation/baas/pix_automatico/recebedor/listar_recorrencias_de_um_requester

## Request

ENDPOINT /outgoing_recurrences
MÉTODO GET

### Query Params

| Campo                       | Tipo        | Descrição                                                              | Caracteres |
|-----------------------------|-------------|------------------------------------------------------------------------|------------|
| `outgoing_recurrence_status`| enumerador      | Filtra recorrências pelo status (`approved`, `pending`, `rejected`, `pending_confirmation`) | 30         |
| `page`                      | integer     | Número da página a ser retornada (paginação).                          | -          |
| `page_size`                 | integer     | Número de itens por página (paginação).                                | -          |

---

## Response

STATUS 200

Response Body

```json
{
  "outgoing_recurrences": [
    {
      "request_control_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
      "outgoing_recurrence_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "outgoing_recurrence_status": "approved",
      "periodicity": "monthly",
      "journey_type": "journey_four",
      "start_date": "2025-06-10",
      "end_date": "2027-06-10",
      "account_key": "uuuid",
      "outgoing_recurrence_data": {
        "minimum_recurrence_amount": 123.45,
        "recurrence_amount": null,
        "retry_configuration": {
          "retry_allowed": true,
          "retry_rule": {
            "first_retry": {
              "day": "1",
              "time": "14:00"
            },
            "second_retry": {
              "day": "3",
              "time": "12:00"
            },
            "third_retry": {
              "day": "4",
              "time": "15:32"
            }
          }
        },
        "debtor_data": {
          "name": "Sebastião",
          "email": "sebastiao@test.com",
          "document_number": "05431134850",
          "address": {
            "city": "São Paulo",
            "postal_code": "123456-789",
            "uf": "SP",
            "street": "Av Paulista 123"
          },
          "account_data": {
            "account_number": "123456",
            "account_digit": "7",
            "account_branch": "0001",
            "ispb": "31872495"
          }
        },
        "qr_code_data": {
          "qr_code_key": "0f45cc3d-9bd1-4d68-a865-4cf477b5da45",
          "qr_code_url": "urlqrcode.url",
          "qr_code_image": "image_base64"
        },
        "initial_payment_data": {
          "amount": 22.34,
          "pix_key": "3d7d6a2b-f72f-44z7-bb20-79a94dff5645",
          "qr_code_type": "dynamic_term",
          "additional_data": [
            {
              "key_name": "Juros e Multa",
              "value": "Juros 2 ao mes e multa de 1%"
            }
          ],
          "fine_amount": 3,
          "interest_amount": 2,
          "expiration_date": "2023-03-25",
          "max_payment_days": 128,
          "rebate_amount": 1,
          "discounts": [],
          "receiver_conciliation_id":"3d7d6a2bf72f44z7bb2079a94dff5645",
          "transaction_data":{
            "transaction_key":"4d7d6a2b-f72f-44z7-bb20-79a94dff5645",
            "pix_transfer_key":"5d7d6a2b-f72f-44z7-bb20-79a94dff5645",
            "end_to_end_id":"E32402502202303141907qlBAF1evdJ2"
         }
        },
        "pix_message": "Conta de Luz Residencial nº123",
        "settlement_date_type": "calendar_days"
      }
    }
  ],
  "pagination": {
    "page": 1,
    "page_size": 25,
    "number_of_pages": 4
  }
}
```

### Response Body Params

| Campo                  | Tipo   | Descrição                                                                               | Caracteres |
|------------------------|--------|-----------------------------------------------------------------------------------------|------------|
| `outgoing_recurrences` | array  | Lista de objetos de recorrências automáticas.                                           | [Array outgoing_recurrences](#array-outgoing_recurrences) |
| `pagination`           | object | Objeto de paginação contendo informações sobre as páginas dos resultados.               | [Objeto pagination](#objeto-pagination)                   |

---

### Array outgoing_recurrences

| Campo                        | Tipo       | Descrição                                                                               | Caracteres |
|------------------------------|------------|-----------------------------------------------------------------------------------------|------------|
| `request_control_key`        | uuidv4     | Chave única para controle da requisição.                                                | 36         |
| `outgoing_recurrence_key`    | uuidv4     | Identificador da recorrência automática.                                                | 36         |
| `account_key`                | uuidv4     | Chave única de identificação da conta                                                   | 36         |
| `outgoing_recurrence_status` | string     | Status atual da recorrência (`approved`, `pending`, `rejected`, etc.).                  | 30         |
| `periodicity`                | enumerator | Periodicidade da recorrência.                                                           | [Enumeradores periodicity](#enumeradores-periodicity)      |
| `journey_type`               | enumerator | Jornada da recorrência automática.                                                      | [Enumeradores journey_type](#enumeradores-journey_type)    |
| `start_date`                 | string     | Data de início da recorrência (formato ISO 8601, e.g., `2025-06-10`).                  | 10         |
| `end_date`                   | string     | Data de término da recorrência (formato ISO 8601) ou null, se indeterminado.            | 10 ou null |
| `outgoing_recurrence_data`   | object     | Objeto agrupando parâmetros da assinatura e dados complementares.                       | [Objeto outgoing_recurrence_data](#objeto-outgoing_recurrence_data) |

---

### Objeto outgoing_recurrence_data

| Campo                       | Tipo     | Descrição                                                      | Caracteres |
|-----------------------------|----------|----------------------------------------------------------------|------------|
| `minimum_recurrence_amount` | number   | Valor mínimo esperado nas recorrências de valor variável        | -          |
| `recurrence_amount`         | number   | Valor da recorrência (para valor fixo; null se variável)        | -          |
| `retry_configuration`       | object   | Configuração de tentativas para recorrências não concluídas      | [Objeto retry_configuration](#objeto-retry_configuration) |
| `debtor_data`               | object   | Dados do devedor (assinante)                                    | [Objeto debtor_data](#objeto-debtor_data)                |
| `qr_code_data`              | object   | Dados de QR Code gerado para o pagamento (se houver)            | [Objeto qr_code_data](#objeto-qr_code_data)              |
| `initial_payment_data`      | object   | Dados da cobrança inicial                                       | [Objeto initial_payment_data](#objeto-initial_payment_data) |
| `pix_message`               | string   | Mensagem enviada junto à transação Pix                          | 140        |
| `settlement_date_type`      | enumerator| Tipo do ajuste da data de liquidação                            | [Enumeradores settlement_date_type](#enumeradores-settlement_date_type) |

---

### Objeto retry_configuration

| Campo           | Tipo    | Descrição                                   | Caracteres |
|-----------------|---------|---------------------------------------------|------------|
| `retry_allowed` | boolean | Indica se retentativas estão habilitadas    | -          |
| `retry_rule`    | object  | Regras detalhadas das retentativas          | [Objeto retry_rule](#objeto-retry_rule) |

---

### Objeto retry_rule

| Campo         | Tipo   | Descrição                         | Caracteres |
|---------------|--------|-----------------------------------|------------|
| `first_retry` | object | Configuração para 1ª retentativa  | [Objeto retry_detail](#objeto-retry_detail) |
| `second_retry`| object | Configuração para 2ª retentativa  | [Objeto retry_detail](#objeto-retry_detail) |
| `third_retry` | object | Configuração para 3ª retentativa  | [Objeto retry_detail](#objeto-retry_detail) |

---

### Objeto retry_detail

| Campo | Tipo   | Descrição               | Caracteres |
|-------|--------|-------------------------|------------|
| `day` | string | Dia da retentativa.     | -          |
| `time`| string | Horário da retentativa. | -          |

---

### Objeto debtor_data

| Campo             | Tipo   | Descrição              | Caracteres |
|-------------------|--------|------------------------|------------|
| `name`            | string | Nome do assinante.     | 50         |
| `email`           | string | E-mail do assinante.   | 100        |
| `document_number` | string | CPF ou CNPJ.           | 14         |
| `address`         | object | Endereço do assinante. | [Objeto address](#objeto-address) |
| `account_data`    | object | Dados bancários.       | [Objeto account_data](#objeto-account_data) |

---

### Objeto address

| Campo         | Tipo   | Descrição         | Caracteres |
|---------------|--------|-------------------|------------|
| `city`        | string | Cidade.           | -          |
| `postal_code` | string | CEP.              | -          |
| `uf`          | string | Estado (sigla).   | -          |
| `street`      | string | Logradouro.       | -          |

---

### Objeto account_data

| Campo           | Tipo   | Descrição                    | Caracteres |
|-----------------|--------|------------------------------|------------|
| `account_number`| string | Número da conta              | -          |
| `account_digit` | string | Dígito da conta              | -          |
| `account_branch`| string | Agência                      | -          |
| `ispb`          | string | ISPB da instituição financeira| -         |

---

### Objeto qr_code_data

| Campo            | Tipo   | Descrição                                   | Caracteres |
|------------------|--------|---------------------------------------------|------------|
| `qr_code_key`    | string | Identificador do QR Code gerado             | -          |
| `qr_code_url`    | string | URL para visualização do QR Code            | -          |
| `qr_code_image`  | string | Imagem do QR Code (em Base64)               | -          |

---

### Objeto initial_payment_data

| Campo                     | Tipo     | Descrição                                                                | Caracteres |
|---------------------------|----------|--------------------------------------------------------------------------|------------|
| `amount`                  | number   | Valor principal da cobrança inicial em reais (R$)                        | -          |
| `pix_key`                 | string   | Chave Pix de destino para o pagamento inicial                            | 77         |
| `qr_code_type`            | enum     | Tipo de QR Code para cobrança inicial.                                   | [Enumeradores qr_code_type](#enumeradores-qr_code_type) |
| `additional_data`         | array    | Lista de informações adicionais relacionadas à cobrança                   | [Array de objects additional_data](#array-additional_data) |
| `fine_amount`             | number   | Valor da multa, caso ocorra atraso no pagamento                          | -          |
| `interest_amount`         | number   | Valor dos juros, caso ocorra atraso no pagamento                         | -          |
| `expiration_date`         | string   | Data de expiração da cobrança inicial (formato ISO 8601)                 | 10         |
| `max_payment_days`        | integer  | Número máximo de dias de aceite após expiração                           | -          |
| `rebate_amount`           | number   | Valor do desconto para pagamento antecipado                              | -          |
| `discounts`               | array    | Lista de descontos adicionais                                            | -          |
| `receiver_conciliation_id`| string   | Identificador de conciliação do pagamento pelo recebedor                 | 35         |
| `transaction_data`        | object   | Detalhes da transação relacionada à cobrança inicial                     | [Objeto transaction_data](#objeto-transaction_data) |

---

### Array additional_data

| Campo        | Tipo    | Descrição                                                 | Caracteres |
|--------------|---------|-----------------------------------------------------------|------------|
| `key_name`   | string  | Nome da informação adicional (ex: "Juros e Multa")        | 140        |
| `value`      | string  | Valor ou descrição da informação adicional                | 140        |

---

### Objeto transaction_data

| Campo               | Tipo   | Descrição                              | Caracteres |
|---------------------|--------|----------------------------------------|------------|
| `transaction_key`   | string | Chave única da transação               | 36         |
| `pix_transfer_key`  | string | Identificador da transferência Pix     | 36         |
| `end_to_end_id`     | string | Identificador end-to-end do Pix        | 32         |

---

### Objeto pagination

| Campo            | Tipo    | Descrição                           | Caracteres |
|------------------|---------|-------------------------------------|------------|
| `page`           | integer | Número da página retornada.         | -          |
| `page_size`      | integer | Quantidade de itens por página.     | -          |
| `number_of_pages`| integer | Total de páginas disponíveis.       | -          |

---

### Enumeradores periodicity

| Enumerador   | Descrição              |
|--------------|-----------------------|
| `weekly`     | Recorrência semanal   |
| `monthly`    | Recorrência mensal    |
| `quarterly`  | Recorrência trimestral|
| `semiannual` | Recorrência semestral |
| `annual`     | Recorrência anual     |

---

### Enumeradores journey_type

| Enumerador      | Descrição                                    |
|-----------------|----------------------------------------------|
| `journey_one`   | Notificação direta no aplicativo bancário     |
| `journey_two`   | Experiência QR Code para cobrança recorrente  |
| `journey_three` | Pagamento instantâneo + recorrência QR Code   |
| `journey_four`  | Opt-in recorrente a partir de operação Pix    |

---

### Enumeradores settlement_date_type

| Enumerador      | Descrição         |
|-----------------|------------------|
| `workdays`      | Dias úteis        |
| `calendar_days` | Dias corridos     |

---

### Enumeradores qr_code_type

| Enumerador        | Descrição                                          |
|-------------------|---------------------------------------------------|
| `dynamic_instant` | QR Code dinâmico para pagamento instantâneo        |
| `dynamic_term`    | QR Code dinâmico para pagamento com vencimento futuro |

STATUS 4XX

Response Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em português",
  "code": "codigo"
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                | Descrição (eng)<br/>`description`                                          | Descrição (ptbr)<br/>`translation`                                 |
|-------------|----------------------|-----------------------------------|----------------------------------------------------------------------------|--------------------------------------------------------------------|
| 400         | QIT000002            | Bad Request                       | Invalid request schema.                                                    | Erro no esquema da requisição.                                     |
| 404         | APX000002            | Recurrence Not Found              | Recurrence \{recurrence_key\} not found.                                   | Recorrência \{recurrence_key\} não encontrada.                      |

---

# Listagem de Recorrências de uma Conta

URL: /documentation/baas/pix_automatico/recebedor/listar_recorrencias_de_uma_conta

## Request

ENDPOINT /account/ ACCOUNT_KEY /outgoing_recurrences
MÉTODO GET

### Query Params

| Campo                       | Tipo        | Descrição                                                              | Caracteres |
|-----------------------------|-------------|------------------------------------------------------------------------|------------|
| `outgoing_recurrence_status`| enumerador      | Filtra recorrências pelo status (`approved`, `pending`, `rejected`, `pending_confirmation`) | 30         |
| `page`                      | integer     | Número da página a ser retornada (paginação).                          | -          |
| `page_size`                 | integer     | Número de itens por página (paginação).                                | -          |

---

## Response

STATUS 200

Response Body

```json
{
  "outgoing_recurrences": [
    {
      "request_control_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
      "outgoing_recurrence_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "outgoing_recurrence_status": "approved",
      "periodicity": "monthly",
      "journey_type": "journey_four",
      "start_date": "2025-06-10",
      "end_date": "2027-06-10",
      "outgoing_recurrence_data": {
        "minimum_recurrence_amount": 123.45,
        "recurrence_amount": null,
        "retry_configuration": {
          "retry_allowed": true,
          "retry_rule": {
            "first_retry": {
              "day": "1",
              "time": "14:00"
            },
            "second_retry": {
              "day": "3",
              "time": "12:00"
            },
            "third_retry": {
              "day": "4",
              "time": "15:32"
            }
          }
        },
        "debtor_data": {
          "name": "Sebastião",
          "email": "sebastiao@test.com",
          "document_number": "05431134850",
          "address": {
            "city": "São Paulo",
            "postal_code": "123456-789",
            "uf": "SP",
            "street": "Av Paulista 123"
          },
          "account_data": {
            "account_number": "123456",
            "account_digit": "7",
            "account_branch": "0001",
            "ispb": "31872495"
          }
        },
        "qr_code_data": {
          "qr_code_key": "0f45cc3d-9bd1-4d68-a865-4cf477b5da45",
          "qr_code_url": "urlqrcode.url",
          "qr_code_image": "image_base64"
        },
        "initial_payment_data": {
          "amount": 22.34,
          "pix_key": "3d7d6a2b-f72f-44z7-bb20-79a94dff5645",
          "qr_code_type": "dynamic_term",
          "additional_data": [
            {
              "key_name": "Juros e Multa",
              "value": "Juros 2 ao mes e multa de 1%"
            }
          ],
          "fine_amount": 3,
          "interest_amount": 2,
          "expiration_date": "2023-03-25",
          "max_payment_days": 128,
          "rebate_amount": 1,
          "discounts": [],
          "receiver_conciliation_id":"3d7d6a2bf72f44z7bb2079a94dff5645",
          "transaction_data":{
            "transaction_key":"4d7d6a2b-f72f-44z7-bb20-79a94dff5645",
            "pix_transfer_key":"5d7d6a2b-f72f-44z7-bb20-79a94dff5645",
            "end_to_end_id":"E32402502202303141907qlBAF1evdJ2"
          }
        },
        "pix_message": "Conta de Luz Residencial nº123",
        "settlement_date_type": "calendar_days"
      }
    }
  ],
  "pagination": {
    "page": 1,
    "page_size": 25,
    "number_of_pages": 4
  }
}
```

### Response Body Params

| Campo                  | Tipo   | Descrição                                                                               | Caracteres |
|------------------------|--------|-----------------------------------------------------------------------------------------|------------|
| `outgoing_recurrences` | array  | Lista de objetos de recorrências automáticas.                                           | [Array outgoing_recurrences](#array-outgoing_recurrences) |
| `pagination`           | object | Objeto de paginação contendo informações sobre as páginas dos resultados.               | [Objeto pagination](#objeto-pagination)                   |

---

### Array outgoing_recurrences

| Campo                        | Tipo       | Descrição                                                                               | Caracteres |
|------------------------------|------------|-----------------------------------------------------------------------------------------|------------|
| `request_control_key`        | uuidv4     | Chave única para controle da requisição.                                                | 36         |
| `outgoing_recurrence_key`    | uuidv4     | Identificador da recorrência automática.                                                | 36         |
| `outgoing_recurrence_status` | string     | Status atual da recorrência (`approved`, `pending`, `rejected`, etc.).                  | 30         |
| `periodicity`                | enumerator | Periodicidade da recorrência.                                                           | [Enumeradores periodicity](#enumeradores-periodicity)      |
| `journey_type`               | enumerator | Jornada da recorrência automática.                                                      | [Enumeradores journey_type](#enumeradores-journey_type)    |
| `start_date`                 | string     | Data de início da recorrência (formato ISO 8601, e.g., `2025-06-10`).                  | 10         |
| `end_date`                   | string     | Data de término da recorrência (formato ISO 8601) ou null, se indeterminado.            | 10 ou null |
| `outgoing_recurrence_data`   | object     | Objeto agrupando parâmetros da assinatura e dados complementares.                       | [Objeto outgoing_recurrence_data](#objeto-outgoing_recurrence_data) |

---

### Objeto outgoing_recurrence_data

| Campo                       | Tipo     | Descrição                                                      | Caracteres |
|-----------------------------|----------|----------------------------------------------------------------|------------|
| `minimum_recurrence_amount` | number   | Valor mínimo esperado nas recorrências de valor variável        | -          |
| `recurrence_amount`         | number   | Valor da recorrência (para valor fixo; null se variável)        | -          |
| `retry_configuration`       | object   | Configuração de tentativas para recorrências não concluídas      | [Objeto retry_configuration](#objeto-retry_configuration) |
| `debtor_data`               | object   | Dados do devedor (assinante)                                    | [Objeto debtor_data](#objeto-debtor_data)                |
| `qr_code_data`              | object   | Dados de QR Code gerado para o pagamento (se houver)            | [Objeto qr_code_data](#objeto-qr_code_data)              |
| `initial_payment_data`      | object   | Dados da cobrança inicial                                       | [Objeto initial_payment_data](#objeto-initial_payment_data) |
| `pix_message`               | string   | Mensagem enviada junto à transação Pix                          | 140        |
| `settlement_date_type`      | enumerator| Tipo do ajuste da data de liquidação                            | [Enumeradores settlement_date_type](#enumeradores-settlement_date_type) |

---

### Objeto retry_configuration

| Campo           | Tipo    | Descrição                                   | Caracteres |
|-----------------|---------|---------------------------------------------|------------|
| `retry_allowed` | boolean | Indica se retentativas estão habilitadas    | -          |
| `retry_rule`    | object  | Regras detalhadas das retentativas          | [Objeto retry_rule](#objeto-retry_rule) |

---

### Objeto retry_rule

| Campo         | Tipo   | Descrição                         | Caracteres |
|---------------|--------|-----------------------------------|------------|
| `first_retry` | object | Configuração para 1ª retentativa  | [Objeto retry_detail](#objeto-retry_detail) |
| `second_retry`| object | Configuração para 2ª retentativa  | [Objeto retry_detail](#objeto-retry_detail) |
| `third_retry` | object | Configuração para 3ª retentativa  | [Objeto retry_detail](#objeto-retry_detail) |

---

### Objeto retry_detail

| Campo | Tipo   | Descrição               | Caracteres |
|-------|--------|-------------------------|------------|
| `day` | string | Dia da retentativa.     | -          |
| `time`| string | Horário da retentativa. | -          |

---

### Objeto debtor_data

| Campo             | Tipo   | Descrição              | Caracteres |
|-------------------|--------|------------------------|------------|
| `name`            | string | Nome do assinante.     | 50         |
| `email`           | string | E-mail do assinante.   | 100        |
| `document_number` | string | CPF ou CNPJ.           | 14         |
| `address`         | object | Endereço do assinante. | [Objeto address](#objeto-address) |
| `account_data`    | object | Dados bancários.       | [Objeto account_data](#objeto-account_data) |

---

### Objeto address

| Campo         | Tipo   | Descrição         | Caracteres |
|---------------|--------|-------------------|------------|
| `city`        | string | Cidade.           | -          |
| `postal_code` | string | CEP.              | -          |
| `uf`          | string | Estado (sigla).   | -          |
| `street`      | string | Logradouro.       | -          |

---

### Objeto account_data

| Campo           | Tipo   | Descrição                    | Caracteres |
|-----------------|--------|------------------------------|------------|
| `account_number`| string | Número da conta              | -          |
| `account_digit` | string | Dígito da conta              | -          |
| `account_branch`| string | Agência                      | -          |
| `ispb`          | string | ISPB da instituição financeira| -         |

---

### Objeto qr_code_data

| Campo            | Tipo   | Descrição                                   | Caracteres |
|------------------|--------|---------------------------------------------|------------|
| `qr_code_key`    | string | Identificador do QR Code gerado             | -          |
| `qr_code_url`    | string | URL para visualização do QR Code            | -          |
| `qr_code_image`  | string | Imagem do QR Code (em Base64)               | -          |

---

### Objeto initial_payment_data

| Campo                     | Tipo     | Descrição                                                                | Caracteres |
|---------------------------|----------|--------------------------------------------------------------------------|------------|
| `amount`                  | number   | Valor principal da cobrança inicial em reais (R$)                        | -          |
| `pix_key`                 | string   | Chave Pix de destino para o pagamento inicial                            | 77         |
| `qr_code_type`            | enum     | Tipo de QR Code para cobrança inicial.                                   | [Enumeradores qr_code_type](#enumeradores-qr_code_type) |
| `additional_data`         | array    | Lista de informações adicionais relacionadas à cobrança                   | [Array de objects additional_data](#array-additional_data) |
| `fine_amount`             | number   | Valor da multa, caso ocorra atraso no pagamento                          | -          |
| `interest_amount`         | number   | Valor dos juros, caso ocorra atraso no pagamento                         | -          |
| `expiration_date`         | string   | Data de expiração da cobrança inicial (formato ISO 8601)                 | 10         |
| `max_payment_days`        | integer  | Número máximo de dias de aceite após expiração                           | -          |
| `rebate_amount`           | number   | Valor do desconto para pagamento antecipado                              | -          |
| `discounts`               | array    | Lista de descontos adicionais                                            | -          |
| `receiver_conciliation_id`| string   | Identificador de conciliação do pagamento pelo recebedor                 | 35        |
| `transaction_data`        | object   | Detalhes da transação relacionada à cobrança inicial                     | [Objeto transaction_data](#objeto-transaction_data) |

---

### Array additional_data

| Campo        | Tipo    | Descrição                                                 | Caracteres |
|--------------|---------|-----------------------------------------------------------|------------|
| `key_name`   | string  | Nome da informação adicional (ex: "Juros e Multa")        | 140        |
| `value`      | string  | Valor ou descrição da informação adicional                | 140        |

---

### Objeto transaction_data

| Campo               | Tipo   | Descrição                              | Caracteres |
|---------------------|--------|----------------------------------------|------------|
| `transaction_key`   | string | Chave única da transação               | 36         |
| `pix_transfer_key`  | string | Identificador da transferência Pix     | 36         |
| `end_to_end_id`     | string | Identificador end-to-end do Pix        | 32         |

---

### Objeto pagination

| Campo            | Tipo    | Descrição                           | Caracteres |
|------------------|---------|-------------------------------------|------------|
| `page`           | integer | Número da página retornada.         | -          |
| `page_size`      | integer | Quantidade de itens por página.     | -          |
| `number_of_pages`| integer | Total de páginas disponíveis.       | -          |

---

### Enumeradores periodicity

| Enumerador   | Descrição              |
|--------------|-----------------------|
| `weekly`     | Recorrência semanal   |
| `monthly`    | Recorrência mensal    |
| `quarterly`  | Recorrência trimestral|
| `semiannual` | Recorrência semestral |
| `annual`     | Recorrência anual     |

---

### Enumeradores journey_type

| Enumerador      | Descrição                                    |
|-----------------|----------------------------------------------|
| `journey_one`   | Notificação direta no aplicativo bancário     |
| `journey_two`   | Experiência QR Code para cobrança recorrente  |
| `journey_three` | Pagamento instantâneo + recorrência QR Code   |
| `journey_four`  | Opt-in recorrente a partir de operação Pix    |

---

### Enumeradores settlement_date_type

| Enumerador      | Descrição         |
|-----------------|------------------|
| `workdays`      | Dias úteis        |
| `calendar_days` | Dias corridos     |

---

### Enumeradores qr_code_type

| Enumerador        | Descrição                                          |
|-------------------|---------------------------------------------------|
| `dynamic_instant` | QR Code dinâmico para pagamento instantâneo        |
| `dynamic_term`    | QR Code dinâmico para pagamento com vencimento futuro |

STATUS 4XX

Response Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em português",
  "code": "codigo"
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                | Descrição (eng)<br/>`description`                                          | Descrição (ptbr)<br/>`translation`                                 |
|-------------|----------------------|-----------------------------------|----------------------------------------------------------------------------|--------------------------------------------------------------------|
| 400         | QIT000002            | Bad Request                       | Invalid request schema.                                                    | Erro no esquema da requisição.                                     |
| 404         | APX000002            | Recurrence Not Found              | Recurrence \{recurrence_key\} not found.                                   | Recorrência \{recurrence_key\} não encontrada.                      |

---

# Simulação de cenários

URL: /documentation/baas/pix_automatico/recebedor/simulacao

Guia completo para simular o fluxo recebedor da automatic-pix-api no ambiente sandbox. Este guia inclui tanto os endpoints de mock quanto os endpoints reais necessários para o fluxo completo de testes.

:::caution Pré-requisitos Importantes
Antes de executar qualquer simulação de mock, você **deve** criar uma recorrência utilizando uma das jornadas de autorização disponíveis. Os mocks simulam apenas as respostas da SPI, mas a recorrência precisa existir no sistema.

**Consulte as jornadas de criação:**
- [Jornada 1 - Push Notification](./journey_one.md)
- [Jornada 2 - QR Code (apenas recorrência)](./journey_two.md)
- [Jornada 3 - QR Code (com primeiro pagamento)](./journey_three.md)
- [Jornada 4 - QR Code (com primeiro pagamento e valores variáveis)](./journey_four.md)
:::

{`
.pix-flow-container {
  width: 100%;
  max-width: 800px;
  margin: 40px auto;
  background-color: #f8fafc;
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  padding: 30px;
  position: relative;
  border: 1px solid #e5e7eb;
}

.pix-flow-header {
  text-align: center;
  margin-bottom: 30px;
  border-bottom: 2px solid #e5e7eb;
  padding-bottom: 20px;
  position: relative;
}

.pix-flow-header h3 {
  font-size: 24px;
  font-weight: 700;
  color: #1e40af;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 8px;
}

.pix-flow-header p {
  font-size: 14px;
  color: #64748b;
}

.status-indicator {
  position: absolute;
  top: 10px;
  right: 10px;
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: #64748b;
}

.status-light {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: #10b981;
  animation: pulse-status 2s infinite;
}

@keyframes pulse-status {
  0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7); }
  50% { opacity: 0.8; box-shadow: 0 0 0 8px rgba(16, 185, 129, 0); }
}

.pix-flowchart {
  display: flex;
  flex-direction: column;
  gap: 20px;
  max-height: 800px;
  overflow-y: auto;
  padding-right: 10px;
}

.pix-flowchart::-webkit-scrollbar {
  width: 8px;
}

.pix-flowchart::-webkit-scrollbar-track {
  background: #f1f5f9;
  border-radius: 10px;
}

.pix-flowchart::-webkit-scrollbar-thumb {
  background-color: #cbd5e1;
  border-radius: 10px;
}

.pix-flowchart::-webkit-scrollbar-thumb:hover {
  background-color: #94a3b8;
}

.pix-step {
  background-color: #ffffff;
  border-radius: 12px;
  padding: 18px;
  position: relative;
  border-left: 5px solid;
  transition: all 0.3s ease;
  cursor: pointer;
  opacity: 0;
  transform: translateX(-20px);
  animation: fadeInStep 0.5s forwards;
  display: flex;
  flex-direction: column;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  text-decoration: none;
  color: inherit;
}

.pix-step:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
  border-left-width: 6px;
}

.pix-step:visited {
  color: inherit;
}

.pix-step.step-create { border-left-color: #3b82f6; }
.pix-step.step-approve { border-left-color: #1e293b; }
.pix-step.step-process { border-left-color: #1e40af; }
.pix-step.step-conciliate { border-left-color: #0f172a; }
.pix-step.step-update { border-left-color: #ec4899; }
.pix-step.step-attempts { border-left-color: #3b82f6; }

.pix-step-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}

.pix-step-number {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background-color: #f1f5f9;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 14px;
  font-weight: 700;
  flex-shrink: 0;
  transition: all 0.3s ease;
}

.pix-step:hover .pix-step-number {
  transform: scale(1.15);
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2);
}

.pix-step.step-create .pix-step-number { background-color: #3b82f6; color: #ffffff; }
.pix-step.step-approve .pix-step-number { background-color: #1e293b; color: #ffffff; }
.pix-step.step-process .pix-step-number { background-color: #1e40af; color: #ffffff; }
.pix-step.step-conciliate .pix-step-number { background-color: #0f172a; color: #ffffff; }
.pix-step.step-update .pix-step-number { background-color: #ec4899; color: #ffffff; }
.pix-step.step-attempts .pix-step-number { background-color: #3b82f6; color: #ffffff; }

.pix-step-title {
  font-size: 16px;
  font-weight: 700;
  color: #0f172a;
  flex-grow: 1;
  margin-left: 12px;
}

.pix-step-type {
  font-size: 11px;
  background-color: #f1f5f9;
  padding: 4px 10px;
  border-radius: 6px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.pix-step-type.mock { background-color: #dbeafe; color: #1e40af; }
.pix-step-type.real { background-color: #dcfce7; color: #16a34a; }
.pix-step-type.optional { background-color: #fef3c7; color: #d97706; }

.pix-step-content {
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease;
  margin-top: 8px;
}

.pix-step.active .pix-step-content {
  max-height: 500px;
}

.pix-step-description {
  font-size: 14px;
  line-height: 1.6;
  color: #475569;
}

.pix-step-info {
  background-color: #eff6ff;
  border-left: 3px solid #3b82f6;
  padding: 10px 14px;
  font-size: 13px;
  color: #1e40af;
  border-radius: 6px;
}

.pix-step-warning {
  background-color: #fef3c7;
  border-left: 3px solid #f59e0b;
  padding: 10px 14px;
  font-size: 13px;
  color: #92400e;
  border-radius: 6px;
}

.pix-connector {
  height: 24px;
  width: 3px;
  background: linear-gradient(to bottom, #cbd5e1, #94a3b8);
  margin: -12px auto;
  position: relative;
  z-index: 1;
  border-radius: 2px;
}

.pix-connector::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 8px solid #94a3b8;
}

.pix-branch-container {
  margin-top: 30px;
  padding-top: 0px;
}

.pix-branch-title {
  text-align: center;
  font-size: 18px;
  font-weight: 700;
  color: #0f172a;
  margin-bottom: 24px;
}
.pix-branch-container {
  position: relative;
}

.pix-branch-connectors {
  position: absolute;
  top: -25px;
  left: 0;
  right: 0;
  height: 40px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  pointer-events: none;
  z-index: 0;
}

.pix-branch-arrow {
  width: 3px;
  height: 105px;
  position: relative;
  opacity: 0.9;
}

.pix-branch-arrow::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 10px solid;
}

.pix-branch-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.pix-branch-option {
  background-color: #ffffff;
  border-radius: 12px;
  padding: 20px;
  text-align: center;
  transition: all 0.3s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  cursor: pointer;
  text-decoration: none;
  color: inherit;
}

.pix-branch-option:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}

.branch-title-payment {
  font-weight: 800;
  font-size: 16px;
  margin-bottom: 14px;
  color: #1e40af;
}

.branch-title-rejection {
  font-weight: 800;
  font-size: 16px;
  margin-bottom: 14px;
  color: #ec4899;
}

.pix-branch-button {
  padding: 14px 20px 5px 20px; 
  border-radius: 10px;
  font-weight: 700;
  font-size: 14px;
  color: #ffffff;
  border: none;
  cursor: pointer;
  width: 100%;
  margin-top: 8px;
  transition: all 0.3s ease;
  text-decoration: none;
  display: inline-block;
  align-items: center;
  justify-content: center;
}

.pix-branch-button:hover {
  transform: scale(1.02);
}

.branch-button-payment {
  background: linear-gradient(135deg, #1e3a8a 0%, #3b82f6 50%, #60a5fa 100%);
  box-shadow: 0 4px 12px rgba(30, 64, 175, 0.3);
}

.branch-button-rejection {
  background: linear-gradient(135deg, #9f1239 0%, #ec4899 50%, #f472b6 100%);
  box-shadow: 0 4px 12px rgba(236, 72, 153, 0.3);
}

@keyframes fadeInStep {
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@media (max-width: 768px) {
  .pix-flow-container {
    padding: 20px;
  }

  .pix-flow-header h3 {
    font-size: 20px;
  }

  .pix-step {
    padding: 14px;
  }

  .pix-step-title {
    font-size: 14px;
  }

  .pix-step-number {
    width: 28px;
    height: 28px;
    font-size: 12px;
  }

  .pix-branch-options {
    grid-template-columns: 1fr;
  }

  .status-indicator {
    top: 5px;
    right: 5px;
    font-size: 10px;
  }
}
`}

Fluxo Completo de Simulação
Teste de ponta a ponta do Pix Automático - Sandbox Environment
SANDBOX

1
Criar Recorrência
REAL
Passo obrigatório antes de qualquer simulação. Escolha uma das quatro jornadas disponíveis (Jornada 1: Push Notification, Jornadas 2-4: QR Code com diferentes configurações). Após criar, guarde o outgoing_recurrence_spi_id retornado.
Jornadas disponíveis: Jornada 1 (Push), Jornada 2 (QR Code - recorrência), Jornada 3 (QR Code + primeiro pagamento), Jornada 4 (QR Code + pagamento + valores variáveis)

2
Aprovar Recorrência
MOCK
Simula as atualizações de status de recorrência que a SPI enviará para a automatic-pix-api. Utilize o endpoint /mock/outgoing_recurrence/OUTGOING_RECURRENCE_SPI_ID para atualizar o status para pending_confirmation e depois para approved .
Atenção: Nas jornadas 2, 3 e 4, é necessário enviar também os dados da conta ( account_data ) na aprovação. Nas jornadas 3 e 4, inclua também informações do primeiro pagamento.

3
Processar Ordens de Pagamento
MOCK
Simula o processamento das ordens de pagamento através do endpoint /mock/process_payment_orders . Este passo cria automaticamente os lotes de conciliação e envia o webhook de criação de lote para sua URL configurada.
O que acontece: Ordens são criadas automaticamente, lotes de conciliação são criados ou atualizados com base na reference_date e tipo de recorrência, e o webhook de criação é disparado.

4
Consultar e Conciliar Ordens
REAL
Passo real (não é mock): Consultar o lote de conciliação criado e obter o receiver_conciliation_id e payment_order_key . Para recorrências do tipo variable_amount , você deve atualizar a ordem de pagamento com o valor específico.
Importante: Este passo é obrigatório para recorrências variable_amount . Sem a atualização do valor, a ordem não será processada. Para fixed_amount , este passo não é necessário.

5
Atualizar Data de Execução
MOCK
Atualiza o next_retry_execution_datetime de uma ordem de pagamento para a data atual, permitindo que o processamento das tentativas ocorra imediatamente. Utilize o endpoint /mock/payment_order/PAYMENT_ORDER_KEY/update_next_retry_execution_datetime .
Disponível apenas no sandbox. Este passo é necessário para avançar o fluxo e permitir o processamento imediato das tentativas de pagamento.

6
Processar Tentativas de Pagamento
MOCK
Simula o processamento das tentativas de pagamento através do endpoint /mock/process_payment_order_attempts . Cria as tentativas necessárias para o fluxo de PIX automático, preparando o sistema para receber a simulação de PIX de entrada ou rejeição.
Disponível apenas no sandbox. Após este passo, você pode simular o recebimento do PIX (Passo 7) ou a rejeição (Passo 8).

Simulações de Resultado
  
Pagamento
        7. Simular Pix de Entrada
        Simula o recebimento bem-sucedido do pagamento via PIX
    
Rejeições
        7. Simular Rejeição
        Simula a rejeição de uma tentativa de pagamento

{`
if (typeof document !== 'undefined') {
  document.addEventListener('DOMContentLoaded', function() {
    const steps = document.querySelectorAll('.pix-step');
    
    steps.forEach((step, index) => {
      step.style.animationDelay = \`\${index * 0.15}s\`;
      
      step.addEventListener('click', function(e) {
        e.preventDefault();
        const targetId = this.getAttribute('href');
        
        // Toggle active state
        const wasActive = this.classList.contains('active');
        
        // Close all steps
        steps.forEach(s => s.classList.remove('active'));
        
        // If wasn't active, open it
        if (!wasActive) {
          this.classList.add('active');
          
          // Scroll to section
          if (targetId) {
            const targetElement = document.querySelector(targetId);
            if (targetElement) {
              setTimeout(() => {
                targetElement.scrollIntoView({ behavior: 'smooth', block: 'start' });
              }, 300);
            }
          }
        } else {
          // If was active and clicked again, navigate to section
          if (targetId) {
            const targetElement = document.querySelector(targetId);
            if (targetElement) {
              targetElement.scrollIntoView({ behavior: 'smooth', block: 'start' });
            }
          }
        }
      });
    });
    
    // Auto-open first step after animation
    setTimeout(() => {
      if (steps.length > 0) {
        steps[0].classList.add('active');
      }
    }, steps.length * 150 + 200);
  });
}
`}

---
## Pré-requisito: Criar Recorrência

:::danger Obrigatório
**Este passo é obrigatório** antes de qualquer simulação de mock. Escolha uma das jornadas de criação de recorrência conforme sua necessidade.
:::

### Escolha sua Jornada

| Jornada | Descrição | Link |
|---------|-----------|------|
| **Jornada 1** | Push Notification - Autorização via notificação | [Criar Recorrência: Jornada 1](./journey_one.md) |
| **Jornada 2** | QR Code - Apenas autorização da recorrência | [Criar Recorrência: Jornada 2](./journey_two.md) |
| **Jornada 3** | QR Code - Recorrência + primeiro pagamento | [Criar Recorrência: Jornada 3](./journey_three.md) |
| **Jornada 4** | QR Code - Recorrência + primeiro pagamento + valores variáveis | [Criar Recorrência: Jornada 4](./journey_four.md) |

:::info Informação Importante
Após criar a recorrência, guarde o `outgoing_recurrence_spi_id` retornado. Ele será necessário para as simulações de mock.
:::

---

## Passo 1: Simulação de Atualização de Recorrência (Simulação)

:::caution Pré-requisito
**Antes deste passo**, você deve ter:
1. Criado uma recorrência usando uma das [jornadas de criação](#passo-0-criar-recorrência-pré-requisito)
2. Obtido o `outgoing_recurrence_spi_id` da recorrência criada
:::

Este endpoint simula as atualizações de status de recorrência que a SPI enviará para a automatic-pix-api durante diferentes jornadas do fluxo recebedor.

### Request

ENDPOINT /mock/outgoing_recurrence/ OUTGOING_RECURRENCE_SPI_ID
MÉTODO PATCH

Request Body: Jornada 1 - Recebimento da solicitação pelo PSP Pagador

```json
{
  "outgoing_recurrence_status": "pending_confirmation"
}
```

Request Body: Jornada 1 - Recebimento da confirmação da solicitação pelo PSP Pagador

```json
{
  "outgoing_recurrence_status": "approved"
}
```

Request Body: Jornadas 2, 3 e 4 - Recebimento da solicitação pelo PSP Pagador

```json
{
  "outgoing_recurrence_status": "pending_confirmation"
}
```

Request Body: Jornada 2 - Recebimento da confirmação da solicitação pelo PSP Pagador

```json
{
  "outgoing_recurrence_status": "approved",
  "account_data": {
    "account_number": "123456",
    "account_digit": "7",
    "account_branch": "0001",
    "ispb": "31872495"
  }
}
```

Request Body: Jornadas 3 e 4 - Recebimento da confirmação da solicitação pelo PSP Pagador

```json
{
  "outgoing_recurrence_status": "approved",
  "account_data": {
    "account_number": "123456",
    "account_digit": "7",
    "account_branch": "0001",
    "ispb": "31872495"
  },
  "receiver_conciliation_id": "064b6563329047c59db6902725b8d31e",
  "target_account_key": "23a4a1c8-9d82-4ebe-a90d-44fe8d839ec0",
  "transaction_amount": 250
}
```

### Path Parameters

| Campo                          | Tipo   | Descrição                                      | Máx. Caract. |
|--------------------------------|--------|------------------------------------------------|--------------|
| **outgoing_recurrence_spi_id*** | string | Identificador SPI da recorrência de saída      | 50           |

### Objeto Request Body

| Campo                         | Tipo   | Descrição                                       | Máx. Caract. |
|-------------------------------|--------|-------------------------------------------------|--------------|
| **outgoing_recurrence_status*** | string | Status da recorrência de saída                  | 50           |
| **account_data**              | object | Dados da conta (apenas jornadas 2, 3 e 4)      | -            |

### Objeto account_data

| Campo               | Tipo   | Descrição                                | Máx. Caract. |
|---------------------|--------|------------------------------------------|--------------|
| **account_number*** | string | Número da conta                          | 20           |
| **account_digit***  | string | Dígito da conta                          | 1            |
| **account_branch*** | string | Agência da conta                         | 6            |
| **ispb***           | string | Código ISPB da instituição financeira   | 8            |

### Enumerador outgoing_recurrence_status

| Enumerador              | Descrição                           |
|-------------------------|-------------------------------------|
| **pending_confirmation** | Pendente de confirmação             |
| **approved**            | Aprovado                            |

:::info Fluxos de Jornada
- **Jornada 1**: Apenas atualização de status, sem dados da conta
- **Jornada 2**: Primeiro apenas status, depois status + dados da conta (apenas aprovação da recorrência)
- **Jornadas 3 e 4**: Primeiro apenas status, depois status + dados da conta + dados do primeiro pagamento
:::

:::tip Próximo Passo
Após aprovar a recorrência, prossiga para o [Passo 3: Processar Ordens de Pagamento](#passo-3-processar-ordens-de-pagamento-mock)
:::

---

## Passo 2: Simulação de Cancelamento de Recorrência (Simulação - Opcional)

:::caution Pré-requisito
**Antes deste passo**, você deve ter:
1. Criado uma recorrência
2. Aprovado a recorrência ([Passo 1](#passo-1-simulação-de-atualização-de-recorrência-mock))
:::

Este endpoint simula o cancelamento de uma recorrência de saída acionado pela SPI.

### Request

ENDPOINT /mock/outgoing_recurrence/ OUTGOING_RECURRENCE_SPI_ID /cancel
MÉTODO PATCH

:::info Sem Payload
Este endpoint não possui request body (payload). Apenas o path parameter é necessário.
:::

### Path Parameters

| Campo                          | Tipo   | Descrição                                      | Máx. Caract. |
|--------------------------------|--------|------------------------------------------------|--------------|
| **outgoing_recurrence_spi_id*** | string | Identificador SPI da recorrência de saída      | 50           |

---

## Passo 3: Processar Ordens de Pagamento (Simulação)

:::caution Pré-requisitos
**Antes deste passo**, você deve ter:
1. Criado uma recorrência
2. Aprovado a recorrência ([Passo 1](#passo-1-simulação-de-atualização-de-recorrência-mock))
:::

Este endpoint simula o processamento das ordens de pagamento que, consequentemente, irá criar os lotes de conciliação e enviar o Webhook de criação desses lotes.

### Request

ENDPOINT /mock/process_payment_orders
MÉTODO PATCH

:::info Sem Payload
Este endpoint não possui request body (payload). A simulação é executada automaticamente.
:::

:::info O que acontece neste passo?
1. **Ordens de pagamento são criadas** automaticamente pelo sistema
2. **Lote de conciliação é criado ou atualizado** (`payment_order_conciliation_batch`)
   - Se já existir um lote aberto para a `reference_date` e para o tipo de recorrência ('fixed_amount' ou 'variable_amount'), a ordem é incluída nele
   - Caso contrário, um novo lote é criado
3. **Webhook de criação de lote é enviado** para sua URL configurada
:::

:::tip Próximo Passo
Após processar as ordens, você precisa **consultar e conciliar** as ordens de pagamento antes de continuar. Veja o [Passo 4](#passo-4-consultar-e-conciliar-ordens-de-pagamento).
:::

---

## Passo 4: Consultar e Conciliar Ordens de Pagamento

:::danger Passo Obrigatório (NÃO é Mock)
**Este é um passo real**, não é uma simulação! Você precisa consultar o lote de conciliação criado no passo anterior e obter o `receiver_conciliation_id` e a `payment_order_key` que serão usados posteriormente.
:::

:::caution Pré-requisitos
**Antes deste passo**, você deve ter:
1. Processado as ordens de pagamento ([Passo 3](#passo-3-processar-ordens-de-pagamento-mock))
2. Recebido o webhook de criação do lote de conciliação
:::

### 4.1 - Consultar Lote de Pagamentos

Para consultar os lotes criados, utilize o endpoint de consulta de lotes:

**Consulte a documentação completa:**
- [Consultar lote de pagamentos por conta](../conciliacao/consultar_lote_por_conta.md)
- [Consultar lote de pagamentos por requester](../conciliacao/consultar_lote_requester.md)

:::info Informações Importantes
Na resposta do GET, você encontrará:
- `payment_order_conciliation_batch_key`: Chave do lote
- `payment_orders`: Lista de ordens de pagamento dentro do lote
- `receiver_conciliation_id`: **Guarde este valor!** Será usado no Passo 7 para simular o PIX de entrada
- `payment_order_spi_id`: Identificador SPI da ordem de pagamento
- `payment_order_key`: Chave única da ordem de pagamento
:::

### 4.2 - Atualizar Ordem de Pagamento (Obrigatório para Valor Variável)

:::warning Importante
**Este passo é obrigatório** para recorrências do tipo `variable_amount`. Para recorrências de valor fixo (`fixed_amount`), este passo não é necessário.
:::

Para recorrências de valor variável, você **deve** atualizar a ordem de pagamento informando o valor específico que será cobrado neste ciclo:

**Consulte a documentação completa:**
- [Atualizar ordem de pagamento](../pagamentos/atualizar_payment_order.md)

ENDPOINT
/account/ ACCOUNT_KEY /outgoing_recurrence/ OUTGOING_RECURRENCE_KEY /payment_order/ PAYMENT_ORDER_KEY
MÉTODO
      PATCH

Request Body - Exemplo para Valor Variável

```json
{
  "transaction_amount": 150.75,
}
```

### Quando é Obrigatório?

| Tipo de Recorrência | Atualização Obrigatória? | Motivo |
|---------------------|---------------------------|---------|
| **`fixed_amount`** |  Não | Valor já definido na criação da recorrência |
| **`variable_amount`** |  **Sim** | Valor deve ser informado a cada execução |

:::info Informação
- **Recorrências fixas**: O valor já está definido na criação, não precisa ser atualizado
- **Recorrências variáveis**: O valor deve ser informado antes de cada processamento de pagamento
- **Sem atualização**: Recorrências variáveis sem atualização não serão processadas
:::

:::tip Próximo Passo
Após consultar o lote e atualizar a ordem de pagamento (se necessário), prossiga para o [Passo 5](#passo-5-atualizar-data-de-execução-mock---sandbox).
:::

---

## Passo 5: Atualizar Data de Execução (Simulação)

:::caution Pré-requisitos
**Antes deste passo**, você deve ter:
1. Processado as ordens de pagamento ([Passo 3](#passo-3-processar-ordens-de-pagamento-mock))
2. Consultado o lote de conciliação ([Passo 4](#passo-4-consultar-e-conciliar-ordens-de-pagamento))
3. Obtido o `payment_order_key` da ordem de pagamento
:::

Este endpoint permite atualizar o `next_retry_execution_datetime` de uma Ordem de Pagamento específica para a data atual, possibilitando que o processamento das Order Attempts ocorra imediatamente.

:::info Sandbox Apenas
Este endpoint está disponível **apenas no ambiente sandbox**.
:::

### Request

ENDPOINT /mock/payment_order/ payment_order_key /update_next_retry_execution_datetime
MÉTODO PATCH

### Path Params

| Campo                | Tipo   | Descrição                                      | Máx. Caract. |
|----------------------|--------|------------------------------------------------|--------------|
| **payment_order_key*** | uuid4  | Chave única de identificação da ordem de pagamento | 36           |

Request Body

```json
{
  "next_retry_execution_datetime": "2025-08-22"
}
```

### Request Body Params

| Campo                            | Tipo   | Descrição                                      | Máx. Caract. |
|----------------------------------|--------|------------------------------------------------|--------------|
| **next_retry_execution_datetime*** | string | Nova data de execução da order (formato YYYY-MM-DD) | 10           |

:::info Finalidade
Este endpoint atualiza a data de próxima execução da tentativa para a data atual, permitindo que o sistema processe imediatamente as tentativas de pagamento, que são necessárias para simular o recebimento de PIX de entrada.
:::

:::tip Próximo Passo
Após atualizar a data de execução, prossiga para o [Passo 6](#passo-6-processar-tentativas-de-pagamento-mock---sandbox).
:::

---

## Passo 6: Processar Tentativas de Pagamento (Simulação)

:::caution Pré-requisitos
**Antes deste passo**, você deve ter:
1. Atualizado a data de execução ([Passo 5](#passo-5-atualizar-data-de-execução-mock---sandbox))
:::

Este endpoint simula o processamento das tentativas de pagamento, criando as tentativas necessárias para o fluxo de PIX automático.

:::info Sandbox Apenas
Este endpoint está disponível **apenas no ambiente sandbox**.
:::

### Request

ENDPOINT /mock/process_payment_order_attempts
MÉTODO PATCH

:::info Sem Payload
Este endpoint não possui request body (payload). A simulação é executada automaticamente.
:::

:::info Finalidade
Este endpoint processa as tentativas de pagamento baseadas nas ordens de pagamento com datas de execução atualizadas, criando as tentativas necessárias para simular o recebimento de PIX de entrada.
:::

:::tip Próximo Passo - Escolha seu Caminho

**Fluxo de Sucesso**: Prossiga para o [Passo 7: Simular PIX de Entrada](#passo-7-simular-pix-de-entrada-mock)

**Fluxo de Rejeição**: Prossiga para o [Passo 8: Simular Tentativa Rejeitada](#passo-8-simular-tentativa-de-pagamento-rejeitada-mock)
:::

---

## Passo 7: Simular Pix de Entrada

:::caution Pré-requisitos
**Antes deste passo**, você deve ter:
1. Atualizado a data de execução ([Passo 5](#passo-5-atualizar-data-de-execução-mock---sandbox))
2. Processado as tentativas de pagamento ([Passo 6](#passo-6-processar-tentativas-de-pagamento-mock---sandbox))
3. Obtido o `receiver_conciliation_id` do lote ([Passo 4](#passo-4-consultar-e-conciliar-ordens-de-pagamento))
4. Obtido o `outgoing_recurrence_spi_id` e `payment_order_spi_id`
:::

Este endpoint simula o recebimento de um Pix que será associado a uma Ordem de Pagamento de uma recorrência.

### Request

ENDPOINT /mock/automatic_pix/incoming_pix
MÉTODO POST

Request Body

```json
{
  "target_account_key": "23a4a2c8-9d82-4ebe-a90d-44fe8d839ec0",
  "amount": 1000.00,
  "receiver_conciliation_id": "7535f0467d9a4af69c4d99408c2fec9d"
}
```

### Objeto Request Body

| Campo                         | Tipo   | Descrição                                                    | Máx. Caract. |
|-------------------------------|--------|--------------------------------------------------------------|--------------|
| **target_account_key***       | string | Chave única da conta de destino                              | 36           |
| **amount***                   | number | Valor da transação PIX                                       | -            |
| **receiver_conciliation_id*** | string | Identificação de conciliação do recebedor (obtido no Passo 4) | 35           |

:::info Informação
Este endpoint simula o fluxo completo de Incoming Pix, incluindo:
1. Processamento da transferência Pix
2. Associação à ordem de pagamento da automatic-pix usando o `receiver_conciliation_id`
:::

:::success Fluxo Concluído!
Parabéns! Você completou o fluxo de pagamento bem-sucedido. O sistema processou:
- Criação da recorrência
- Aprovação da recorrência
- Criação de ordens de pagamento e lotes
- Processamento de tentativas
- Recebimento do PIX
:::

---

## Passo 8: Simular Tentativa de Pagamento Rejeitada (Simulação)

:::caution Pré-requisitos
**Antes deste passo**, você deve ter:
1. Processado as ordens de pagamento ([Passo 3](#passo-3-processar-ordens-de-pagamento-mock))
2. Atualizado a data de execução ([Passo 5](#passo-5-atualizar-data-de-execução-mock---sandbox))
3. Processado as tentativas de pagamento ([Passo 6](#passo-6-processar-tentativas-de-pagamento-mock---sandbox))
4. Obtido o `outgoing_recurrence_spi_id` e `payment_order_spi_id`
:::

Este endpoint simula a rejeição de uma tentativa de pagamento PIX dentro de uma recorrência de saída, replicando o comportamento quando a SPI rejeita uma transação. O sistema criará automaticamente as tentativas de pagamento e simulará o PIX rejeitado, resultando no envio do webhook de mudança de status da tentativa.

### Request

ENDPOINT /mock/automatic_pix/outgoing_recurrence/ OUTGOING_RECURRENCE_SPI_ID /payment_order/ PAYMENT_ORDER_SPI_ID
MÉTODO PATCH

Request Body: Tentativa rejeitada

```json
{
  "payment_order_status": "rejected",
  "rejection_information": {
    "bacen_reason_code": "AC06"
  }
}
```

### Path Parameters

| Campo                          | Tipo   | Descrição                                      | Máx. Caract. |
|--------------------------------|--------|------------------------------------------------|--------------|
| **outgoing_recurrence_spi_id*** | string | Identificador SPI da recorrência de saída      | 50           |
| **payment_order_spi_id***      | string | Identificador SPI da ordem de pagamento        | 50           |

### Objeto Request Body

| Campo                         | Tipo   | Descrição                                       | Máx. Caract. |
|-------------------------------|--------|-------------------------------------------------|--------------|
| **payment_order_status***     | string | Status da ordem de pagamento (sempre "rejected") | 50           |
| **rejection_information***    | object | Informações sobre a rejeição                   | -            |

### Objeto rejection_information

| Campo                 | Tipo   | Descrição                                | Máx. Caract. |
|-----------------------|--------|------------------------------------------|--------------|
| **bacen_reason_code*** | string | Código de erro do Bacen para rejeição   | 4            |

### Códigos de Erro Bacen Comuns

| Código | Descrição (Inglês) | Descrição (Português) |
|--------|-------------------|----------------------|
| **AB10** | ErrorInstructedAgent | Erro interno no PSP pagador |
| **AC05** | ClosedDebtorAccountNumber | Conta do pagador encerrada |
| **AC06** | BlockedAccount | Conta do pagador bloqueada |
| **AG12** | NotAllowedBookTransfer | Transferência não permitida entre contas da mesma instituição |
| **AM02** | NotAllowedAmount | Valor excede limite máximo do pagador |
| **AM09** | WrongAmount | Valor não corresponde ao estabelecido na recorrência |
| **DENC** | DebtorIdentifierNotCorrespond | CPF/CNPJ do pagador não confere com a recorrência |
| **DS27** | UserNotYetActivated | Participante não cadastrado no SPI |
| **DTED** | InvalidExpiryDate | Data de vencimento inválida para a periodicidade |
| **DTNT** | - | Tentativas pós vencimento fora do prazo permitido |
| **FBRD** | FailureToComplyBusinessRuleDeadline | Solicitação fora do prazo para regras de negócio |
| **IRNT** | - | Recorrência não permite novas tentativas pós vencimento |
| **MIDI** | MandateIdIncorrect | ID da recorrência inexistente ou incorreto |
| **MSUC** | UnconfirmedMandateStatus | Status da recorrência não confirmado pelo pagador |
| **NIEC** | - | Ordem de pagamento anterior ainda pendente |
| **NIPA** | - | Pagamento já foi efetivado |
| **NITX** | - | Instrução não corresponde à cobrança recorrente anterior |
| **QUNT** | - | Limite de tentativas pós vencimento excedido |
| **RC09** | InvalidDebtorClearingSystemMemberIdentifier | ISPB do pagador inválido ou inexistente |
| **UDEI** | UltimateDebtorIdentifierIncorrect | CPF/CNPJ do devedor incorreto |

:::info Funcionamento do Sistema
1. **Simulação de rejeição**: O sistema simula o PIX rejeitado com o código de erro especificado
2. **Webhook enviado**: Para cada tentativa rejeitada, é enviado o webhook `baas.automatic_pix.payment_order_attempt.status_change`
3. **Múltiplas tentativas**: O sistema permite até 4 tentativas de pagamento. Na 4ª tentativa rejeitada, a ordem de pagamento tem seu status alterado para "rejected"
:::

:::info Webhook Resultante
Cada tentativa rejeitada irá gerar um webhook com o seguinte formato:
```json
{
  "event_type": "baas.automatic_pix.payment_order_attempt.status_change",
  "origin_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "data": {
    "request_control_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "payment_order_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "payment_order_attempt_key": "21fc62fd-b0a0-4604-9bea-475e91a9dc82",
    "payment_order_status": "pending",
    "payment_order_attempt_status": "rejected",
    "transaction_amount": 125.53,
    "reason": "Conta de destino inexistente",
    "outgoing_recurrence_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82"
  }
}
```
:::

### Fluxo de Múltiplas Tentativas

1. **1ª Tentativa**: Payment order permanece com status "pending", attempt status "rejected"
2. **2ª Tentativa**: Payment order permanece com status "pending", nova attempt criada
3. **3ª Tentativa**: Payment order permanece com status "pending", nova attempt criada  
4. **4ª Tentativa**: Payment order muda para status "rejected" (limite máximo atingido)

---

## Resumo dos Fluxos

### Fluxo Completo de Sucesso

| Passo | Descrição | Fluxo | Documentação |
|-------|-----------|------|--------------|
| 0 | Criar Recorrência | **Real** | [Jornadas de criação](#passo-0-criar-recorrência-pré-requisito) |
| 1 | Aprovar Recorrência | Simulação | [Ver detalhes](#passo-1-simulação-de-atualização-de-recorrência-mock) |
| 3 | Processar Ordens de Pagamento | Simulação | [Ver detalhes](#passo-3-processar-ordens-de-pagamento-mock) |
| 4 | Consultar e Conciliar Ordens | **Real** | [Consultar lotes](../conciliacao/consultar_lote_por_conta.md) |
| 5 | Atualizar Data de Execução | Simulação | [Ver detalhes](#passo-5-atualizar-data-de-execução-mock---sandbox) |
| 6 | Processar Tentativas | Simulação | [Ver detalhes](#passo-6-processar-tentativas-de-pagamento-mock---sandbox) |
| 7 | Simular PIX de Entrada | Simulação | [Ver detalhes](#passo-7-simular-pix-de-entrada-mock) |

### Fluxo Completo de Rejeição

| Passo | Descrição | Fluxo | Documentação |
|-------|-----------|------|--------------|
| 0 | Criar Recorrência | **Real** | [Jornadas de criação](#passo-0-criar-recorrência-pré-requisito) |
| 1 | Aprovar Recorrência | Simulação | [Ver detalhes](#passo-1-simulação-de-atualização-de-recorrência-mock) |
| 3 | Processar Ordens de Pagamento | Simulação | [Ver detalhes](#passo-3-processar-ordens-de-pagamento-mock) |
| 4 | Consultar e Conciliar Ordens | **Real** | [Consultar lotes](../conciliacao/consultar_lote_por_conta.md) |
| 5 | Atualizar Data de Execução | Simulação | [Ver detalhes](#passo-5-atualizar-data-de-execução-mock---sandbox) |
| 6 | Processar Tentativas | Simulação | [Ver detalhes](#passo-6-processar-tentativas-de-pagamento-mock---sandbox) |
| 8 | Simular Rejeição | Simulação | [Ver detalhes](#passo-8-simular-tentativa-de-pagamento-rejeitada-mock) |

---

## Links Úteis

### Gerenciamento de Recorrências
- [Consultar uma recorrência](./consultar_recorrencia.md)
- [Consultar uma recorrência pelo QR Code](./consultar_recorrencia_receiver.md)
- [Listar recorrências de uma conta](./listar_recorrencias_de_uma_conta.md)
- [Cancelar recorrência](./cancelar_recorrencia.md)

### Gerenciamento de Pagamentos
- [Listar ordens de pagamento](../pagamentos/listar_account_payment_orders.md)
- [Consultar ordem de pagamento](../pagamentos/consultar_payment_order.md)
- [Atualizar ordem de pagamento](../pagamentos/atualizar_payment_order.md)
- [Cancelar ordem de pagamento](../pagamentos/cancelar_payment_order.md)

### Lotes de Conciliação
- [Consultar lote por conta](../conciliacao/consultar_lote_por_conta.md)
- [Consultar lote por requester](../conciliacao/consultar_lote_requester.md)
- [Listar pagamentos de um lote](../conciliacao/listar_payment_orders.md)
- [Webhooks de conciliação](../conciliacao/webhooks.md)

### Webhooks
- [Webhooks do Usuário Recebedor](./webhooks.md)
- [Webhooks de Lotes de Conciliação](../conciliacao/webhooks.md)

---

# Webhooks Pix Automático

URL: /documentation/baas/pix_automatico/recebedor/webhooks

As notificações via webhook são fundamentais para o correto processamento de eventos assíncronos relacionados ao Pix Automático, incluindo especialmente as autorizações e execuções de pagamentos recorrentes em diferentes jornadas.

:::danger Atenção!
Os webhooks da QI Tech não devem ser mapeados de forma restrita.
Campos adicionais podem ser incluídos aos payloads dos webhooks retornados em nossas APIs.
:::

## Webhook de Status de Recorrência

Este webhook é destinado ao reporte de alterações de status de autorizações e ciclos de recorrência do Pix Automático, diferenciando os tipos de jornadas envolvidas.

### Webhook Request Body

### Jornada 1 – journey_one

Request Body: Jornada 1

```json
{
  "event_type": "baas.automatic_pix.outgoing_recurrence.status_change",
  "origin_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "data": {
    "request_control_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
    "outgoing_recurrence_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "outgoing_recurrence_status": "approved",
    "journey_type": "journey_one",
    "outgoing_recurrence_data": {
      "minimum_recurrence_amount": 123.45,
      "recurrence_amount": null
    },
    "payment_conciliation_batch_key": "uuid"
  }
}
```

### Jornada 2 – journey_two

Request Body: Jornada 2

```json
{
    "event_type": "baas.automatic_pix.outgoing_recurrence.status_change",
    "origin_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "data": {
        "request_control_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
        "outgoing_recurrence_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
        "outgoing_recurrence_status": "approved",
        "journey_type": "journey_two",
        "outgoing_recurrence_data": {
            "minimum_recurrence_amount": 123.45,
            "recurrence_amount": null
        },
        "payment_conciliation_batch_key": "uuid" or null
    }
}
```

### Jornada 3 – journey_three

Request Body: Jornada 3

```json
{
    "event_type": "baas.automatic_pix.outgoing_recurrence.status_change",
    "origin_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "data": {
        "request_control_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
        "outgoing_recurrence_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
        "outgoing_recurrence_status": "approved",
        "journey_type": "journey_three",
        "outgoing_recurrence_data": {
            "minimum_recurrence_amount": 123.45,
            "recurrence_amount": null,
            "qr_code_initial_payment_data": {
                "receiver_conciliation_id": "id",
                "transaction_data": {
                    "transaction_key": "uuid",
                    "pix_transfer_key": "uuid",
                    "end_to_end_id": "end_to_end"
                }
            },
            "payment_conciliation_batch_key": "uuid" or null
        }
    }
}
```

### Jornada 4 – journey_four

Request Body: Jornada 4

```json
{
    "event_type": "baas.automatic_pix.outgoing_recurrence.status_change",
    "origin_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "data": {
        "request_control_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
        "outgoing_recurrence_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
        "outgoing_recurrence_status": "approved",
        "journey_type": "journey_four",
        "outgoing_recurrence_data": {
            "minimum_recurrence_amount": 123.45,
            "recurrence_amount": null
        },
        "qr_code_initial_payment_data": {
            "receiver_conciliation_id": "id",
            "transaction_data": {
                "transaction_key": "uuid" or null,
                "pix_transfer_key": "uuid" or null,
                "end_to_end_id": "end_to_end" or null
            }
        },
        "payment_conciliation_batch_key": "uuid" or null
    }
}
```

:::caution Atenção
Quando o usuário pagor recebe a notificação, ele pode optar por agendar o Pix ou realizar a transferência naquele momento. Caso o pagador realize instantaneamente o pagamento, será enviado o webhook do tipo `baas.automatic_pix.outgoing_recurrence.status_change` com as informações preenchidas, em caso de agendamento os valores serão `null`.
:::

### Webhook Body Params

| Campo                                | Tipo       | Descrição                                                                                                               | Caracteres |
|-------------------------------------- |------------|-------------------------------------------------------------------------------------------------------------------------|------------|
| `event_type` *                       | string     | Tipo do evento reportado (exemplo: `baas.automatic_pix.outgoing_recurrence.status_change`).                             | 100        |
| `origin_key` *                       | string     | Identificador único de origem do evento (UUID).                                                                         | 36         |
| `data` *                             | Object     | Objeto principal contendo os detalhes da recorrência automática.                                                        | [Objeto data](#objeto-data)                                    |

---

### Objeto data

| Campo                                | Tipo       | Descrição                                                                                           | Caracteres |
|-------------------------------------- |------------|-----------------------------------------------------------------------------------------------------|------------|
| `request_control_key` *               | string     | Chave de controle única da requisição (UUID4).                                                      | 36         |
| `outgoing_recurrence_key` *           | string     | Identificador único da recorrência automática (UUID).                                               | 36         |
| `outgoing_recurrence_status` *        | string     | Status da recorrência em questão (ex: `approved`, `pending`, `rejected`, etc.)                      | 30         |
| `journey_type` *                      | enumerator | Jornada correspondente à autorização do Pix Automático (`journey_one`, `journey_two`, etc.).         | [Enumeradores journey_type](#enumeradores-journey_type) |
| `outgoing_recurrence_data` *           | Object     | Objeto contendo informações específicas da recorrência e da jornada.                                | [Objeto outgoing_recurrence_data](#objeto-outgoing_recurrence_data) |
| `payment_conciliation_batch_key`       | string     | Identificador de agrupamento para conciliação de pagamentos. Pode ser null.                         | 36 ou null |
| `qr_code_initial_payment_data`         | Object     | (Jornada 3 e 4) Detalhamento de dados do pagamento via QR Code inicial, se houver.                  | [Objeto qr_code_initial_payment_data](#objeto-qr_code_initial_payment_data) |

---

### Objeto outgoing_recurrence_data

| Campo                           | Tipo    | Descrição                                                                                      | Caracteres |
|----------------------------------|---------|----------------------------------------------------------------------------------------------- |------------|
| `minimum_recurrence_amount`      | number  | Valor mínimo da recorrência autorizada.                                                        | -          |
| `recurrence_amount`              | number  | Valor total da recorrência (pode ser null se não aplicável).                                   | -          |
| `qr_code_initial_payment_data`   | Object  | (Jornada 3) Dados detalhados do pagamento inicial caso QR Code seja utilizado.                 | [Objeto qr_code_initial_payment_data](#objeto-qr_code_initial_payment_data) |
| `payment_conciliation_batch_key` | string  | Identificador de lote/conciliação do pagamento.                                                | 36         |

---

### Objeto qr_code_initial_payment_data

| Campo                     | Tipo    | Descrição                                               | Caracteres |
|---------------------------|---------|---------------------------------------------------------|------------|
| `receiver_conciliation_id`| string  | Identificador único da conciliação do recebedor.        | -          |
| `transaction_data`        | Object  | Detalhes da transação associada ao QR code inicial.     | [Objeto transaction_data](#objeto-transaction_data) |

---

### Objeto transaction_data

| Campo               | Tipo   | Descrição                                   | Caracteres |
|---------------------|--------|---------------------------------------------|------------|
| `transaction_key`   | string | Chave única da transação.                   | 36         |
| `pix_transfer_key`  | string | Identificador da transferência Pix associada.| 36         |
| `end_to_end_id`     | string | Identificador end-to-end do Pix.            | 32         |

---

### Enumeradores journey_type

| Enumerador      | Descrição                                    |
|-----------------|----------------------------------------------|
| `journey_one`   | Notificação direta no aplicativo bancário    |
| `journey_two`   | Experiência QR Code para cobrança recorrente |
| `journey_three` | Pagamento instantâneo + recorrência QR Code  |
| `journey_four`  | Opt-in recorrente a partir de operação Pix   |

## Webhook de Status de Ordem de Pagamento

Este webhook é destinado ao reporte de alterações de status de ordens de pagamento do Pix Automático, informando sobre cancelamentos, pagamentos realizados e rejeições.

### Webhook Request Body

### Status: Cancelado (cancelled)

Request Body: Payment Order Cancelada

```json
{
  "event_type": "baas.automatic_pix.payment_order.status_change",
  "origin_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "data": {
    "payment_order_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "payment_order_spi_id": "RR2222222220240429njua7shf40k",
    "outgoing_recurrence_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
    "payment_order_status": "cancelled",
    "receiver_conciliation_id": "cac0b5f7-4ee2-40f1-b2ad-16902506503d",
    "transaction_amount": 125.53,
    "payment_order_conciliation_batch_key": "21fc62fd-b0a0-4604-9bea-475e91a9dc82",
    "transaction_key": "21fc62fd-b0a0-4604-9bea-475e91a9dc56",
    "incoming_pix_transfer_key": "21fc62fd-b0a0-4604-9bea-475e91a9dc56"
  }
}
```

### Status: Pago (paid)

Request Body: Payment Order Paga

```json
{
  "event_type": "baas.automatic_pix.payment_order.status_change",
  "origin_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "data": {
    "payment_order_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "payment_order_spi_id": "RR2222222220240429njua7shf40k",
    "outgoing_recurrence_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
    "payment_order_status": "paid",
    "receiver_conciliation_id": "cac0b5f7-4ee2-40f1-b2ad-16902506503d",
    "transaction_amount": 125.53,
    "payment_order_conciliation_batch_key": "21fc62fd-b0a0-4604-9bea-475e91a9dc82",
    "transaction_key": "21fc62fd-b0a0-4604-9bea-475e91a9dc56",
    "incoming_pix_transfer_key": "21fc62fd-b0a0-4604-9bea-475e91a9dc56",
    "paid_at": "2021-10-22T20:30:23.459Z"
  }
}
```

### Status: Rejeitado (rejected)

Request Body: Payment Order Rejeitada

```json
{
  "event_type": "baas.automatic_pix.payment_order.status_change",
  "origin_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "data": {
    "payment_order_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "payment_order_spi_id": "RR2222222220240429njua7shf40k",
    "outgoing_recurrence_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
    "payment_order_status": "rejected",
    "receiver_conciliation_id": "cac0b5f7-4ee2-40f1-b2ad-16902506503d",
    "transaction_amount": 125.53,
    "payment_order_conciliation_batch_key": "21fc62fd-b0a0-4604-9bea-475e91a9dc82"
  }
}
```

:::info Informação
As ordens de pagamento rejeitadas são enviadas após o esgotamento do número máximo de tentativas (caso a recorrência permita retentativas). Neste caso, os campos `transaction_key` e `incoming_pix_transfer_key` não são incluídos no payload.
:::

### Webhook Body Params - Payment Order

| Campo                                | Tipo       | Descrição                                                                                                               | Caracteres |
|-------------------------------------- |------------|-------------------------------------------------------------------------------------------------------------------------|------------|
| `event_type` *                       | string     | Tipo do evento reportado (`baas.automatic_pix.payment_order.status_change`).                                            | 100        |
| `origin_key` *                       | string     | Identificador único de origem do evento (UUID da payment order).                                                        | 36         |
| `data` *                             | Object     | Objeto principal contendo os detalhes da ordem de pagamento.                                                            | [Objeto data](#objeto-data-payment-order)                                    |

---

### Objeto data (Payment Order)

| Campo                                | Tipo       | Descrição                                                                                           | Caracteres |
|-------------------------------------- |------------|-----------------------------------------------------------------------------------------------------|------------|
| `payment_order_key` *                 | string     | Chave única da ordem de pagamento (UUID).                                                           | 36         |
| `payment_order_spi_id` *              | string     | Identificador SPI da ordem de pagamento.                                                            | 29         |
| `outgoing_recurrence_key` *           | string     | Identificador único da recorrência automática associada (UUID).                                     | 36         |
| `payment_order_status` *              | string     | Status da ordem de pagamento (`cancelled`, `paid`, `rejected`).                                     | 30         |
| `receiver_conciliation_id` *          | string     | Identificador de conciliação do recebedor (UUID).                                                   | 36         |
| `transaction_amount` *                | number     | Valor da transação da ordem de pagamento.                                                           | -          |
| `payment_order_conciliation_batch_key` * | string  | Identificador do lote de conciliação associado (UUID).                                              | 36         |
| `transaction_key`                     | string     | Chave única da transação (presente apenas em status `cancelled` e `paid`).                          | 36         |
| `incoming_pix_transfer_key`           | string     | Identificador da transferência PIX de entrada (presente apenas em status `cancelled` e `paid`).     | 36         |
| `paid_at`                             | string     | Data e hora do pagamento (presente apenas em status `paid`, formato ISO 8601).                      | -          |

---

### Enumeradores payment_order_status

| Enumerador      | Descrição                                                    |
|-----------------|--------------------------------------------------------------|
| `cancelled`     | Ordem de pagamento cancelada pelo pagador ou recebedor       |
| `paid`          | Ordem de pagamento executada com sucesso                     |
| `rejected`      | Ordem de pagamento rejeitada após esgotamento de tentativas  |

## Webhook de Status de Tentativa de Ordem de Pagamento

Este webhook é destinado ao reporte de alterações de status das tentativas de execução de ordens de pagamento do Pix Automático, informando especialmente sobre tentativas rejeitadas e os motivos de rejeição.

### Webhook Request Body

### Status: Rejeitado (rejected)

Request Body: Tentativa de Payment Order Rejeitada

```json
{
  "event_type": "baas.automatic_pix.payment_order_attempt.status_change",
  "origin_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "data": {
    "request_control_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "payment_order_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "payment_order_attempt_key": "21fc62fd-b0a0-4604-9bea-475e91a9dc82",
    "payment_order_status": "pending",
    "payment_order_attempt_status": "rejected",
    "transaction_amount": 125.53,
    "reason": "Conta de destino inexistente",
    "outgoing_recurrence_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82"
  }
}
```

:::info Informação
Este webhook é enviado sempre que uma tentativa de execução de uma ordem de pagamento é rejeitada pelo SPI. A ordem de pagamento pode ter novas tentativas dependendo da configuração da recorrência e do motivo da rejeição. O campo `reason` contém a descrição do motivo da rejeição baseado no código de erro do Bacen.
:::

### Webhook Body Params - Payment Order Attempt

| Campo                                | Tipo       | Descrição                                                                                                               | Caracteres |
|-------------------------------------- |------------|-------------------------------------------------------------------------------------------------------------------------|------------|
| `event_type` *                       | string     | Tipo do evento reportado (`baas.automatic_pix.payment_order_attempt.status_change`).                                   | 100        |
| `origin_key` *                       | string     | Identificador único de origem do evento (UUID da payment order).                                                        | 36         |
| `data` *                             | Object     | Objeto principal contendo os detalhes da tentativa de ordem de pagamento.                                               | [Objeto data](#objeto-data-payment-order-attempt)                                    |

---

### Objeto data (Payment Order Attempt)

| Campo                                | Tipo       | Descrição                                                                                           | Caracteres |
|-------------------------------------- |------------|-----------------------------------------------------------------------------------------------------|------------|
| `request_control_key` *               | string     | Chave de controle única da requisição (UUID da payment order).                                      | 36         |
| `payment_order_key` *                 | string     | Chave única da ordem de pagamento associada (UUID).                                                 | 36         |
| `payment_order_attempt_key` *         | string     | Chave única da tentativa de pagamento (UUID).                                                       | 36         |
| `payment_order_status` *              | string     | Status atual da ordem de pagamento (`pending`, `accepted`, `cancelled`, etc.).                      | 30         |
| `payment_order_attempt_status` *      | string     | Status da tentativa de pagamento (`rejected`).                                                      | 30         |
| `transaction_amount` *                | number     | Valor da transação da tentativa de pagamento.                                                       | -          |
| `reason` *                            | string     | Motivo da rejeição da tentativa (descrição do erro baseado no código Bacen).                       | 200        |
| `outgoing_recurrence_key` *           | string     | Identificador único da recorrência automática associada (UUID).                                     | 36         |

---

### Enumeradores payment_order_attempt_status

| Enumerador      | Descrição                                                         |
|-----------------|-------------------------------------------------------------------|
| `rejected`      | Tentativa de pagamento rejeitada pelo SPI por erro específico    |

## Webhook para tentativa de ordem de pagamento não liquidada

Webhook destinado a notificar quando uma tentativa de ordem de pagamento foi aceita mas não foi liquidada no prazo esperado.

### Webhook Request Body

Request Body: Tentativa de ordem de pagamento não liquidada

```json
{
    "webhook_type": "baas.automatic_pix.payment_order_attempt.not_liquidated",
    "webhook_datetime": "2025-10-22T21:15:00.000Z",
    "data": {
        "payment_order_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
        "payment_order_spi_id": "RR2222222220240429njua7shf40k",
        "outgoing_recurrence_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
        "payment_order_status": "pending",
        "receiver_conciliation_id": "cac0b5f7-4ee2-40f1-b2ad-16902506503d",
        "transaction_amount": "125.53",
        "payment_order_conciliation_batch_key": "21fc62fd-b0a0-4604-9bea-475e91a9dc82",
        "payment_order_attempt_key": "21fc62fd-b0a0-4604-9bea-475e91a9dc83",
        "payment_order_attempt_status": "not_liquidated",
        "due_date": "2025-10-22",
        "end_to_end_id": "E1234567890123456789012"
    }
}
```

### Webhook Body Param

| Campo                                | Tipo      | Descrição                                                                                                | Max. Caracteres |
|--------------------------------------|-----------|----------------------------------------------------------------------------------------------------------|-----------------|
| `webhook_type`                       | string    | Um enumerador que define o tipo de evento sendo reportado                                                | 100             |
| `webhook_datetime`                   | string    | Data e hora do envio do webhook                                                                          | 20              |
| `payment_order_key`                  | uuid4     | Chave única de identificação da ordem de pagamento.                                                      | 36              |
| `payment_order_spi_id`               | string    | Identificador da ordem de pagamento no SPI.                                                               | 50              |
| `outgoing_recurrence_key`            | uuid4     | Chave única de identificação da recorrência de saída associada.                                          | 36              |
| `payment_order_status`               | string    | Status atual da ordem de pagamento.                                                                      | [Enumeradores payment_order_status](#enumeradores-payment_order_status) |
| `receiver_conciliation_id`           | string    | Identificação de conciliação do recebedor.                                                               | 36              |
| `transaction_amount`                 | number    | Valor da transação da ordem de pagamento.                                                                 | -               |
| `payment_order_conciliation_batch_key` | uuid4   | Chave única de identificação do lote de conciliação associado.                                           | 36              |
| `payment_order_attempt_key`          | uuid4     | Chave única de identificação da tentativa de ordem de pagamento.                                         | 36              |
| `payment_order_attempt_status`       | string    | Status da tentativa de ordem de pagamento.                                                               | [Enumeradores payment_order_attempt_status](#enumeradores-payment_order_attempt_status) |
| `due_date`                           | string    | Data de vencimento da tentativa de ordem de pagamento (formato YYYY-MM-DD).                              | 10              |
| `end_to_end_id`                      | string    | Chave de idempotência de uma transação Pix dentro do SPI.                                                | 32              |

### Enumeradores payment_order_status

| Enumerador            | Descrição                                          |
|-----------------------|----------------------------------------------------|
| `pending_conciliation`| Aguardando conciliação.                            |
| `pending`             | Pendente e aguardando pagamento.                   |
| `paid`                | Paga com sucesso.                                  |
| `rejected`            | Rejeitada e não será processada.                   |
| `cancelled`           | Cancelada antes do pagamento.                      |

### Enumeradores payment_order_attempt_status

| Enumerador      | Descrição                                                         |
|-----------------|-------------------------------------------------------------------|
| `sent`          | Tentativa de pagamento enviada                                    |
| `accepted`      | Tentativa de pagamento aceita                                     |
| `rejected`      | Tentativa de pagamento rejeitada pelo SPI por erro específico    |
| `not_liquidated`| Tentativa de pagamento aceita mas não liquidada no prazo esperado |

---

# Aprovar Transação com Autenticação de Dois Fatores

URL: /documentation/baas/pix/2fa_v2/aprovar_transacao_pix_2fa

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_transfer/ PIX_TRANSFER_KEY /validate_token
MÉTODO PUT

### Path Params

| Campo              | Tipo   | Descrição                                      | Caracteres |
|--------------------|--------|------------------------------------------------|------------|
| `account_key`      | uuidv4 | Chave única de identificação da conta.         | 36         |
| `pix_transfer_key` | uuidv4 | Chave única de identificação da transação pix. | 36         |

## Autenticação via Email e SMS

Request Body

```json
{
  "token": "329adf"
}
```

## Autenticação via Dispositivo

Para aprovar e finalizar a autenticação via dispositivo, a requisição deve ser enviada com um payload vazio. A validação ocorre internamente, sem necessidade de informações adicionais no corpo da requisição. É importante destacar que este endpoint só deve ser utilizado após a [solicitação de transação](./solicitacao_de_transacao_pix_2fa.md) ter sido iniciada.

Request Body

```json
{

}
```

## Body Params

| Campo     | Tipo   | Descrição                                                             | Caracteres |
|-----------|--------|-----------------------------------------------------------------------|------------|
| `token`   | string | Código de autenticação enviado ao aprovador de movimentações da conta **obrigatório para TFA via SMS ou e-mail**| 6          | 

## Response

STATUS 201

Response Body: Transferência Enviada

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "end_to_end_id": "E32402502202405081755SxyT2DDcVwc",
  "pix_transfer_status": "sent",
  "created_at": "2021-10-22T20:30:23.459Z",
  "transaction_key": "46804f32-101e-4702-8fbc-c2dbc4c2caec"
}
```

STATUS 202

Response Body: Transferência Pendente

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "end_to_end_id": "E32402502202405081755SxyT2DDcVwc",
  "pix_transfer_status": "pending",
  "created_at": "2021-10-22T20:30:23.459Z"
}
```

STATUS 4xx

Response Body: Transferência Rejeitada

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {
    "pix_transfer_data": {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "end_to_end_id": "E32402502202405081755SxyT2DDcVwc",
      "pix_transfer_status": "rejected",
      "created_at": "2021-10-22T20:30:23.459Z"
    }
  }
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (ptbr)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Erro de Schema                                                                                                         |
| 404                      | PXT000023            | Outgoing PIX Transfer Not Found                    | Pix transfer key \{pix_transfer_key\} was not found                                                                     | Transferência PIX de saída com chave \{pix_transfer_key\} não foi encontrada                                           |
| 400                      | PXT000175            | Invalid Status                                     | Pix transfer not in pending_2fa_approval status                                                                         | Pix transfer não está pendente de aprovação por two factor authentication                                              |
| 400                      | PXT000182            | Bad Request                                        | The given Pix transfer is tied to a batch. It cannot be individually approved. Please approve batch                     | A Pix transfer enviada está ligada a um lote. Ela não pode ser individualmente aprovada. Por favor aprove o lote       |
| 400                      | PXT000174            | Error Sending Token                                | An error occurred while sending token and its being investigated                                                        | Um erro ocorreu ao enviar token e está sendo investigado                                                               |
| 400                      | PXT000173            | Incorrect Token                                    | Token sent does not match expected                                                                                      | Token enviado não condiz com, o esperado                                                                               |
| 400                      | PXT000172            | Token Expired                                      | Token has expired. Resend token or recreate transfer                                                                    | Token expirado. Reenvie token ou recrie a transferência                                                                | 
| 400                      | PXT000171            | Number of token validation attempts exceeded       | The maximum number of failed token validation attempts has been reached                                                 | Número máximo de tentativas de validação de token atingida                                                             |
| 406                      | PXT000103            | request_control_key must be a valid uuid v4 string | request_control_key was not accepted for not being a valid uuid v4 string                                               | request_control_key não foi aceito por não ser uma palavra uuid v4 válida                                              |
| 400                      | PXT000048            | Bad Request                                        | Emoji not allowed in pix message.                                                                                       | Emoji não é permitido na mensagem pix.                                                                                 |
| 400                      | PXT000104            | Invalid Transaction Amount                         | Transaction amount of \{transaction_amount\} is not valid. It must be a positive value with at maximum 2 decimal places | O valor de transação \{transaction_amount\} não é válido. Deve ser um valor positivo com no máximo duas casas decimais |
| 404                      | PXT000004            | Account not found                                  | Account not found for: \{account_datum\}                                                                                | Conta não encontrada para: \{account_datum\}                                                                           |
| 400                      | PXT000003            | Account is Closed                                  | Account \{account_key\} is closed.                                                                                      | Conta \{account_key\} está fechada.                                                                                    |
| 422                      | PXT000092            | Invalid Account Type                               | Pix is not yet implemented for non-checking or non-escrow account types                                                 | Transações Pix não estão implementadas para conta que não sejam escrow ou livres                                       |
| 403                      | PIT000001            | User is not allowed to do this transaction         |                                                                                                                         | Usuário não tem autorização para fazer essa transação                                                                  |
| 400                      | PXT000010            | Account is Blocked                                 | Account \{account_key\} is blocked.                                                                                     | Conta \{account_key\} está bloqueada.                                                                                  |
| 400                      | PXT000003            | Account is Closed                                  | Account \{account_key\} is closed.                                                                                      | Conta \{account_key\} está fechada.                                                                                    |
| 400                      | PIT000003            | Bad Request                                        | Insufficient account balance for transfer and fee amount.                                                               | Saldo de conta insuficiente para a transferência e a taxa.                                                             |
| 400                      | PXT000118            | Requester is not Pix Participant                   | The requester sent an alias key but is not a indirect pix participant                                                   | O requisitante enviou uma alias key no entanto não é um participante do pix indireto                                   |
| 404                      | PXT000120            | Alias sent not found                               | Alias key attached to this account not found                                                                            | Alias key vinculada à conta não encontrada                                                                             |
| 406                      | PXT000105            | Invalid end_to_end_id                              | The end_to_end_id sent \{end_to_end_id\} is not valid.                                                                  | O end_to_end_id enviado \{end_to_end_id\} não é válido.                                                                |
| 400                      | PXT000108            | Bad Request                                        | Billing account closed or blocked                                                                                       | Conta de cobrança encerrada ou bloqueada                                                                               |
| 400                      | PXT000079            | Bad Request                                        | Insufficient billing account balance for fee.                                                                           | Saldo de conta de cobrança insuficiente para a taxa.                                                                   |
| 400                      | PIT000004            | Bad Request                                        | Transaction amount is over limit.                                                                                       | O total da transferência é superior ao limite.                                                                         |
| 404                      | PIX000056            | Not Found                                          | Pix key inquiry not found                                                                                               | Consulta de chave pix não encontrada                                                                                   |
| 404                      | PXT000041            | Not Found                                          | Qr Code not found                                                                                                       | Qr Code não encontrado                                                                                                 |
| 400                      | PXT000053            | Bad Request                                        | QrCode already paid                                                                                                     | Qr Code já Pago                                                                                                        |
| 400                      | PXT000118            | Requester is not Pix Participant                   | The requester sent an alias key but is not a indirect pix participant                                                   | O requisitante enviou uma alias key no entanto não é um participante do pix indireto                                   |
| 404                      | PXT000120            | Alias sent not found                               | Alias key attached to this account not found                                                                            | Alias key vinculada à conta não encontrada                                                                             |
| 400                      | PXT000115            | Bad Request                                        | Insufficient account balance for transfer and fee amount.                                                               | Saldo de conta insuficiente para a transferência e a taxa                                                              |
| 400                      | PXT000128            | Bad Request                                        | Pix key \{pix_key\} sent does match inquiry pix key. Verify if end_to_end_id sent is correct                            | Chave Pix \{pix_key\} enviada não condiz com consulta. Verifique se end_to_end_id enviado está correto                 |
| 400                      | PXT000109            | Bad Request                                        | request_control_key \{request_control_key\} already in use                                                              | request_control_key \{request_control_key\} já utilizada                                                               |
| 400                      | PXT000061            | Bad Request                                        | End to end id invalid. A pix transfer with the end to end id \{end_to_end\} has already been registered!                | End to end id inválido. Uma transação pix com o identificador único \{end_to_end\} já foi registrada!                  |
| 400                      | PXT000129            | SPI Error message                                  | Message rejected by SPI-ICOM                                                                                            | Mensagem rejeitada pela SPI-ICOM                                                                                       |
| 408                      | PXT000130            | SPI Timeout Control                                | SPI Timeout Control                                                                                                     | Controle de timeout no SPI                                                                                             |
| 400                      | PXT000131            | Receiver Internal Error                            | Cancelled transaction due to receiver's internal error                                                                  | Transação interrompida devido a erro no PSP do Recebedor                                                               |
| 400                      | PXT000132            | Invalid Target Account Number                      | Target account number is invalid                                                                                        | Número da conta de destino é inexistente ou inválido                                                                   |
| 400                      | PXT000133            | Blocked Target Account                             | Target account is blocked.                                                                                              | A conta de destino encontra-se bloqueada.                                                                              |
| 400                      | PXT000134            | Closed Target Account                              | Target account is closed.                                                                                               | A conta de destino encontra-se encerrada.                                                                              |
| 400                      | PXT000135            | Unsupported Transaction                            | Unsupported transaction for given target account.                                                                       | A conta de destino não suporta este tipo de transação.                                                                 |
| 400                      | PXT000136            | Invalid Participant                                | SPI participant is not PSP settler agent of payer nor receiver.                                                         | Participante direto do SPI não é liquidante do PSP do Pagador / Recebedor.                                             |
| 400                      | PXT000137            | Zero Value Payment Order                           | Zero value payment order.                                                                                               | Ordem de pagamento com valor zero.                                                                                     |
| 400                      | PXT000138            | Insufficient Funds                                 | Insufficient funds in PI account from payer.                                                                            | Saldo insuficiente na conta PI do pagador.                                                                             |
| 400                      | PXT000139            | Return Value Too Great                             | Return value greater than corresponding payment order.                                                                  | Valor de devolução acima do valor de pagamento correspondente.                                                         |
| 400                      | PXT000140            | Invalid Transactions Number                        | Invalid transactions number.                                                                                            | Quantidade de transações inválida.                                                                                     |
| 400                      | PXT000141            | Unrelated Beneficiary Document Number              | Beneficiary document number is not that of target account owner.                                                        | CPF/CNPJ do usuário recebedor não é compatível com o titular da conta de destino.                                      |
| 400                      | PXT000142            | Invalid Beneficiary Document Number                | Invalid beneficiary document number                                                                                     | CPF/CNPJ da conta de destino está incorreto.                                                                           |
| 400                      | PXT000143            | Incorrect Message Element                          | Incorrect message element.                                                                                              | Elemento da mensagem incorreto.                                                                                        |
| 403                      | PXT000144            | Rejected Payment Order                             | Beneficiary's PSP has rejected payment order.                                                                           | Ordem de pagamento foi rejeitada pelo banco recebedor.                                                                 |
| 403                      | PXT000145            | Unauthorized Payer                                 | Signing participant is unauthorized to make a payment order for paying account.                                         | Participante que assinou a mensagem não é autorizado a realizar a operação na conta PI debitada.                       |
| 400                      | PXT000146            | Invalid Datetime                                   | Invalid datetime for message delivery.                                                                                  | Data e Hora do envio da mensagem inválida.                                                                             |
| 400                      | PXT000147            | Generic Error                                      | Error while processing payment (generic error).                                                                         | Erro no processamento do pagamento (erro genérico).                                                                    |
| 400                      | PXT000148            | Bad Format Operation Identifier                    | Badly formatted operation's identifier.                                                                                 | Identificador da operação mal formatado.                                                                               |
| 400                      | PXT000149            | Invalid Payer ISPB                                 | Invalid or non-existent payer's PSP ISPB number.                                                                        | Número ISPB do PSP do Pagador é inválido ou inexistente.                                                               |
| 400                      | PXT000150            | Invalid Beneficiary ISPB                           | Invalid or non-existent beneficiary's PSP ISPB number.                                                                  | Número ISPB do banco recebedor é inválido ou inexistente.                                                              |
| 400                      | PXT000151            | Incorrect Type                                     | Incorrect type for target account.                                                                                      | Tipo incorreto para a conta transacional especificada.                                                                 |
| 400                      | PXT000152            | Repeated End-to-End ID Error                       | The end_to_end_id was already used                                                                                      | O end_to_end_id já foi utilizado                                                                                       |
| 400                      | PXT000153            | Invalid Target Account Type                        | The target account type cannot receive PIX transactions                                                                 | O tipo de conta destino não pode receber transações PIX                                                                |
| 400                      | PXT000154            | Invalid ISPB                                       | Invalid or non-existent ISPB number.                                                                                    | Número ISPB é inválido ou inexistente.                                                                                 |
| 400                      | PXT000155            | Amount too Great                                   | Amount too great for credited account.                                                                                  | Valor de pagamento/devolução acima do permitido para a conta de destino creditada.                                     |
| 400                      | PXT000156            | QR Code Rejected                                   | QR Code rejected by beneficiary's PSP.                                                                                  | QR Code rejeitado pelo PSP do usuário recebedor.                                                                       |
| 503                      | PXT000157            | Bacen Service Unavailable Error                    | Could not send the message to ICOM after 3 retries                                                                      | Não pode enviar a mensagem para a ICOM depois de 3 tentativas                                                          |
| 400                      | PXT000158            | Invalid Amount                                     | Paid amount diverges from expected amount of \{expected_amount\}                                                        | O valor do pagamento diverge do valor esperado de \{expected_amount\}                                                  |
| 400                      | PXT000159            | QR code inactive                                   | QR code is not active at the time of payment                                                                            | QR code não está ativo no instante do pagamento                                                                        |
| 400                      | PXT000189            | Token Required                                | A token is required for SMS or email validation.                    | Um token é necessário para validação via SMS ou email.             |

---

# Introdução a Autenticação de Dois Fatores

URL: /documentation/baas/pix/2fa_v2/introducao_a_transacao_pix_2fa

Neste tipo de transação, é necessário a confirmação do pagamento via token enviado à pessoa com poderes de aprovação de
movimentação na conta credora.

A solicitação de transação Pix por parceiros integradores configurados para a utilização de autenticação de dois
fatores é realizada de forma similar ao descrito
em [realizar transação Pix](/documentation/baas/pix/realizar_transferencia). A diferença ocorre na adição do
objeto `tfa_info`, contento informações sobre o aprovador da transferência e a forma de contato, e o status de uma
solicitação bem sucedida que será sempre **pending_2fa_approval**.

O mesmo vale para transações em lote Pix descrito em [realizar transação pix em lote](/documentation/baas/pix/batch/solicitacao_de_transacao_em_lote_pix).

## Fluxo para uma transação Pix com autorização

A transação Pix bem sucedida seguirá o seguinte fluxo de processos:
Realização da [solicitação de transação Pix](/documentation/baas/pix/2fa_v2/solicitacao_de_transacao_pix_2fa) e recebimento de resposta de forma síncrona com status de **pending_2fa_approval** e valor da `pix_transfer_key`.
O aprovador indicado receberá um `token` de 6 dígitos compostos por algarismos.
O requisitante realiza a [confirmação de transação pix](/documentation/baas/pix/2fa_v2/aprovar_transacao_pix_2fa) com a `pix_transfer_key` e o `token`.
A transferência será concluída de forma síncrona ou assíncrona a depender da configuração do parceiro integrador.
## Observações
Cada transação possui um limite máximo de tentativas de validação do `token` de 5. Quando este limite é alcançado a transação será colocada em status de rejeitada (**rejected**) automaticamente.
Cada `token` possui duração máxima de 5 minutos.
Uma transação pode ter seu `token` renovado e reenviado para o aprovador da transferência. Este processo reinica o tempo de 5 minutos e não reinicia o contador de tentativas inválidas. O `token` anterior torna-se inválido.
Uma vez aprovada a transação, esta será concluída em regime síncrono ou assíncrono a depender da configuração do parceiro integrador.
O evento de notificação para o envio de `token` ao aprovador é **baas.token_validation.pix_transfer.single**. É possível [personalizar](/documentation/notificacoes/template) a mensagem enviada.
As formas de envio (`contact_type`) de token implementadas são por **sms** e **email**.

---

# Solicitar a devolução de um Pix recebido

URL: /documentation/baas/pix/2fa_v2/solicitacao_de_devolucao_pix

A devolução de um Pix pode ser efetuada em até 90 dias a partir de seu recebimento.

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_transfer/ PIX_TRANSFER_KEY /reversal
MÉTODO POST

### Path Params

| Campo                | Tipo   | Descrição                                                        | Caracteres |
|----------------------|--------|------------------------------------------------------------------|------------|
| `account_key` *      | uuidv4 | Chave única de identificação da conta.                           | 36         |
| `pix_transfer_key` * | uuidv4 | Chave única de identificação da transferência Pix no sistema QI. | 36         |

Request Body

```json
{
  "request_control_key": "303393bf-8f2e-4ff0-b326-ee7ad612e8ca",
  "reversal_amount": 147,
  "reversal_reason": "client_request",
  "reversal_message": "Mensagem Pix da Devolução",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  }
}
```

### Request Params

| Campo                   | Tipo   | Descrição                                                                       | Caracteres                                                    |
|-------------------------|--------|---------------------------------------------------------------------------------|---------------------------------------------------------------|
| `request_control_key` * | uuidv4 | Chave de unicidade da requisição.                                               | 36                                                            |
| `reversal_amount` *     | number | Valor da devolução.                                                             | 11                                                            |
| `reversal_reason` *     | string | Motivo da devolução.                                                            | **[Enumerador reversal_reason](#enumerador-reversal_reason)** |
| `reversal_message`      | string | Mensagem da devolução.                                                          | 140                                                           |
| `tfa_info`*             | Object | Objeto contendo o documento da pessoa aprovadora da conta e a forma de contato. | **[Objeto tfa_info](#objeto-tfa_info)**                       |

### Enumerador reversal_reason

| Enumerador         | Descrição                                     |
|--------------------|-----------------------------------------------|
| **client_request** | Caso tenha sido requerido pelo dono da conta. |
| **reconciliation** | Para reconciliação devido a erro operacional. |

### Objeto tfa_info

| Campo                       | Tipo   | Descrição                                                                           | Caracteres |
|-----------------------------|--------|-------------------------------------------------------------------------------------|------------|
| `approver_document_number`* | string | Número de documento da pessoa aprovadora da conta.                                  | 11         | 
| `contact_type`*             | string | Forma de contato com a pessoa aprovadora da conta, podendo ser **sms** ou **email** |            |

## Response

STATUS 202

Response Body: Reversão Requisitada

```json
{
  "reversal_status": "pending_2fa_approval",
  "end_to_end_id": "E32402502202405081755SxyT2DDcVwc",
  "pix_transfer_key": "cdcf0d25-08a1-46e3-902a-6d7ca75e6c48",
  "request_control_key": "7c5a1425-73eb-420e-b4fb-0ce3386c7d0c",
  "created_at": "2021-10-22T20:30:23.459Z"
}
```

### Response Body

| Campo                 | Tipo       | Descrição                                                       | Caracteres                                                |
|-----------------------|------------|-----------------------------------------------------------------|-----------------------------------------------------------|
| `reversal_status`     | enumerator | Enumerador de status da transação de devolução.                 | [Enumerador reversal_status](#enumerador-reversal_status) |
| `transfer_amount`     | number     | Valor da transferência de devolução.                            | 11                                                        |
| `pix_transfer_key`    | uuidv4     | Chave da transação pix executada na devolução.                  | 36                                                        |
| `request_control_key` | uuidv4     | Chave única de identificação da request utilizada pelo cliente. | 36                                                        |
| `created_at`          | string     | Data e hora da devolução.                                       | 10                                                        |

### Enumerador reversal_status

| Enumerador               | Descrição                                                |
|--------------------------|----------------------------------------------------------|
| **sent**                 | Transferência Pix realizada com sucesso.                 |
| **pending**              | Transferência Pix pendente.                              |
| **pending_2fa_approval** | Transferência Pix pendente de aprovação por dois fatores |
| **rejected**             | Transferência Pix rejeitada.                             |

STATUS 4xx

Response Body: Reversão Rejeitada

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {
    "pix_transfer_data": {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "end_to_end_id": "E32402502202405081755SxyT2DDcVwc",
      "pix_transfer_status": "rejected",
      "created_at": "2021-10-22T20:30:23.459Z"
    }
  }
}
```

:::info Informação
Além dos erros anteriormente listados para [transferência Pix](/documentation/baas/pix/realizar_transferencia), a
devolução de um Pix também pode retornar os erros listados abaixo.
:::

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                   | Descrição (eng)<br/>`description`                                      | Descrição (ptbr)<br/>`translation`                                                        |
|--------------------------|----------------------|--------------------------------------|------------------------------------------------------------------------|-------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                          | Schema Error                                                           | Erro de Schema                                                                            |
| 404                      | PXT000018            | Reversal Original Transfer not Found | Reversal original pix transfer not found.                              | Transferência original da devolução não foi encontrada.                                   |
| 400                      | PXT000017            | Reversal Too Great                   | Reversal transfers sum amount surpasses that of original pix transfer. | A soma das transferências de devolução ultrapassam o valor da transferência pix original. |
| 400                      | PXT000015            | Reversal date expired                | Reversal original transaction is older than 90 days                    | A data de criação da transação original é mais antiga que 90 dias                         |
| 400                      | PXT0000127           | Invalid Reversal Reason              | Reversal reason \{reversal_reason\} is not valid                       | Razão de reversão \{reversal_reason\} não é válida                                        |

---

# Solicitar reenvio de token para uma transação

URL: /documentation/baas/pix/2fa_v2/solicitacao_de_reenvio_de_token

Um novo token será gerado e enviado para o aprovador da transação pix. Caso o número limite de tentativas de validação
do token tenha sido excedida, não será permitido o reenvio.

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_transfer/ PIX_TRANSFER_KEY /resend_token
MÉTODO PATCH

### Path Params

| Campo                | Tipo   | Descrição                                                        | Caracteres |
|----------------------|--------|------------------------------------------------------------------|------------|
| `account_key` *      | uuidv4 | Chave única de identificação da conta.                           | 36         |
| `pix_transfer_key` * | uuidv4 | Chave única de identificação da transferência Pix no sistema QI. | 36         |

### Body Params

| Campo          | Tipo   | Descrição                                                                                 | Caracteres |
|----------------|--------|-------------------------------------------------------------------------------------------|------------|
| `contact_type` | enumerator | Forma de envio do token de autenticação | **[Enumerador contact_type](#enumerador-contact_type)** |

:::info Informação
Caso não seja enviado um `contact_type`, o token será enviado da forma solicitada originalmente.
:::

| Enumerador | Descrição                                         |
|------------|---------------------------------------------------|
| **sms**    | Envio por Mensagem de Texto para telefone celular |
| **email**  | Envio por correio eletrônico                      |

## Response

STATUS 202

Response Body: Transação Solicitada

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "end_to_end_id": "E32402502202405081755SxyT2DDcVwc",
  "pix_transfer_status": "pending_2fa_approval",
  "created_at": "2021-10-22T20:30:23.459Z"
}
```

STATUS 4xx

Response Body: Transferência Rejeitada

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {
    "pix_transfer_data": {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "pix_transfer_status": "rejected",
      "created_at": "2021-10-22T20:30:23.459Z"
    }
  }
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                           | Descrição (eng)<br/>`description`                                       | Descrição (ptbr)<br/>`translation`                                           |
|--------------------------|----------------------|----------------------------------------------|-------------------------------------------------------------------------|------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                  | Schema Error                                                            | Erro de Schema                                                               |
| 404                      | PXT000004            | Account not found                            | Account not found for: \{account_datum\}                                | Conta não encontrada para: \{account_datum\}                                 |
| 404                      | PXT000023            | Outgoing PIX Transfer Not Found              | Pix transfer key \{pix_transfer_key\} was not found                     | Transferência PIX de saída com chave \{pix_transfer_key\} não foi encontrada |
| 400                      | PXT000171            | Number of token validation attempts exceeded | The maximum number of failed token validation attempts has been reached | Número máximo de tentativas de validação de token atingida                   |
| 400                      | PXT000175            | Invalid Status                               | Pix transfer not in pending_2fa_approval status                         | Pix transfer não está pendente de aprovação por two factor authentication    |
| 400                      | PXT000176            | Error Sending Token                          | An error occurred while resending token and its being investigated      | Um erro ocorreu ao reenviar token e está sendo investigado                   |

---

# Solicitar Transação com Autenticação de Dois Fatores

URL: /documentation/baas/pix/2fa_v2/solicitacao_de_transacao_pix_2fa

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_transfer
MÉTODO POST

### Path Params

| Campo         | Tipo   | Descrição                              | Caracteres |
|---------------|--------|----------------------------------------|------------|
| `account_key` | uuidv4 | Chave única de identificação da conta. | 36         |

**Chave**
## Autenticação via Email e SMS
Request Body: Transferência via Chave Pix com TFA por SMS ou Email

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_type": "key",
  "target_pix_key": "target_pix_key@email.com",
  "transaction_amount": 500.65,
  "end_to_end_id": "E73856642202309201429bZKfklNlbwu",
  "pix_message": "Ola Mundo",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  }
}
```

## Autenticação via Dispositivo

Além das formas já existentes de autenticação via **sms** e **email**, é possível autenticar a transação utilizando um dispositivo [previamente cadastrado](/documentation/baas/dispositivo/create/solicitacao_cadastro_dispositivo). Nesse caso, o `session_id` deve ser obtido na **Device Scan** e enviado no `tfa_info`.
Request Body: Transferência via Chave Pix com TFA por Dispositivo

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_type": "key",
  "target_pix_key": "target_pix_key@email.com",
  "transaction_amount": 500.65,
  "end_to_end_id": "E73856642202309201429bZKfklNlbwu",
  "pix_message": "Ola Mundo",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "session_id": "b2f18d3a-67c2-4a7f-98e5-1d3f5c6b8a72",
    "contact_type": "device"
  }
}
```

### Body Params

| Campo                   | Tipo       | Descrição                                                                                                                                                                                                                                        | Caracteres                              |
|-------------------------|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------|
| `request_control_key` * | uuidv4     | Chave única de identificação da request utilizada pelo cliente no formato uuid v4.                                                                                                                                                               | 36                                      | 
| `pix_transfer_type` *   | enumerator | Tipo do pix a ser realizado. Para o caso de transferência por chave deve ser **key**.                                                                                                                                                            | **key**                                 |
| `target_pix_key` *      | string     | Chave pix da conta a ser enviada a transação.                                                                                                                                                                                                    | 100                                     |
| `transaction_amount` *  | number     | Valor da transferência.                                                                                                                                                                                                                          | 10                                      |
| `end_to_end_id` *       | string     | Chave de idempotência de uma transação Pix dentro do SPI (Sistema de Pagamento Instantâneo). Esta chave é retornada na consulta de chave Pix. Só deve ser enviado se o `pix_transfer_type` for **key**, **static_qr_code** ou **static_qr_code** | 32                                      |
| `pix_message`           | string     | Mensagem a ser enviada junto à transferência Pix.                                                                                                                                                                                                | 140                                     |
| `tfa_info`*             | Object     | Objeto contendo o documento da pessoa aprovadora da conta e a forma de contato.                                                                                                                                                                  | **[Objeto tfa_info](#objeto-tfa_info)** |

**Manual**
## Autenticação via Email e SMS
Request Body: Transferência Manual com TFA por SMS ou Email

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_type": "manual",
  "target_account": {
    "account_branch": "0001",
    "account_digit": "3",
    "account_number": "12345678",
    "owner_document_number": "32402502000135",
    "owner_name": "Qi Tech",
    "account_type": "checking_account",
    "ispb": "32402502"
  },
  "transaction_amount": 500.65,
  "pix_message": "Ola Mundo",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  }
}
```

## Autenticação via Dispositivo

Além das formas já existentes de autenticação via **sms** e **email**, é possível autenticar a transação utilizando um dispositivo [previamente cadastrado](/documentation/baas/dispositivo/create/solicitacao_cadastro_dispositivo). Nesse caso, o `session_id` deve ser obtido na **Device Scan** e enviado no `tfa_info`.

Request Body: Transferência Manual com TFA por Dispositivo

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_type": "manual",
  "target_account": {
    "account_branch": "0001",
    "account_digit": "3",
    "account_number": "12345678",
    "owner_document_number": "32402502000135",
    "owner_name": "Qi Tech",
    "account_type": "checking_account",
    "ispb": "32402502"
  },
  "transaction_amount": 500.65,
  "pix_message": "Ola Mundo",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "session_id": "b2f18d3a-67c2-4a7f-98e5-1d3f5c6b8a72",
    "contact_type": "device"
  }
}
```

### Body Params

| Campo                   | Tipo       | Descrição                                                                                         | Caracteres                                          |
|-------------------------|------------|---------------------------------------------------------------------------------------------------|-----------------------------------------------------|
| `request_control_key` * | uuidv4     | Chave única de identificação da request utilizada pelo cliente no formato uuid v4.                | 36                                                  | 
| `pix_transfer_type` *   | enumerator | Tipo de transferência Pix.                                                                        | **manual**                                          |
| `target_account` *      | Object     | Conta destino - Só deve ser enviada em transferências com `pix_transfer_type` do tipo **manual**. | **[Objeto target_account](#objeto-target_account)** | 10 |
| `transaction_amount` *  | number     | Valor da transferência.                                                                           | 10                                                  |
| `pix_message`           | string     | Mensagem a ser enviada junto à transferência Pix.                                                 | 140                                                 |
| `tfa_info`*             | Object     | Objeto contendo o documento da pessoa aprovadora da conta e a forma de contato.                   | **[Objeto tfa_info](#objeto-tfa_info)**             |

### Objeto target_account

| Campo                     | Tipo       | Descrição                                           | Caracteres                                              |
|---------------------------|------------|-----------------------------------------------------|---------------------------------------------------------|
| `account_branch` *        | string     | Agência da conta.                                   | 4                                                       |
| `account_digit` *         | string     | Dígito da conta.                                    | 1                                                       |
| `account_number` *        | string     | Número da conta.                                    | 20                                                      |
| `owner_document_number` * | string     | CPF ou CNPJ (apenas números) do titular da conta.   | 14                                                      |
| `owner_name` *            | string     | Nome do titular da conta.                           | 150                                                     |
| `account_type`*           | enumerator | Tipo da conta.                                      | **[Enumerador account_type](#enumerador-account_type)** |
| `ispb` *                  | string     | Base no CNPJ da instituição financeira (8 dígitos). | 8                                                       |

### Enumerador account_type

| Enumerador           | Descrição           |
|----------------------|---------------------|
| **checking_account** | Conta Corrente      |
| **salary_account**   | Conta Salário       |
| **saving_account**   | Conta Poupança      |
| **payment_account**  | Conta de Pagamentos |

**Qr Code**
## Autenticação via Email e SMS
Request Body: Transferência via QR Code com TFA por SMS ou Email

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_type": "static_qr_code",
  "transaction_amount": 500.65,
  "end_to_end_id": "E73856642202309201429bZKfklNlbwu",
  "receiver_conciliation_id": "REC00000000000000000000009459463343",
  "target_pix_key": "target_pix_key@email.com",
  "pix_message": "Ola Mundo",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  }
}
```

## Autenticação via Dispositivo

Além das formas já existentes de autenticação via **sms** e **email**, é possível autenticar a transação utilizando um dispositivo [previamente cadastrado](/documentation/baas/dispositivo/create/solicitacao_cadastro_dispositivo). Nesse caso, o `session_id` deve ser obtido na **Device Scan** e enviado no `tfa_info`.

Request Body: Transferência via QR Code com TFA por Dispositivo

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_type": "static_qr_code",
  "transaction_amount": 500.65,
  "end_to_end_id": "E73856642202309201429bZKfklNlbwu",
  "receiver_conciliation_id": "REC00000000000000000000009459463343",
  "target_pix_key": "target_pix_key@email.com",
  "pix_message": "Ola Mundo",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "session_id": "b2f18d3a-67c2-4a7f-98e5-1d3f5c6b8a72",
    "contact_type": "device"
  }
}
```

### Body Params

| Campo                      | Tipo       | Descrição                                                                                                                                                                                                                                         | Caracteres                                |
|----------------------------|------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------|
| `request_control_key`*     | uuidv4     | Chave única de identificação da request utilizada pelo cliente no formato uuid v4.                                                                                                                                                                | 36                                        | 
| `pix_transfer_type`*       | enumerator | Tipo de transferência Pix.                                                                                                                                                                                                                        | **static_qr_code** ou **dynamic_qr_code** |
| `target_pix_key`*          | string     | Chave pix da conta a ser enviada a transação.                                                                                                                                                                                                     | 100                                       |
| `receiver_conciliation_id` | string     | Identicação de conciliação do recebedor.                                                                                                                                                                                                          | 35                                        |
| `transaction_amount`*      | number     | Valor da transferência.                                                                                                                                                                                                                           | 10                                        |
| `end_to_end_id`*           | string     | Chave de idempotência de uma transação Pix dentro do SPI (Sistema de Pagamento Instantâneo). Esta chave é retornada na consulta de chave Pix. Só deve ser enviado se o `pix_transfer_type` for **key**, **static_qr_code** ou **static_qr_code**. | 32                                        |
| `pix_message`              | string     | Mensagem a ser enviada junto à transferência Pix.                                                                                                                                                                                                 | 140                                       |
| `tfa_info`*                | Object     | Objeto contendo o documento da pessoa aprovadora da conta e a forma de contato.                                                                                                                                                                   | **[Objeto tfa_info](#objeto-tfa_info)**   |

:::info Aviso
O `end_to_end_id` é retornado ao [decodificar o QR Code Pix](/documentation/pix/decodificar_qr_code), utilizando a URI
do Pix Copia e Cola.
:::

### Objeto tfa_info

| Campo                       | Tipo   | Descrição                                                                           | Caracteres |
|-----------------------------|--------|-------------------------------------------------------------------------------------|------------|
| `approver_document_number`* | string | Número de documento da pessoa aprovadora da conta.                                  | 11         | 
| `session_id`| string | Chave única de identificação da sessão do dispositivo no formato UUID v4 (obrigatório para TFA via dispositivo). |   36         |
| `contact_type`*             | string | Forma de contato com a pessoa aprovadora da conta, podendo ser **sms**, **email** ou **device** |            |

:::danger Aviso
O `end_to_end_id` da consulta deve ter sido feito em nome da conta que solicitará a movimentação!
:::

:::danger Aviso
Um `end_to_end_id` só pode ser utilizado para uma única transferência, não importando, se a transferência tenha sido bem
sucedida ou não.
:::

## Response

STATUS 202

Response Body: Transação Solicitada

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "end_to_end_id": "E32402502202405081755SxyT2DDcVwc",
  "pix_transfer_status": "pending_2fa_approval",
  "created_at": "2021-10-22T20:30:23.459Z"
}
```

STATUS 4xx

Response Body: Transferência Rejeitada

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {
    "pix_transfer_data": {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "end_to_end_id": "E32402502202405081755SxyT2DDcVwc",
      "pix_transfer_status": "rejected",
      "created_at": "2021-10-22T20:30:23.459Z"
    }
  }
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (ptbr)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Erro de Schema                                                                                                         |
| 400                      | PXT000168            | No approver permission                             | Given document number does not belong to an approver for this account                                                   | Número de documento enviado não pertence a um aprovador da conta                                                       |
| 400                      | PXT000169            | tfa_info is required                               | Client must send object tfa_info                                                                                        | Cliente deve enviar objeto tfa_info                                                                                    |
| 400                      | PXT000170            | Error occurred while sending token                 | An unexpected error occurred while sending token                                                                        | Um erro inexperado ocorreu ao tentar enviar token                                                                      |
| 406                      | PXT000103            | request_control_key must be a valid uuid v4 string | request_control_key was not accepted for not being a valid uuid v4 string                                               | request_control_key não foi aceito por não ser uma palavra uuid v4 válida                                              |
| 400                      | PXT000048            | Bad Request                                        | Emoji not allowed in pix message.                                                                                       | Emoji não é permitido na mensagem pix.                                                                                 |
| 400                      | PXT000104            | Invalid Transaction Amount                         | Transaction amount of \{transaction_amount\} is not valid. It must be a positive value with at maximum 2 decimal places | O valor de transação \{transaction_amount\} não é válido. Deve ser um valor positivo com no máximo duas casas decimais |
| 404                      | PXT000004            | Account not found                                  | Account not found for: \{account_datum\}                                                                                | Conta não encontrada para: \{account_datum\}                                                                           |
| 400                      | PXT000003            | Account is Closed                                  | Account \{account_key\} is closed.                                                                                      | Conta \{account_key\} está fechada.                                                                                    |
| 422                      | PXT000092            | Invalid Account Type                               | Pix is not yet implemented for non-checking or non-escrow account types                                                 | Transações Pix não estão implementadas para conta que não sejam escrow ou livres                                       |
| 403                      | PIT000001            | User is not allowed to do this transaction         |                                                                                                                         | Usuário não tem autorização para fazer essa transação                                                                  |
| 400                      | PXT000010            | Account is Blocked                                 | Account \{account_key\} is blocked.                                                                                     | Conta \{account_key\} está bloqueada.                                                                                  |
| 400                      | PXT000003            | Account is Closed                                  | Account \{account_key\} is closed.                                                                                      | Conta \{account_key\} está fechada.                                                                                    |
| 400                      | PIT000003            | Bad Request                                        | Insufficient account balance for transfer and fee amount.                                                               | Saldo de conta insuficiente para a transferência e a taxa.                                                             |
| 400                      | PXT000118            | Requester is not Pix Participant                   | The requester sent an alias key but is not a indirect pix participant                                                   | O requisitante enviou uma alias key no entanto não é um participante do pix indireto                                   |
| 404                      | PXT000120            | Alias sent not found                               | Alias key attached to this account not found                                                                            | Alias key vinculada à conta não encontrada                                                                             |
| 406                      | PXT000105            | Invalid end_to_end_id                              | The end_to_end_id sent \{end_to_end_id\} is not valid.                                                                  | O end_to_end_id enviado \{end_to_end_id\} não é válido.                                                                |
| 400                      | PXT000108            | Bad Request                                        | Billing account closed or blocked                                                                                       | Conta de cobrança encerrada ou bloqueada                                                                               |
| 400                      | PXT000079            | Bad Request                                        | Insufficient billing account balance for fee.                                                                           | Saldo de conta de cobrança insuficiente para a taxa.                                                                   |
| 400                      | PIT000004            | Bad Request                                        | Transaction amount is over limit.                                                                                       | O total da transferência é superior ao limite.                                                                         |
| 404                      | PIX000056            | Not Found                                          | Pix key inquiry not found                                                                                               | Consulta de chave pix não encontrada                                                                                   |
| 404                      | PXT000041            | Not Found                                          | Qr Code not found                                                                                                       | Qr Code não encontrado                                                                                                 |
| 400                      | PXT000053            | Bad Request                                        | QrCode already paid                                                                                                     | Qr Code já Pago                                                                                                        |
| 400                      | PXT000118            | Requester is not Pix Participant                   | The requester sent an alias key but is not a indirect pix participant                                                   | O requisitante enviou uma alias key no entanto não é um participante do pix indireto                                   |
| 404                      | PXT000120            | Alias sent not found                               | Alias key attached to this account not found                                                                            | Alias key vinculada à conta não encontrada                                                                             |
| 400                      | PXT000115            | Bad Request                                        | Insufficient account balance for transfer and fee amount.                                                               | Saldo de conta insuficiente para a transferência e a taxa                                                              |
| 400                      | PXT000128            | Bad Request                                        | Pix key \{pix_key\} sent does match inquiry pix key. Verify if end_to_end_id sent is correct                            | Chave Pix \{pix_key\} enviada não condiz com consulta. Verifique se end_to_end_id enviado está correto                 |
| 400                      | PXT000109            | Bad Request                                        | request_control_key \{request_control_key\} already in use                                                              | request_control_key \{request_control_key\} já utilizada                                                               |
| 400                      | PXT000061            | Bad Request                                        | End to end id invalid. A pix transfer with the end to end id \{end_to_end\} has already been registered!                | End to end id inválido. Uma transação pix com o identificador único \{end_to_end\} já foi registrada!                  |
| 400                      | PXT000129            | SPI Error message                                  | Message rejected by SPI-ICOM                                                                                            | Mensagem rejeitada pela SPI-ICOM                                                                                       |
| 408                      | PXT000130            | SPI Timeout Control                                | SPI Timeout Control                                                                                                     | Controle de timeout no SPI                                                                                             |
| 400                      | PXT000131            | Receiver Internal Error                            | Cancelled transaction due to receiver's internal error                                                                  | Transação interrompida devido a erro no PSP do Recebedor                                                               |
| 400                      | PXT000132            | Invalid Target Account Number                      | Target account number is invalid                                                                                        | Número da conta de destino é inexistente ou inválido                                                                   |
| 400                      | PXT000133            | Blocked Target Account                             | Target account is blocked.                                                                                              | A conta de destino encontra-se bloqueada.                                                                              |
| 400                      | PXT000134            | Closed Target Account                              | Target account is closed.                                                                                               | A conta de destino encontra-se encerrada.                                                                              |
| 400                      | PXT000135            | Unsupported Transaction                            | Unsupported transaction for given target account.                                                                       | A conta de destino não suporta este tipo de transação.                                                                 |
| 400                      | PXT000136            | Invalid Participant                                | SPI participant is not PSP settler agent of payer nor receiver.                                                         | Participante direto do SPI não é liquidante do PSP do Pagador / Recebedor.                                             |
| 400                      | PXT000137            | Zero Value Payment Order                           | Zero value payment order.                                                                                               | Ordem de pagamento com valor zero.                                                                                     |
| 400                      | PXT000138            | Insufficient Funds                                 | Insufficient funds in PI account from payer.                                                                            | Saldo insuficiente na conta PI do pagador.                                                                             |
| 400                      | PXT000139            | Return Value Too Great                             | Return value greater than corresponding payment order.                                                                  | Valor de devolução acima do valor de pagamento correspondente.                                                         |
| 400                      | PXT000140            | Invalid Transactions Number                        | Invalid transactions number.                                                                                            | Quantidade de transações inválida.                                                                                     |
| 400                      | PXT000141            | Unrelated Beneficiary Document Number              | Beneficiary document number is not that of target account owner.                                                        | CPF/CNPJ do usuário recebedor não é compatível com o titular da conta de destino.                                      |
| 400                      | PXT000142            | Invalid Beneficiary Document Number                | Invalid beneficiary document number                                                                                     | CPF/CNPJ da conta de destino está incorreto.                                                                           |
| 400                      | PXT000143            | Incorrect Message Element                          | Incorrect message element.                                                                                              | Elemento da mensagem incorreto.                                                                                        |
| 403                      | PXT000144            | Rejected Payment Order                             | Beneficiary's PSP has rejected payment order.                                                                           | Ordem de pagamento foi rejeitada pelo banco recebedor.                                                                 |
| 403                      | PXT000145            | Unauthorized Payer                                 | Signing participant is unauthorized to make a payment order for paying account.                                         | Participante que assinou a mensagem não é autorizado a realizar a operação na conta PI debitada.                       |
| 400                      | PXT000146            | Invalid Datetime                                   | Invalid datetime for message delivery.                                                                                  | Data e Hora do envio da mensagem inválida.                                                                             |
| 400                      | PXT000147            | Generic Error                                      | Error while processing payment (generic error).                                                                         | Erro no processamento do pagamento (erro genérico).                                                                    |
| 400                      | PXT000148            | Bad Format Operation Identifier                    | Badly formatted operation's identifier.                                                                                 | Identificador da operação mal formatado.                                                                               |
| 400                      | PXT000149            | Invalid Payer ISPB                                 | Invalid or non-existent payer's PSP ISPB number.                                                                        | Número ISPB do PSP do Pagador é inválido ou inexistente.                                                               |
| 400                      | PXT000150            | Invalid Beneficiary ISPB                           | Invalid or non-existent beneficiary's PSP ISPB number.                                                                  | Número ISPB do banco recebedor é inválido ou inexistente.                                                              |
| 400                      | PXT000151            | Incorrect Type                                     | Incorrect type for target account.                                                                                      | Tipo incorreto para a conta transacional especificada.                                                                 |
| 400                      | PXT000152            | Repeated End-to-End ID Error                       | The end_to_end_id was already used                                                                                      | O end_to_end_id já foi utilizado                                                                                       |
| 400                      | PXT000153            | Invalid Target Account Type                        | The target account type cannot receive PIX transactions                                                                 | O tipo de conta destino não pode receber transações PIX                                                                |
| 400                      | PXT000154            | Invalid ISPB                                       | Invalid or non-existent ISPB number.                                                                                    | Número ISPB é inválido ou inexistente.                                                                                 |
| 400                      | PXT000155            | Amount too Great                                   | Amount too great for credited account.                                                                                  | Valor de pagamento/devolução acima do permitido para a conta de destino creditada.                                     |
| 400                      | PXT000156            | QR Code Rejected                                   | QR Code rejected by beneficiary's PSP.                                                                                  | QR Code rejeitado pelo PSP do usuário recebedor.                                                                       |
| 503                      | PXT000157            | Bacen Service Unavailable Error                    | Could not send the message to ICOM after 3 retries                                                                      | Não pode enviar a mensagem para a ICOM depois de 3 tentativas                                                          |
| 400                      | PXT000158            | Invalid Amount                                     | Paid amount diverges from expected amount of \{expected_amount\}                                                        | O valor do pagamento diverge do valor esperado de \{expected_amount\}                                                  |
| 400                      | PXT000159            | QR code inactive                                   | QR code is not active at the time of payment                                                                            | QR code não está ativo no instante do pagamento                                                                        |
| 400                      | PXT000188            | Session ID needed | A session_id must be provided token                      | Uma session_id deve ser fornecida                |

---

# Aprovar Agendamento de Transação Pix com Autenticação de Dois Fatores

URL: /documentation/baas/pix/agendamento/aprovacao_de_agendamento_2fa

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_schedule/ SCHEDULE_KEY /validate_token
MÉTODO PUT

### Path Params

| Campo          | Tipo   | Descrição                                    | Caracteres |
|----------------|--------|----------------------------------------------|------------|
| `account_key`  | uuidv4 | Chave única de identificação da conta.       | 36         |
| `schedule_key` | uuidv4 | Chave única de identificação do agendamento. | 36         |

## Autenticação via Email e SMS

Request Body

```json
{
  "token": "329adf"
}
```

## Autenticação via Dispositivo

Para aprovar e finalizar a autenticação via dispositivo, a requisição deve ser enviada com um payload vazio. A validação ocorre internamente, sem necessidade de informações adicionais no corpo da requisição. É importante destacar que este endpoint só deve ser utilizado após a [solicitação de agendamento](./solicitacao_de_agendamento_2fa.md) ter sido iniciada.

Request Body

```json
{

}
```

### Body Params

| Campo   | Tipo   | Descrição                                                                                                                              | Caracteres |
|---------|--------|----------------------------------------------------------------------------------------------------------------------------------------|------------|
| `token` | string | Código de autenticação enviado ao aprovador de movimentações da conta **obrigatório para TFA via SMS ou e-mail**                       | 6          |

## Response

STATUS 201

Response Body: Agendamento Aprovado

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "schedule_key": "f64b3fa7-d09d-4927-ad4f-b966df9fb153",
  "schedule_status": "scheduled",
  "schedule_date": "2024-12-31",
  "created_at": "2023-03-13T19:00:28.440Z"
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                           | Descrição (eng)<br/>`description`                                       | Descrição (ptbr)<br/>`translation`                                         |
|--------------------------|----------------------|----------------------------------------------|-------------------------------------------------------------------------|----------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                  | schema error description                                                | Schema Inválido                                                            |
| 404                      | PSC000001            | Account not Found                            | Account was not found                                                   | Conta não encontrada                                                       |
| 403                      | PSC000012            | User is not allowed to do this transaction   | User is not allowed to do this transaction                              | Usuário não tem autorização para fazer essa transação                      |
| 404                      | PSC000025            | PixSchedule not Found                        | PixSchedule was not found                                               | PixSchedule não encontrada                                                 |
| 400                      | PSC000048            | Error occurred while sending token           | An unexpected error occurred while sending token                        | Um erro inesperado ocorreu ao tentar enviar token                          |
| 400                      | PSC000049            | Number of token validation attempts exceeded | The maximum number of failed token validation attempts has been reached | Número máximo de tentativas de validação de token atingida                 |
| 400                      | PSC000052            | Incorrect Token                              | Token sent does not match expected                                      | Token enviado não condiz com o esperado                                    |
| 400                      | PSC000053            | Error Sending Token                          | An error occurred while resending token and its being investigated      | Um erro ocorreu ao reenviar token e está sendo investigado                 |
| 400                      | PSC000054            | Invalid Schedule Date                        | Schedule must be approved before the scheduled date                     | Agendamento deve ser aprovado em data anterior à programada para transação |
| 400                      | PSC000055            | Bad Request                                  | Schedule cannot be approved in current status                           | Agendamento pix não pode ser aprovado no status atual                      |
| 400                      | PSC000058            | Token Required                               | A token is required for SMS or email validation.                                                         | Um token é necessário para validação via SMS ou email.                                                     |

---

# Aprovar Agendamento em Lote de Transação Pix com Autenticação de Dois Fatores

URL: /documentation/baas/pix/agendamento/batch/aprovacao_de_agendamento_em_lote_2fa

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_schedule_batch/ SCHEDULE_BATCH_KEY /validate_token
MÉTODO PUT

### Path Params

| Campo                | Tipo   | Descrição                                            | Caracteres |
|----------------------|--------|------------------------------------------------------|------------|
| `account_key`        | uuidv4 | Chave única de identificação da conta.               | 36         |
| `schedule_batch_key` | uuidv4 | Chave única de identificação do agendamento em lote. | 36         |

## Autenticação via Email e SMS

Request Body

```json
{
  "token": "329adf"
}
```

## Autenticação via Dispositivo

Para aprovar e finalizar a autenticação via dispositivo, a requisição deve ser enviada com um payload vazio. A validação ocorre internamente, sem necessidade de informações adicionais no corpo da requisição. É importante destacar que este endpoint só deve ser utilizado após a [solicitação de agendamento em lote](./solicitacao_de_agendamento_em_lote_2fa.md) ter sido iniciada.

Request Body

```json
{

}
```

### Body Params

| Campo   | Tipo   | Descrição                                                                                                                              | Caracteres |
|---------|--------|----------------------------------------------------------------------------------------------------------------------------------------|------------|
| `token` | string | Código de autenticação enviado ao aprovador de movimentações da conta **obrigatório para TFA via SMS ou e-mail**                       | 6          |

## Response

STATUS 201

Response Body: Agendamento Aprovado

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "schedule_batch_key": "f64b3fa7-d09d-4927-ad4f-b966df9fb153",
  "schedule_batch_status": "approved",
  "created_at": "2023-03-13T19:00:28.440Z"
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                           | Descrição (eng)<br/>`description`                                       | Descrição (ptbr)<br/>`translation`                                                 |
|--------------------------|----------------------|----------------------------------------------|-------------------------------------------------------------------------|------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                  | schema error description                                                | Schema Inválido                                                                    |
| 404                      | PSC000001            | Account not Found                            | Account was not found                                                   | Conta não encontrada                                                               |
| 403                      | PSC000012            | User is not allowed to do this transaction   | User is not allowed to do this transaction                              | Usuário não tem autorização para fazer essa transação                              |
| 404                      | PSC000042            | Schedule Batch not Found                     | ScheduleBatch was not found                                             | ScheduleBatch não encontrada                                                       |
| 400                      | PSC000048            | Error occurred while sending token           | An unexpected error occurred while sending token                        | Um erro inesperado ocorreu ao tentar enviar token                                  |
| 400                      | PSC000049            | Number of token validation attempts exceeded | The maximum number of failed token validation attempts has been reached | Número máximo de tentativas de validação de token atingida                         |
| 400                      | PSC000052            | Incorrect Token                              | Token sent does not match expected                                      | Token enviado não condiz com o esperado                                            |
| 400                      | PSC000053            | Error Sending Token                          | An error occurred while resending token and its being investigated      | Um erro ocorreu ao reenviar token e está sendo investigado                         |
| 400                      | PSC000054            | Invalid Schedule Date                        | Schedule must be approved before the scheduled date                     | Agendamento deve ser aprovado em data anterior à programada para transação         |
| 400                      | PSC000055            | Bad Request                                  | Schedule cannot be approved in current status                           | Agendamento pix não pode ser aprovado no status atual                              |
| 400                      | PSC000056            | Bad Request                                  | Schedule Batch cannot be approved in current status                     | Lote de agendamento pix não pode ser aprovado no status atual                      |
| 400                      | PSC000057            | Invalid Schedule Date                        | Batch Schedule must be approved before the earliest scheduled date      | Lote de agendamento deve ser aprovado em data anterior à programada para transação |
| 400                      | PSC000058            | Token Required                               | A token is required for SMS or email validation.                                                         | Um token é necessário para validação via SMS ou email.                                                     |

---

# Cancelar Agendamento de Transação Pix em Lote

URL: /documentation/baas/pix/agendamento/batch/cancelamento_de_agendamento_em_lote

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_schedule_batch/ SCHEDULE_BATCH_KEY /cancel
MÉTODO PATCH

### Path Params

| Campo                | Tipo   | Descrição                                           | Caracteres |
|----------------------|--------|-----------------------------------------------------|------------|
| `account_key`        | uuidv4 | Chave única de identificação da conta.              | 36         |
| `schedule_batch_key` | uuidv4 | Chave única de identificação do lote de agendamento | 36         |

### Response

STATUS 200

Response Body: Agendamento Cancelado

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "schedule_batch_key": "f64b3fa7-d09d-4927-ad4f-b966df9fb153",
  "schedule_batch_status": "cancelled",
  "created_at": "2023-03-13T19:00:28.440Z"
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                  | Descrição (eng)<br/>`description`                                                                                                    | Descrição (ptbr)<br/>`translation`                                                                                                          |
|--------------------------|----------------------|-----------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                         | schema error description                                                                                                             | Schema Inválido                                                                                                                             |
| 404                      | PSC000001            | Account not Found                                   | Account was not found                                                                                                                | Conta não encontrada                                                                                                                        |
| 403                      | PSC000012            | User is not allowed to do this transaction          | User is not allowed to do this transaction                                                                                           | Usuário não tem autorização para fazer essa transação                                                                                       |
| 404                      | PSC000025            | PixSchedule not Found                               | PixSchedule was not found                                                                                                            | PixSchedule não encontrada                                                                                                                  |
| 400                      | PSC000027            | Bad Request                                         | Action cannot be taken place as there is currently a pending transfer in progress                                                    | A ação não pôde ser completada como há uma transferência pendente                                                                           |
| 404                      | PSC000042            | Schedule Batch not Found                            | ScheduleBatch was not found                                                                                                          | ScheduleBatch não encontrada                                                                                                                |
| 400                      | PSC000043            | Schedule Batch could not be canceled                | ScheduleBatch could not be canceled due to current date being equal or after earliest schedule date. Cancel pix_schedules one by one | ScheduleBatch não pode ser cancelada devido a data atual ser superior ou igual à menor schedule_date. Cancele pix_schedules individualmente |
| 400                      | PSC000044            | Bad Request                                         | Schedule Batch cannot be cancelled in current status                                                                                 | Agendamento pix não pode ser cancelado no status atual                                                                                      |

---

# Listar Agendamentos de um Lote de Agendamento

URL: /documentation/baas/pix/agendamento/batch/consulta_de_agendamentos_de_um_lote

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_schedule_batch/ SCHEDULE_BATCH_KEY /pix_schedules
MÉTODO GET

### Path Params

| Campo                | Tipo   | Descrição                                             | Caracteres |
|----------------------|--------|-------------------------------------------------------|------------|
| `account_key`        | uuidv4 | Chave única de identificação da conta.                | 36         |
| `schedule_batch_key` | uuidv4 | Chave única de identificação do lote de agendamentos. | 36         |

### Query Params

| Campo                 | Tipo    | Descrição                                                               | Caracteres         |
|-----------------------|---------|-------------------------------------------------------------------------|--------------------|
| `request_control_key` | uuidv4  | Chave única de identificação da request utilizada pelo cliente.         | 36                 |
| `schedule_status`     | string  | Status do agendamento. Pode ser enviado em forma de lista.              |  **[Enumerador schedule_status](#enumerador-schedule_status)** |
| `page`                | integer | Número da página requisitada. 1 por padrão                              |                    |
| `page_size`           | integer | Tamanho da página requisitada na consulta. 30 por padrão e valor máximo | Valor máximo de 30 |

### Enumerador schedule_status

| Enumerador                 | Descrição                                                                                      |
|----------------------------|------------------------------------------------------------------------------------------------|
| **scheduled**              | Transação agendada                                                                             |
| **sent**                   | Agendamento concluído e enviado com sucesso. Estado final                                      |
| **rejected**               | Agendamento rejeitado durante criação ou execução. Estado final                                |
| **cancelled**              | Agendamento cancelado por solicitação de cliente. Estado final                                 |
| **pending_2fa_approval**   | Pendente de aprovação por autenticação de dois fatores                                         |
| **pending_creation**       | Agendamento em processo de criação (Estado transitório para agendamento em lote)               |
| **waiting_batch_approval** | Agendamento criado e vinculado a um lote aguardando aprovação por autenticação de dois fatores |

### Response

STATUS 200

Response Body

```json
{
  "data": [
    {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "schedule_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "schedule_status": "scheduled",
      "schedule_date": "2024-12-31",
      "created_at": "2023-03-13T19:00:28.440Z"
    },
    {
      "request_control_key": "bf6b0a4b-c7a5-446b-9dad-1ae10b25342a",
      "schedule_key": "2479a5cd-079e-4d72-bf4e-16a695bda45e",
      "schedule_status": "cancelled",
      "schedule_date": "2024-12-31",
      "created_at": "2023-03-13T19:00:28.440Z"
    },
    {
      "request_control_key": "9d36c03e-2db7-4c90-87ed-6c9ddb3c03c7",
      "schedule_key": "5d6b14b9-053f-408c-bcd7-61ecf9224f2c",
      "schedule_status": "rejected",
      "schedule_date": "2024-12-31",
      "created_at": "2023-03-13T19:00:28.440Z"
    }
  ],
  "pagination": {
    "current_page": 1,
    "next_page": null,
    "rows_per_page": 30
  }
}

```

---

# Listar Lotes de Agendamento de uma conta

URL: /documentation/baas/pix/agendamento/batch/consulta_de_agendamentos_em_lote_de_uma_conta

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_schedule_batches
MÉTODO GET

### Path Params

| Campo         | Tipo   | Descrição                              | Caracteres |
|---------------|--------|----------------------------------------|------------|
| `account_key` | uuidv4 | Chave única de identificação da conta. | 36         |

### Query Params

| Campo                   | Tipo    | Descrição                                                               | Caracteres         |
|-------------------------|---------|-------------------------------------------------------------------------|--------------------|
| `request_control_key`   | uuidv4  | Chave única de identificação da request utilizada pelo cliente.         | 36                 |
| `schedule_batch_status` | string  | Status do lote de agendamento. Pode ser enviado em forma de lista.      | 20                 |
| `page`                  | integer | Número da página requisitada. 1 por padrão                              |                    |
| `page_size`             | integer | Tamanho da página requisitada na consulta. 30 por padrão e valor máximo | Valor máximo de 30 |

### Response

STATUS 200

Response Body

```json
{
  "data": [
    {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "schedule_batch_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "schedule_batch_status": "approved",
      "created_at": "2021-10-22T20:30:23.459Z"
    },
    {
      "request_control_key": "bf6b0a4b-c7a5-446b-9dad-1ae10b25342a",
      "schedule_batch_key": "2479a5cd-079e-4d72-bf4e-16a695bda45e",
      "schedule_batch_status": "cancelled",
      "created_at": "2021-10-22T20:30:23.459Z"
    },
    {
      "request_control_key": "9d36c03e-2db7-4c90-87ed-6c9ddb3c03c7",
      "schedule_batch_key": "5d6b14b9-053f-408c-bcd7-61ecf9224f2c",
      "schedule_batch_status": "rejected",
      "created_at": "2021-10-22T20:30:23.459Z"
    }
  ],
  "pagination": {
    "current_page": 1,
    "next_page": null,
    "rows_per_page": 30
  }
}

```

# Consultar Lote de Agendamento de uma conta

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_schedule_batch/ SCHEDULE_BATCH_KEY
MÉTODO GET

### Path Params

| Campo                | Tipo   | Descrição                                             | Caracteres |
|----------------------|--------|-------------------------------------------------------|------------|
| `account_key`        | uuidv4 | Chave única de identificação da conta.                | 36         |
| `schedule_batch_key` | uuidv4 | Chave única de identificação do lote de agendamentos. | 36         |

### Response

STATUS 200

Response Body

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "schedule_batch_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "schedule_batch_status": "approved",
  "created_at": "2021-10-22T20:30:23.459Z"
}
```

---

# Solicitar Agendamento de Transação Pix em Lote

URL: /documentation/baas/pix/agendamento/batch/solicitacao_de_agendamento_em_lote

A QI Tech oferece a possibilidade de realizar várias transações agendadas pix com uma única chamada. Nesse sistema os
agendamentos são realizados de forma assíncrona. Caso na chamada inicial seja retornado um **http status 4xx**, nenhum
dos agendamentos será realizado. Após a solicitação, o parceiro integrador receberá um webhook para cada **pix_schedule
**
rejeitado no ato da criação.

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_schedule_batch
MÉTODO POST

```json
{
  "request_control_key": "6e4fc980-f8a1-4462-b6e2-d8a49f0ac055",
  "pix_schedules": [
    {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "pix_transfer_type": "key",
      "target_pix_key": "target_pix_key@email.com",
      "transaction_amount": 500.65,
      "end_to_end_id": "E73856642202309201429bZKfklNlbwu",
      "pix_message": "Ola Mundo",
      "schedule_date": "2024-12-01"
    },
    {
      "request_control_key": "c6804f35-101e-4702-8fbc-c2dbc4c2caea",
      "pix_transfer_type": "manual",
      "target_account": {
        "account_branch": "0001",
        "account_digit": "3",
        "account_number": "12345678",
        "owner_document_number": "32402502000135",
        "owner_name": "Qi Tech",
        "account_type": "checking_account",
        "ispb": "32402502"
      },
      "transaction_amount": 500.65,
      "pix_message": "Ola Mundo",
      "schedule_date": "2024-12-01"
    },
    {
      "request_control_key": "a6804f42-101e-4702-8fbc-c2dbc4c2caed",
      "pix_transfer_type": "static_qr_code",
      "transaction_amount": 500.65,
      "end_to_end_id": "E73856642202309201429bZKfklNlbwu",
      "receiver_conciliation_id": "REC00000000000000000000009459463343",
      "target_pix_key": "target_pix_key@email.com",
      "pix_message": "Ola Mundo"
    }
  ]
}
```

## Path Params

| Campo         | Tipo   | Descrição                              | Caracteres |
|---------------|--------|----------------------------------------|------------|
| `account_key` | uuidv4 | Chave única de identificação da conta. | 36         |

### Body Params

| Campo                   | Tipo   | Descrição                                                                          | Caracteres                                               |
|-------------------------|--------|------------------------------------------------------------------------------------|----------------------------------------------------------|
| `request_control_key` * | uuidv4 | Chave única de identificação da request utilizada pelo cliente no formato uuid v4. | 36                                                       | 
| `pix_schedules` *       | array  | Lista de objetos pix_schedule vinculados ao lote.                                  | lista de **[Objeto pix_schedule](#objeto-pix_schedule)** |

### Objeto pix_schedule

| Campo                      | Tipo       | Descrição                                                                                                                                                                                                                                         | Caracteres                                                        |
|----------------------------|------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|
| `request_control_key`*     | uuidv4     | Chave única de identificação da request utilizada pelo cliente no formato uuid v4.                                                                                                                                                                | 36                                                                | 
| `pix_transfer_type`*       | enumerator | Tipo de transferência Pix.                                                                                                                                                                                                                        | **[Enumerador pix_transfer_type](#enumerador-pix_transfer_type)** |
| `target_pix_key`           | string     | Chave pix da conta a ser enviada a transação.                                                                                                                                                                                                     | 100                                                               |
| `receiver_conciliation_id` | string     | Identicação de conciliação do recebedor.                                                                                                                                                                                                          | 35                                                                |
| `target_account` *         | Object     | Conta destino - Só deve ser enviada em transferências com `pix_transfer_type` do tipo **manual**.                                                                                                                                                 | **[Objeto target_account](#objeto-target_account)**               | 10 |
| `transaction_amount`*      | number     | Valor da transferência.                                                                                                                                                                                                                           | 10                                                                |
| `end_to_end_id`            | string     | Chave de idempotência de uma transação Pix dentro do SPI (Sistema de Pagamento Instantâneo). Esta chave é retornada na consulta de chave Pix. Só deve ser enviado se o `pix_transfer_type` for **key**, **static_qr_code** ou **static_qr_code**. | 32                                                                |
| `pix_message`              | string     | Mensagem a ser enviada junto à transferência Pix.                                                                                                                                                                                                 | 140                                                               |

### Objeto target_account

| Campo                     | Tipo       | Descrição                                           | Caracteres                                              |
|---------------------------|------------|-----------------------------------------------------|---------------------------------------------------------|
| `account_branch` *        | string     | Agência da conta.                                   | 6                                                       |
| `account_digit` *         | string     | Dígito da conta.                                    | 1                                                       |
| `account_number` *        | string     | Número da conta.                                    | 20                                                      |
| `owner_document_number` * | string     | CPF ou CNPJ (apenas números) do titular da conta.   | 14                                                      |
| `owner_name` *            | string     | Nome do titular da conta.                           | 150                                                     |
| `account_type`*           | enumerator | Tipo da conta.                                      | **[Enumerador account_type](#enumerador-account_type)** |
| `ispb` *                  | string     | Base no CNPJ da instituição financeira (8 dígitos). | 8                                                       |

### Enumerador account_type

| Enumerador           | Descrição           |
|----------------------|---------------------|
| **checking_account** | Conta Corrente      |
| **salary_account**   | Conta Salário       |
| **saving_account**   | Conta Poupança      |
| **payment_account**  | Conta de Pagamentos |

### Enumerador pix_transfer_type

| Enumerador          | Descrição                                                                                                                                                                                                                 |
|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **manual**          | Pix utilizando os dados da conta destino. Obrigatório enviar `target_account`                                                                                                                                             |
| **key**             | Pix utilizando uma chave pix. Obrigatório enviar `target_pix_key`. Recomendado enviar `end_to_end_id` da [consulta de chave](/documentation/pix_indireto/movimentacoes/consultar_chave_pix) pix caso tenha sido realizada |
| **static_qr_code**  | Pix utilizando um QR code estático. Obrigatório enviar o `end_to_end_id` retornado na [decodificação do QR code](/documentation/pix/decodificar_qr_code)                                                                  |
| **dynamic_qr_code** | Pix utilizando um QR code dinâmico. Obrigatório enviar o `end_to_end_id` retornado na [decodificação do QR code](/documentation/pix/decodificar_qr_code)                                                                  |

## Response

STATUS 201

Response Body: Agendamento em lote Aprovado

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "schedule_batch_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "schedule_batch_status": "approved",
  "created_at": "2021-10-22T20:30:23.459Z"
}
```

### Enumerador schedule_batch_status

| Enumerador               | Descrição                                                                  |
|--------------------------|----------------------------------------------------------------------------|
| **created**              | Agendamento em lote criado                                                 |
| **approved**             | Agendamento em lote aprovado                                               |
| **rejected**             | Agendamento em lote rejeitado                                              |
| **pending_2fa_approval** | Agendamento em lote pendente de aprovação por autenticação de dois fatores |

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                  | Descrição (eng)<br/>`description`                                                                                         | Descrição (ptbr)<br/>`translation`                                                                                                |
|--------------------------|----------------------|-----------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                         | schema error description                                                                                                  | Schema Inválido                                                                                                                   |
| 404                      | PSC000001            | Account not Found                                   | Account was not found                                                                                                     | Conta não encontrada                                                                                                              |
| 406                      | PSC000002            | Invalid Uuid                                        | key was not accepted for not being a valid uuid v4 string                                                                 | key não foi aceito por não ser uma palavra uuid v4 válida                                                                         |
| 400                      | PSC000003            | Bad Request                                         | pix_message can not be longer than 140 characters                                                                         | pix_message não pode ser maior que 140 caracteres                                                                                 |
| 400                      | PSC000004            | Bad Request                                         | Emoji not allowed in pix message                                                                                          | Emoji não é permitido na mensagem pix                                                                                             |
| 406                      | PSC000005            | Invalid Transaction Amount                          | Transaction amount of transaction_amount is not valid. It must be a positive value with at maximum 2 decimal places       | O valor de transação transaction_amount não é válido. Deve ser um valor positivo com no máximo duas casas decimais                |
| 406                      | PSC000006            | Invalid end_to_end_id                               | The end_to_end_id sent end_to_end_id is not valid                                                                         | O end_to_end_id enviado end_to_end_id não é válido                                                                                |
| 400                      | PSC000007            | Invalid date format                                 | Dates must be sent using format YYYY-MM-DD                                                                                | Datas devem ser enviadas no formato YYYY-MM-DD                                                                                    |
| 400                      | PSC000008            | Invalid Schedule Date                               | Schedule date must be after current date for UTC-3                                                                        | Data de agendamento deve ser após a data atual em UTC-3                                                                           |
| 400                      | PSC000009            | Account is Closed                                   | Account is closed                                                                                                         | Conta está fechada                                                                                                                |
| 400                      | PSC000010            | Account is Blocked                                  | Account is blocked                                                                                                        | Conta está bloqueada                                                                                                              |
| 422                      | PSC000011            | Invalid Account Type                                | Pix is not yet implemented for non-checking or non-escrow account types                                                   | Transações Pix não estão implementadas para conta que não sejam escrow ou livres                                                  |
| 403                      | PSC000012            | User is not allowed to do this transaction          | User is not allowed to do this transaction                                                                                | Usuário não tem autorização para fazer essa transação                                                                             |
| 400                      | PSC000013            | Bad Request                                         | For Manual Pix Transfer Type a target account must be provided                                                            | Para transação pix do tipo manual, uma conta destino deve ser fornecida                                                           |
| 404                      | PSC000014            | Inquiry Not Found                                   | Pix key inquiry was not found                                                                                             | Pesquisa de chave pix não encontrada                                                                                              |
| 400                      | PSC000015            | Bad Request                                         | Pix key sent does match inquiry pix key. Verify if end_to_end_id sent is correct                                          | Chave Pix enviada não condiz com consulta. Verifique se end_to_end_id enviado está correto                                        |
| 404                      | PSC000016            | Account not found                                   | Nonexistent account in destination financial institution                                                                  | Conta inexistente na instituição financeira de destino                                                                            |
| 400                      | PSC000017            | Target Account and Source Account must be different | Target Account must not be the same as Source Account                                                                     | A conta de destino não pode ser a mesma da conta de origem                                                                        |
| 409                      | PSC000018            | Bad Request                                         | request_control_key request_control_key already in use                                                                    | request_control_key request_control_key já utilizada                                                                              |
| 400                      | PSC000019            | Invalid Target                                      | Account does not have permission to transfer to the given target account                                                  | A conta não possui permissão para realizar transferências para a conta enviada                                                    |
| 404                      | PSC000020            | Decode Inquiry Not Found                            | QR Code decode inquiry not found                                                                                          | Pesquisa e decodificação de QR code não encontrada                                                                                |
| 400                      | PSC000021            | Bad Request                                         | Receiver Conciliation Id sent does match decode inquiry receiver_conciliation_id. Verify if end_to_end_id sent is correct | Identificador de transação enviado não condiz com consulta. Verifique se end_to_end_id enviado está correto                       |
| 400                      | PSC000022            | Bad Request                                         | Dynamic Instant QR codes cannot be scheduled for payment                                                                  | Pagamentos de vencimento instantâneo não podem ter pagamento agendado                                                             |
| 400                      | PSC000023            | Bad Request                                         | Schedule Date sent is after max payment date for target qr code                                                           | Data de agendamento enviada é após a data máxima de pagamento para o qr code enviado                                              |
| 400                      | PSC000024            | Bad Request                                         | Pix transfer type sent does match decode inquiry qr code type. Verify if end_to_end_id sent is correct                    | Tipo de transação pix enviado enviado não condiz com tipo de qr code da consulta. Verifique se end_to_end_id enviado está correto |
| 400                      | PSC000040            | Empty pix-schedule list received                    | A list of pix schedules must be provided                                                                                  | Uma lista de agendamentos pix deve ser fornecida                                                                                  |
| 409                      | PSC000041            | Bad Request                                         | One or more request_control_key already in use                                                                            | Uma ou mais request_control_key já está sendo utilizada                                                                           |
| 403                      | PSC000045            | Requester not allowed to access this endpoint       | Requester has no permission to perform pix transfers on this endpoint                                                     | Requester não possui permissão de realizar transações pix através deste endpoint                                                  |

---

# Solicitar Agendamento de Transação Pix em Lote

URL: /documentation/baas/pix/agendamento/batch/solicitacao_de_agendamento_em_lote_2fa

A QI Tech oferece a possibilidade de realizar várias transações agendadas pix com uma única chamada. Nesse sistema os
agendamentos são realizados de forma assíncrona. Caso na chamada inicial seja retornado um **http status 4xx**, nenhum
dos agendamentos será realizado. Após a solicitação, o parceiro integrador receberá um webhook para cada **pix_schedule
** rejeitado no ato da criação.

Neste tipo de agendamento, é necessário a confirmação da programação de pagamento via token enviado à pessoa com poderes
de aprovação de movimentação na conta credora.

A solicitação de agendamento Pix em lote por parceiros integradores configurados para a utilização de autenticação de
dois
fatores é realizada de forma similar ao descrito
em [solicitar agendamento de_transação_pix_em_lote](/documentation/baas/pix/agendamento/solicitacao_de_agendamento_em_lote).
A diferença
ocorre na adição do objeto `tfa_info`, contento informações sobre o aprovador da transferência e a forma de contato, e o
status de uma solicitação bem sucedida que será sempre **pending_2fa_approval**.

O evento de notificação para o envio de `token` ao aprovador é **baas.token_validation.pix_transfer.schedule.batch**. É
possível [personalizar](/documentation/notificacoes/template) a mensagem enviada.

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_schedule_batch
MÉTODO POST

## Autenticação via Email e SMS

Request Body: Agendamento em Lote com TFA por SMS ou Email

```json
{
  "request_control_key": "6e4fc980-f8a1-4462-b6e2-d8a49f0ac055",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  },
  "pix_schedules": [
    {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "pix_transfer_type": "key",
      "target_pix_key": "target_pix_key@email.com",
      "transaction_amount": 500.65,
      "end_to_end_id": "E73856642202309201429bZKfklNlbwu",
      "pix_message": "Ola Mundo",
      "schedule_date": "2024-12-01"
    },
    {
      "request_control_key": "c6804f35-101e-4702-8fbc-c2dbc4c2caea",
      "pix_transfer_type": "manual",
      "target_account": {
        "account_branch": "0001",
        "account_digit": "3",
        "account_number": "12345678",
        "owner_document_number": "32402502000135",
        "owner_name": "Qi Tech",
        "account_type": "checking_account",
        "ispb": "32402502"
      },
      "transaction_amount": 500.65,
      "pix_message": "Ola Mundo",
      "schedule_date": "2024-12-01"
    },
    {
      "request_control_key": "a6804f42-101e-4702-8fbc-c2dbc4c2caed",
      "pix_transfer_type": "static_qr_code",
      "transaction_amount": 500.65,
      "end_to_end_id": "E73856642202309201429bZKfklNlbwu",
      "receiver_conciliation_id": "REC00000000000000000000009459463343",
      "target_pix_key": "target_pix_key@email.com",
      "pix_message": "Ola Mundo"
    }
  ]
}
```

## Autenticação via Dispositivo

Além das formas já existentes de autenticação via **sms** e **email**, é possível autenticar a transação utilizando um dispositivo [previamente cadastrado](/documentation/baas/dispositivo/create/solicitacao_cadastro_dispositivo). Nesse caso, o `session_id` deve ser obtido na **Device Scan** e enviado no `tfa_info`.

Request Body: Agendamento em Lote com TFA por Dispositivo

```json
{
  "request_control_key": "6e4fc980-f8a1-4462-b6e2-d8a49f0ac055",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "session_id": "b2f18d3a-67c2-4a7f-98e5-1d3f5c6b8a72",
    "contact_type": "device"
  },
  "pix_schedules": [
    {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "pix_transfer_type": "key",
      "target_pix_key": "target_pix_key@email.com",
      "transaction_amount": 500.65,
      "end_to_end_id": "E73856642202309201429bZKfklNlbwu",
      "pix_message": "Ola Mundo",
      "schedule_date": "2024-12-01"
    },
    {
      "request_control_key": "c6804f35-101e-4702-8fbc-c2dbc4c2caea",
      "pix_transfer_type": "manual",
      "target_account": {
        "account_branch": "0001",
        "account_digit": "3",
        "account_number": "12345678",
        "owner_document_number": "32402502000135",
        "owner_name": "Qi Tech",
        "account_type": "checking_account",
        "ispb": "32402502"
      },
      "transaction_amount": 500.65,
      "pix_message": "Ola Mundo",
      "schedule_date": "2024-12-01"
    },
    {
      "request_control_key": "a6804f42-101e-4702-8fbc-c2dbc4c2caed",
      "pix_transfer_type": "static_qr_code",
      "transaction_amount": 500.65,
      "end_to_end_id": "E73856642202309201429bZKfklNlbwu",
      "receiver_conciliation_id": "REC00000000000000000000009459463343",
      "target_pix_key": "target_pix_key@email.com",
      "pix_message": "Ola Mundo"
    }
  ]
}
```

## Path Params

| Campo         | Tipo   | Descrição                              | Caracteres |
|---------------|--------|----------------------------------------|------------|
| `account_key` | uuidv4 | Chave única de identificação da conta. | 36         |

### Body Params

| Campo                   | Tipo   | Descrição                                                                          | Caracteres                                               |
|-------------------------|--------|------------------------------------------------------------------------------------|----------------------------------------------------------|
| `request_control_key` * | uuidv4 | Chave única de identificação da request utilizada pelo cliente no formato uuid v4. | 36                                                       | 
| `pix_schedules` *       | array  | Lista de objetos pix_schedule vinculados ao lote.                                  | lista de **[Objeto pix_schedule](#objeto-pix_schedule)** |
| `tfa_info`*             | Object | Objeto contendo o documento da pessoa aprovadora da conta e a forma de contato.    | **[Objeto tfa_info](#objeto-tfa_info)**                  |

### Objeto tfa_info

| Campo                       | Tipo   | Descrição                                                                                                                        | Caracteres |
|-----------------------------|--------|----------------------------------------------------------------------------------------------------------------------------------|------------|
| `approver_document_number`* | string | Número de documento da pessoa aprovadora da conta.                                                                               | 11         |
| `session_id`                | string | Chave única de identificação da sessão do dispositivo no formato UUID v4 (obrigatório para TFA via dispositivo).                 | 36         |
| `contact_type`*             | string | Forma de contato com a pessoa aprovadora da conta, podendo ser **sms**, **email** ou **device**                                  |            |

### Objeto pix_schedule

| Campo                      | Tipo       | Descrição                                                                                                                                                                                                                                         | Caracteres                                                        |
|----------------------------|------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|
| `request_control_key`*     | uuidv4     | Chave única de identificação da request utilizada pelo cliente no formato uuid v4.                                                                                                                                                                | 36                                                                | 
| `pix_transfer_type`*       | enumerator | Tipo de transferência Pix.                                                                                                                                                                                                                        | **[Enumerador pix_transfer_type](#enumerador-pix_transfer_type)** |
| `target_pix_key`           | string     | Chave pix da conta a ser enviada a transação.                                                                                                                                                                                                     | 100                                                               |
| `receiver_conciliation_id` | string     | Identicação de conciliação do recebedor.                                                                                                                                                                                                          | 35                                                                |
| `target_account` *         | Object     | Conta destino - Só deve ser enviada em transferências com `pix_transfer_type` do tipo **manual**.                                                                                                                                                 | **[Objeto target_account](#objeto-target_account)**               | 10 |
| `transaction_amount`*      | number     | Valor da transferência.                                                                                                                                                                                                                           | 10                                                                |
| `end_to_end_id`            | string     | Chave de idempotência de uma transação Pix dentro do SPI (Sistema de Pagamento Instantâneo). Esta chave é retornada na consulta de chave Pix. Só deve ser enviado se o `pix_transfer_type` for **key**, **static_qr_code** ou **static_qr_code**. | 32                                                                |
| `pix_message`              | string     | Mensagem a ser enviada junto à transferência Pix.                                                                                                                                                                                                 | 140                                                               |

### Objeto target_account

| Campo                     | Tipo       | Descrição                                           | Caracteres                                              |
|---------------------------|------------|-----------------------------------------------------|---------------------------------------------------------|
| `account_branch` *        | string     | Agência da conta.                                   | 6                                                       |
| `account_digit` *         | string     | Dígito da conta.                                    | 1                                                       |
| `account_number` *        | string     | Número da conta.                                    | 20                                                      |
| `owner_document_number` * | string     | CPF ou CNPJ (apenas números) do titular da conta.   | 14                                                      |
| `owner_name` *            | string     | Nome do titular da conta.                           | 150                                                     |
| `account_type`*           | enumerator | Tipo da conta.                                      | **[Enumerador account_type](#enumerador-account_type)** |
| `ispb` *                  | string     | Base no CNPJ da instituição financeira (8 dígitos). | 8                                                       |

### Enumerador account_type

| Enumerador           | Descrição           |
|----------------------|---------------------|
| **checking_account** | Conta Corrente      |
| **salary_account**   | Conta Salário       |
| **saving_account**   | Conta Poupança      |
| **payment_account**  | Conta de Pagamentos |

### Enumerador pix_transfer_type

| Enumerador          | Descrição                                                                                                                                                                                                                 |
|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **manual**          | Pix utilizando os dados da conta destino. Obrigatório enviar `target_account`                                                                                                                                             |
| **key**             | Pix utilizando uma chave pix. Obrigatório enviar `target_pix_key`. Recomendado enviar `end_to_end_id` da [consulta de chave](/documentation/pix_indireto/movimentacoes/consultar_chave_pix) pix caso tenha sido realizada |
| **static_qr_code**  | Pix utilizando um QR code estático. Obrigatório enviar o `end_to_end_id` retornado na [decodificação do QR code](/documentation/pix/decodificar_qr_code)                                                                  |
| **dynamic_qr_code** | Pix utilizando um QR code dinâmico. Obrigatório enviar o `end_to_end_id` retornado na [decodificação do QR code](/documentation/pix/decodificar_qr_code)                                                                  |

## Response

STATUS 202

Response Body: Agendamento em lote Aprovado

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "schedule_batch_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "schedule_batch_status": "pending_2fa_approval",
  "created_at": "2021-10-22T20:30:23.459Z"
} 
```

### Enumerador schedule_batch_status

| Enumerador               | Descrição                                                                  |
|--------------------------|----------------------------------------------------------------------------|
| **created**              | Agendamento em lote criado                                                 |
| **approved**             | Agendamento em lote aprovado                                               |
| **rejected**             | Agendamento em lote rejeitado                                              |
| **pending_2fa_approval** | Agendamento em lote pendente de aprovação por autenticação de dois fatores |

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                  | Descrição (eng)<br/>`description`                                                                                         | Descrição (ptbr)<br/>`translation`                                                                                                |
|--------------------------|----------------------|-----------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                         | schema error description                                                                                                  | Schema Inválido                                                                                                                   |
| 404                      | PSC000001            | Account not Found                                   | Account was not found                                                                                                     | Conta não encontrada                                                                                                              |
| 406                      | PSC000002            | Invalid Uuid                                        | key was not accepted for not being a valid uuid v4 string                                                                 | key não foi aceito por não ser uma palavra uuid v4 válida                                                                         |
| 400                      | PSC000003            | Bad Request                                         | pix_message can not be longer than 140 characters                                                                         | pix_message não pode ser maior que 140 caracteres                                                                                 |
| 400                      | PSC000004            | Bad Request                                         | Emoji not allowed in pix message                                                                                          | Emoji não é permitido na mensagem pix                                                                                             |
| 406                      | PSC000005            | Invalid Transaction Amount                          | Transaction amount of transaction_amount is not valid. It must be a positive value with at maximum 2 decimal places       | O valor de transação transaction_amount não é válido. Deve ser um valor positivo com no máximo duas casas decimais                |
| 406                      | PSC000006            | Invalid end_to_end_id                               | The end_to_end_id sent end_to_end_id is not valid                                                                         | O end_to_end_id enviado end_to_end_id não é válido                                                                                |
| 400                      | PSC000007            | Invalid date format                                 | Dates must be sent using format YYYY-MM-DD                                                                                | Datas devem ser enviadas no formato YYYY-MM-DD                                                                                    |
| 400                      | PSC000008            | Invalid Schedule Date                               | Schedule date must be after current date for UTC-3                                                                        | Data de agendamento deve ser após a data atual em UTC-3                                                                           |
| 400                      | PSC000009            | Account is Closed                                   | Account is closed                                                                                                         | Conta está fechada                                                                                                                |
| 400                      | PSC000010            | Account is Blocked                                  | Account is blocked                                                                                                        | Conta está bloqueada                                                                                                              |
| 422                      | PSC000011            | Invalid Account Type                                | Pix is not yet implemented for non-checking or non-escrow account types                                                   | Transações Pix não estão implementadas para conta que não sejam escrow ou livres                                                  |
| 403                      | PSC000012            | User is not allowed to do this transaction          | User is not allowed to do this transaction                                                                                | Usuário não tem autorização para fazer essa transação                                                                             |
| 400                      | PSC000013            | Bad Request                                         | For Manual Pix Transfer Type a target account must be provided                                                            | Para transação pix do tipo manual, uma conta destino deve ser fornecida                                                           |
| 404                      | PSC000014            | Inquiry Not Found                                   | Pix key inquiry was not found                                                                                             | Pesquisa de chave pix não encontrada                                                                                              |
| 400                      | PSC000015            | Bad Request                                         | Pix key sent does match inquiry pix key. Verify if end_to_end_id sent is correct                                          | Chave Pix enviada não condiz com consulta. Verifique se end_to_end_id enviado está correto                                        |
| 404                      | PSC000016            | Account not found                                   | Nonexistent account in destination financial institution                                                                  | Conta inexistente na instituição financeira de destino                                                                            |
| 400                      | PSC000017            | Target Account and Source Account must be different | Target Account must not be the same as Source Account                                                                     | A conta de destino não pode ser a mesma da conta de origem                                                                        |
| 409                      | PSC000018            | Bad Request                                         | request_control_key request_control_key already in use                                                                    | request_control_key request_control_key já utilizada                                                                              |
| 400                      | PSC000019            | Invalid Target                                      | Account does not have permission to transfer to the given target account                                                  | A conta não possui permissão para realizar transferências para a conta enviada                                                    |
| 404                      | PSC000020            | Decode Inquiry Not Found                            | QR Code decode inquiry not found                                                                                          | Pesquisa e decodificação de QR code não encontrada                                                                                |
| 400                      | PSC000021            | Bad Request                                         | Receiver Conciliation Id sent does match decode inquiry receiver_conciliation_id. Verify if end_to_end_id sent is correct | Identificador de transação enviado não condiz com consulta. Verifique se end_to_end_id enviado está correto                       |
| 400                      | PSC000022            | Bad Request                                         | Dynamic Instant QR codes cannot be scheduled for payment                                                                  | Pagamentos de vencimento instantâneo não podem ter pagamento agendado                                                             |
| 400                      | PSC000023            | Bad Request                                         | Schedule Date sent is after max payment date for target qr code                                                           | Data de agendamento enviada é após a data máxima de pagamento para o qr code enviado                                              |
| 400                      | PSC000024            | Bad Request                                         | Pix transfer type sent does match decode inquiry qr code type. Verify if end_to_end_id sent is correct                    | Tipo de transação pix enviado enviado não condiz com tipo de qr code da consulta. Verifique se end_to_end_id enviado está correto |
| 400                      | PSC000040            | Empty pix-schedule list received                    | A list of pix schedules must be provided                                                                                  | Uma lista de agendamentos pix deve ser fornecida                                                                                  |
| 409                      | PSC000041            | Bad Request                                         | One or more request_control_key already in use                                                                            | Uma ou mais request_control_key já está sendo utilizada                                                                           |
| 403                      | PSC000045            | Requester not allowed to access this endpoint       | Requester has no permission to perform pix transfers on this endpoint                                                     | Requester não possui permissão de realizar transações pix através deste endpoint                                                  |

---

# Solicitar reenvio de token para um agendamento em lote

URL: /documentation/baas/pix/agendamento/batch/solicitacao_de_reenvio_de_token_para_agendamento_em_lote_2fa

Um novo token será gerado e enviado para o aprovador do agendamento pix. Caso o número limite de tentativas de validação
do token tenha sido excedida, não será permitido o reenvio.

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_schedule_batch/ SCHEDULE_BATCH_KEY /resend_token
MÉTODO PATCH

### Path Params

| Campo                | Tipo   | Descrição                                            | Caracteres |
|----------------------|--------|------------------------------------------------------|------------|
| `account_key`        | uuidv4 | Chave única de identificação da conta.               | 36         |
| `schedule_batch_key` | uuidv4 | Chave única de identificação do agendamento em lote. | 36         |

### Body Params

| Campo          | Tipo       | Descrição                               | Caracteres                                              |
|----------------|------------|-----------------------------------------|---------------------------------------------------------|
| `contact_type` | enumerator | Forma de envio do token de autenticação | **[Enumerador contact_type](#enumerador-contact_type)** |

:::info Informação
Caso não seja enviado um `contact_type`, o token será enviado da forma solicitada originalmente.
:::

| Enumerador | Descrição                                         |
|------------|---------------------------------------------------|
| **sms**    | Envio por Mensagem de Texto para telefone celular |
| **email**  | Envio por correio eletrônico                      |

## Response

STATUS 202

Response Body: Agendamento em lote Solicitado

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "schedule_batch_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "schedule_batch_status": "pending_2fa_approval",
  "created_at": "2021-10-22T20:30:23.459Z"
} 
```

STATUS 4xx

Response Body: Transferência Rejeitada

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                           | Descrição (eng)<br/>`description`                                       | Descrição (ptbr)<br/>`translation`                                                 |
|--------------------------|----------------------|----------------------------------------------|-------------------------------------------------------------------------|------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                  | schema error description                                                | Schema Inválido                                                                    |
| 404                      | PSC000001            | Account not Found                            | Account was not found                                                   | Conta não encontrada                                                               |
| 403                      | PSC000012            | User is not allowed to do this transaction   | User is not allowed to do this transaction                              | Usuário não tem autorização para fazer essa transação                              |
| 404                      | PSC000042            | Schedule Batch not Found                     | ScheduleBatch was not found                                             | ScheduleBatch não encontrada                                                       |
| 400                      | PSC000049            | Number of token validation attempts exceeded | The maximum number of failed token validation attempts has been reached | Número máximo de tentativas de validação de token atingida                         |
| 400                      | PSC000052            | Incorrect Token                              | Token sent does not match expected                                      | Token enviado não condiz com o esperado                                            |
| 400                      | PSC000053            | Error Sending Token                          | An error occurred while resending token and its being investigated      | Um erro ocorreu ao reenviar token e está sendo investigado                         |
| 400                      | PSC000054            | Invalid Schedule Date                        | Schedule must be approved before the scheduled date                     | Agendamento deve ser aprovado em data anterior à programada para transação         |
| 400                      | PSC000055            | Bad Request                                  | Schedule cannot be approved in current status                           | Agendamento pix não pode ser aprovado no status atual                              |
| 400                      | PSC000056            | Bad Request                                  | Schedule Batch cannot be approved in current status                     | Lote de agendamento pix não pode ser aprovado no status atual                      |
| 400                      | PSC000057            | Invalid Schedule Date                        | Batch Schedule must be approved before the earliest scheduled date      | Lote de agendamento deve ser aprovado em data anterior à programada para transação |

---

# Cancelar Agendamento de Transação Pix

URL: /documentation/baas/pix/agendamento/cancelamento_de_agendamento

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_schedule/ SCHEDULE_KEY /cancel
MÉTODO PATCH

### Path Params

| Campo          | Tipo   | Descrição                                   | Caracteres |
|----------------|--------|---------------------------------------------|------------|
| `account_key`  | uuidv4 | Chave única de identificação da conta.      | 36         |
| `schedule_key` | uuidv4 | Chave única de identificação do agendamento | 36         |

### Response

STATUS 200

Response Body: Agendamento Cancelado

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "schedule_key": "f64b3fa7-d09d-4927-ad4f-b966df9fb153",
  "schedule_status": "cancelled",
  "schedule_date": "2024-12-31",
  "created_at": "2023-03-13T19:00:28.440Z"
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                         | Descrição (eng)<br/>`description`                                                 | Descrição (ptbr)<br/>`translation`                                                          |
|--------------------------|----------------------|--------------------------------------------|-----------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                | schema error description                                                          | Schema Inválido                                                                             |
| 404                      | PSC000001            | Account not Found                          | Account was not found                                                             | Conta não encontrada                                                                        |
| 403                      | PSC000012            | User is not allowed to do this transaction | User is not allowed to do this transaction                                        | Usuário não tem autorização para fazer essa transação                                       |
| 404                      | PSC000025            | PixSchedule not Found                      | PixSchedule was not found                                                         | PixSchedule não encontrada                                                                  |
| 400                      | PSC000027            | Bad Request                                | Action cannot be taken place as there is currently a pending transfer in progress | A ação não pôde ser completada como há uma transferência pendente                           |
| 400                      | PSC000028            | Bad Request                                | Pix Schedule cannot be cancelled in current status                                | Agendamento pix não pode ser cancelado no status atual                                      |
| 400                      | PSC000029            | Bad Request                                | The given Pix Schedule is tied to a batch. It cannot be individually cancelled    | O agendamento pix enviado está ligado a um lote. Ela não pode ser individualmente cancelada |

---

# Consultar Agendamento de Transação Pix

URL: /documentation/baas/pix/agendamento/consulta_de_agendamento

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_schedule/ SCHEDULE_KEY
MÉTODO GET

### Path Params

| Campo          | Tipo   | Descrição                                   | Caracteres |
|----------------|--------|---------------------------------------------|------------|
| `account_key`  | uuidv4 | Chave única de identificação da conta.      | 36         |
| `schedule_key` | uuidv4 | Chave única de identificação do agendamento | 36         |

### Response

STATUS 200

Response Body

```json
{
    "created_at": "2024-07-10T16:17:28Z",
    "pix_message": null,
    "rejection_info": null,
    "rejection_reason": null,
    "request_control_key": "b8eb663e-10fe-4729-9db5-8f8c93de5001",
    "schedule_date": "2024-07-10",
    "schedule_key": "0c9091ab-079b-4a43-8b3d-d4ba36a23883",
    "schedule_status": "sent",
    "schedule_transfers": [
        {
            "created_at": "2024-07-10T16:19:33Z",
            "end_to_end_id": "E3240250220240710161922sSHNf8BjI",
            "pix_transfer_key": "427b70cd-73b0-45d1-bb4a-97f50f605022",
            "pix_transfer_status": "sent"
        }
    ],
    "target_account": {
        "account_branch": "0001",
        "account_digit": "8",
        "account_number": "1234567",
        "account_type": "checking_account",
        "ispb": "99999004",
        "owner_document_number": "***91111***",
        "owner_name": "Conta manual geral",
        "owner_person_type": "natural",
        "pix_key": null,
        "receiver_conciliation_id": null
    },
    "transaction_amount": 2.0,
    "updated_at": "2024-07-10T16:19:38Z"
}

```

---

# Consultar Agendamentos de Transação Pix de uma conta

URL: /documentation/baas/pix/agendamento/consulta_de_agendamentos_de_uma_conta

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_schedules
MÉTODO GET

### Path Params

| Campo          | Tipo   | Descrição                                   | Caracteres |
|----------------|--------|---------------------------------------------|------------|
| `account_key`  | uuidv4 | Chave única de identificação da conta.      | 36         |

### Query Params

| Campo                 | Tipo    | Descrição                                                               | Caracteres         |
|-----------------------|---------|-------------------------------------------------------------------------|--------------------|
| `request_control_key` | uuidv4  | Chave única de identificação da request utilizada pelo cliente.         | 36                 |
| `schedule_status`     | string  | Status do agendamento. Pode ser enviado em forma de lista.              |  **[Enumerador schedule_status](#enumerador-schedule_status)** |
| `page`                | integer | Número da página requisitada. 1 por padrão                              |                    |
| `page_size`           | integer | Tamanho da página requisitada na consulta. 30 por padrão e valor máximo | Valor máximo de 30 |

### Enumerador schedule_status

| Enumerador                 | Descrição                                                                                      |
|----------------------------|------------------------------------------------------------------------------------------------|
| **scheduled**              | Transação agendada                                                                             |
| **sent**                   | Agendamento concluído e enviado com sucesso. Estado final                                      |
| **rejected**               | Agendamento rejeitado durante criação ou execução. Estado final                                |
| **cancelled**              | Agendamento cancelado por solicitação de cliente. Estado final                                 |
| **pending_2fa_approval**   | Pendente de aprovação por autenticação de dois fatores                                         |
| **pending_creation**       | Agendamento em processo de criação (Estado transitório para agendamento em lote)               |
| **waiting_batch_approval** | Agendamento criado e vinculado a um lote aguardando aprovação por autenticação de dois fatores |

### Response

STATUS 200

Response Body

```json
{
  "data": [
    {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "schedule_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "schedule_status": "scheduled",
      "schedule_date": "2024-12-31",
      "created_at": "2023-03-13T19:00:28.440Z"
    },
    {
      "request_control_key": "bf6b0a4b-c7a5-446b-9dad-1ae10b25342a",
      "schedule_key": "2479a5cd-079e-4d72-bf4e-16a695bda45e",
      "schedule_status": "cancelled",
      "schedule_date": "2024-12-31",
      "created_at": "2023-03-13T19:00:28.440Z"
    },
    {
      "request_control_key": "9d36c03e-2db7-4c90-87ed-6c9ddb3c03c7",
      "schedule_key": "5d6b14b9-053f-408c-bcd7-61ecf9224f2c",
      "schedule_status": "rejected",
      "schedule_date": "2024-12-31",
      "created_at": "2023-03-13T19:00:28.440Z"
    }
  ],
  "pagination": {
    "current_page": 1,
    "next_page": null,
    "rows_per_page": 30
  }
}

```

---

# Introdução

URL: /documentation/baas/pix/agendamento/introducao

Por meio dos endpoints apresentados nesta sessão, o parceiro integrador pode solicitar o agendamento de transações do
tipo pix. Com esta funcionalidade será possível criar, listar e cancelar agendamentos de uma determinada conta.

## Observações

- A data de agendamento leva em consideração o horário de Brasília (BRT ou UTC/GMT -03:00)
- As transações serão tentadas a partir de 8h BRT
- Transações que tenham falhado por falta de saldo serão retentadas em 1 hora com um limite de 3 tentativas
- Para transaçôes do tipo **key**, **static_qr_code** e **dynamic_qr_code**, antes de a transação ser completada, será
  realizada uma nova verificação da chave Pix para garantir que a conta destino não foi alterada. Caso seja detectada
  alguma discrepância, o agendamento será rejeitado (**rejected**)
- Um webhook será enviado ao parceiro integrador informando o sucesso ou rejeição de um agendamento
- Não é possível agendar um **dynamic_qr_code** instantâneo
- Transferencias por agendamento consomem limite de transação pix

## Pix Schedule Status

| Enumerador                 | Descrição                                                                                      |
|----------------------------|------------------------------------------------------------------------------------------------|
| **scheduled**              | Transação agendada                                                                             |
| **sent**                   | Agendamento concluído e enviado com sucesso. Estado final                                      |
| **rejected**               | Agendamento rejeitado durante criação ou execução. Estado final                                |
| **cancelled**              | Agendamento cancelado por solicitação de cliente. Estado final                                 |
| **pending_2fa_approval**   | Pendente de aprovação por autenticação de dois fatores                                         |
| **pending_creation**       | Agendamento em processo de criação (Estado transitório para agendamento em lote)               |
| **waiting_batch_approval** | Agendamento criado e vinculado a um lote aguardando aprovação por autenticação de dois fatores |

## Schedule Transfers

No dia do agendamento, após a realização da verificação de consistência da conta alvo, será tentada a transação pix.
Neste momento é gerada uma **pix_transfer** e esta será adicionada à lista de `schedule_transfers`. Serão tentadas um
máximo 3 transações pix.

### Schedule Transfer Object

| Campo                 | Tipo   | Descrição                                                                                   | Caracteres                                                          |
|-----------------------|--------|---------------------------------------------------------------------------------------------|---------------------------------------------------------------------|
| `pix_transfer_key`    | uuidv4 | Chave única de identificação da transferência Pix no sistema QI.                            | 36                                                                  |
| `end_to_end_id` *     | string | Chave de idempotência de uma transação Pix dentro do SPI (Sistema de Pagamento Instantâneo) | 32                                                                  |
| `pix_transfer_status` | string | Status da transação.                                                                        | [Enumeradores pix_transfer_status](#enumerador-pix-transfer-status) |         |
| `created_at`          | string | Data e hora de criação da transação.                                                        | 20                                                                  |

### Enumerador Pix Transfer Status

| Enumerador   | Descrição                                           |
|--------------|-----------------------------------------------------|
| **sent**     | Transação enviada com sucesso. Estado final         |
| **rejected** | Transação rejeitada durante execução. Estado final  |
| **pending**  | Transação pendente de conclusão. Estado Transitório |

---

# Introdução a Autenticação de Dois Fatores

URL: /documentation/baas/pix/agendamento/introducao_a_agendamento_2fa

Neste tipo de agendamento, é necessário a confirmação da programação de pagamento via token enviado à pessoa com poderes
de aprovação de movimentação na conta credora.

A solicitação de agendamento Pix por parceiros integradores configurados para a utilização de autenticação de dois
fatores é realizada de forma similar ao descrito
em [solicitar agendamento de_transação_pix](/documentation/baas/pix/agendamento/solicitacao_de_agendamento). A diferença
ocorre na adição do objeto `tfa_info`, contento informações sobre o aprovador da transferência e a forma de contato, e o
status de uma solicitação bem sucedida que será sempre **pending_2fa_approval**.

O mesmo vale para transações em lote Pix descrito
em [realizar transação pix em lote](/documentation/baas/pix/batch/solicitacao_de_transacao_em_lote_pix).

## Fluxo para um agendamento Pix com autorização

O agendamento Pix bem sucedido seguirá o seguinte fluxo de processos:
Realização da [solicitação de transação Pix](/documentation/baas/pix/agendamento/solicitacao_de_agendamento_2fa) e recebimento de resposta de forma síncrona com status de **pending_2fa_approval** e valor da `schedule_key`.
O aprovador indicado receberá um `token` de 6 dígitos compostos por algarismos.
O requisitante realiza a [confirmação de transação pix](/documentation/baas/pix/agendamento/aprovacao_de_agendamento_2fa) com a `schedule_key` e o `token`.
O agendamento será então atualizado para o status de **scheduled**.
## Observações
Cada agendamento possui um limite máximo de tentativas de validação do `token` de 5. Quando este limite é alcançado o agendamento será colocado em status de rejeitado (**rejected**) automaticamente.
Cada `token` possui duração máxima de 5 minutos.
Um agendamento pode ter seu `token` renovado e reenviado para o aprovador da transferência. Este processo reinica o tempo de 5 minutos e não reinicia o contador de tentativas inválidas. O `token` anterior torna-se inválido.
O evento de notificação para o envio de `token` ao aprovador é **baas.token_validation.pix_transfer.schedule.single**. É possível [personalizar](/documentation/notificacoes/template) a mensagem enviada.
As formas de envio (`contact_type`) de token implementadas são por **sms** e **email**.

---

# Solicitar Agendamento de Transação Pix

URL: /documentation/baas/pix/agendamento/solicitacao_de_agendamento

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_schedule
MÉTODO POST

### Path Params

| Campo         | Tipo   | Descrição                              | Caracteres |
|---------------|--------|----------------------------------------|------------|
| `account_key` | uuidv4 | Chave única de identificação da conta. | 36         |

**Chave**

Request Body: Agendamento por Chave Pix

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_type": "key",
  "target_pix_key": "target_pix_key@email.com",
  "transaction_amount": 500.65,
  "end_to_end_id": "E73856642202309201429bZKfklNlbwu",
  "pix_message": "Ola Mundo",
  "schedule_date": "2024-12-01"
}
```

### Body Params

| Campo                   | Tipo       | Descrição                                                                                                                                                                                                                                        | Caracteres |
|-------------------------|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|
| `request_control_key` * | uuidv4     | Chave única de identificação da request utilizada pelo cliente no formato uuid v4.                                                                                                                                                               | 36         | 
| `pix_transfer_type` *   | enumerator | Tipo do pix a ser realizado. Para o caso de transferência por chave deve ser **key**.                                                                                                                                                            | **key**    |
| `target_pix_key` *      | string     | Chave pix da conta a ser enviada a transação.                                                                                                                                                                                                    | 100        |
| `transaction_amount` *  | number     | Valor da transferência.                                                                                                                                                                                                                          | 10         |
| `end_to_end_id` *       | string     | Chave de idempotência de uma transação Pix dentro do SPI (Sistema de Pagamento Instantâneo). Esta chave é retornada na consulta de chave Pix. Só deve ser enviado se o `pix_transfer_type` for **key**, **static_qr_code** ou **static_qr_code** | 32         |
| `pix_message`           | string     | Mensagem a ser enviada junto à transferência Pix.                                                                                                                                                                                                | 140        |
| `schedule_date`*        | string     | Data a ser realizada a transação.                                                                                                                                                                                                                | 10         |

**Manual**
Request Body: Transferência Manual

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_type": "manual",
  "target_account": {
    "account_branch": "0001",
    "account_digit": "3",
    "account_number": "12345678",
    "owner_document_number": "32402502000135",
    "owner_name": "Qi Tech",
    "account_type": "checking_account",
    "ispb": "32402502"
  },
  "transaction_amount": 500.65,
  "pix_message": "Ola Mundo",
  "schedule_date": "2024-12-01"
}
```

### Body Params

| Campo                   | Tipo       | Descrição                                                                                         | Caracteres                                          |
|-------------------------|------------|---------------------------------------------------------------------------------------------------|-----------------------------------------------------|
| `request_control_key` * | uuidv4     | Chave única de identificação da request utilizada pelo cliente no formato uuid v4.                | 36                                                  | 
| `pix_transfer_type` *   | enumerator | Tipo de transferência Pix.                                                                        | **manual**                                          |
| `target_account` *      | Object     | Conta destino - Só deve ser enviada em transferências com `pix_transfer_type` do tipo **manual**. | **[Objeto target_account](#objeto-target_account)** | 10 |
| `transaction_amount` *  | number     | Valor da transferência.                                                                           | 10                                                  |
| `pix_message`           | string     | Mensagem a ser enviada junto à transferência Pix.                                                 | 140                                                 |
| `schedule_date`*        | string     | Data a ser realizada a transação.                                                                 | 10                                                  |

### Objeto target_account

| Campo                     | Tipo       | Descrição                                           | Caracteres                                              |
|---------------------------|------------|-----------------------------------------------------|---------------------------------------------------------|
| `account_branch` *        | string     | Agência da conta.                                   | 4                                                       |
| `account_digit` *         | string     | Dígito da conta.                                    | 1                                                       |
| `account_number` *        | string     | Número da conta.                                    | 20                                                      |
| `owner_document_number` * | string     | CPF ou CNPJ (apenas números) do titular da conta.   | 14                                                      |
| `owner_name` *            | string     | Nome do titular da conta.                           | 150                                                     |
| `account_type`*           | enumerator | Tipo da conta.                                      | **[Enumerador account_type](#enumerador-account_type)** |
| `ispb` *                  | string     | Base no CNPJ da instituição financeira (8 dígitos). | 8                                                       |

### Enumerador account_type

| Enumerador           | Descrição           |
|----------------------|---------------------|
| **checking_account** | Conta Corrente      |
| **salary_account**   | Conta Salário       |
| **saving_account**   | Conta Poupança      |
| **payment_account**  | Conta de Pagamentos |

**Qr Code**

Request Body: Transferência por Qr Code

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_type": "static_qr_code",
  "transaction_amount": 500.65,
  "end_to_end_id": "E73856642202309201429bZKfklNlbwu",
  "receiver_conciliation_id": "REC00000000000000000000009459463343",
  "target_pix_key": "target_pix_key@email.com",
  "pix_message": "Ola Mundo",
  "schedule_date": "2024-12-01"
}
```

### Body Params

| Campo                      | Tipo       | Descrição                                                                                                                                                                                                                                         | Caracteres                                |
|----------------------------|------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------|
| `request_control_key`*     | uuidv4     | Chave única de identificação da request utilizada pelo cliente no formato uuid v4.                                                                                                                                                                | 36                                        | 
| `pix_transfer_type`*       | enumerator | Tipo de transferência Pix.                                                                                                                                                                                                                        | **static_qr_code** ou **dynamic_qr_code** |
| `target_pix_key`*          | string     | Chave pix da conta a ser enviada a transação.                                                                                                                                                                                                     | 100                                       |
| `receiver_conciliation_id` | string     | Identicação de conciliação do recebedor.                                                                                                                                                                                                          | 35                                        |
| `transaction_amount`*      | number     | Valor da transferência.                                                                                                                                                                                                                           | 10                                        |
| `end_to_end_id`*           | string     | Chave de idempotência de uma transação Pix dentro do SPI (Sistema de Pagamento Instantâneo). Esta chave é retornada na consulta de chave Pix. Só deve ser enviado se o `pix_transfer_type` for **key**, **static_qr_code** ou **static_qr_code**. | 32                                        |
| `pix_message`              | string     | Mensagem a ser enviada junto à transferência Pix.                                                                                                                                                                                                 | 140                                       |

:::info Aviso
O `end_to_end_id` é retornado ao [decodificar o QR Code Pix](/documentation/pix/decodificar_qr_code), utilizando a URI
do Pix Copia e Cola.
:::

:::danger Aviso
O `end_to_end_id` da consulta deve ter sido feito em nome da conta que solicitará a movimentação!
:::

:::danger Aviso
Um `end_to_end_id` só pode ser utilizado para uma única transferência, não importando, se a transferência tenha sido bem
sucedida ou não.
:::

## Response

STATUS 201

Response Body: Agendamento Criado

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "schedule_key": "f64b3fa7-d09d-4927-ad4f-b966df9fb153",
  "schedule_status": "scheduled",
  "schedule_date": "2024-12-31",
  "created_at": "2023-03-13T19:00:28.440Z"
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                  | Descrição (eng)<br/>`description`                                                                                                    | Descrição (ptbr)<br/>`translation`                                                                                                          |
|--------------------------|----------------------|-----------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                         | schema error description                                                                                                             | Schema Inválido                                                                                                                             |
| 404                      | PSC000001            | Account not Found                                   | Account was not found                                                                                                                | Conta não encontrada                                                                                                                        |
| 406                      | PSC000002            | Invalid Uuid                                        | key was not accepted for not being a valid uuid v4 string                                                                            | key não foi aceito por não ser uma palavra uuid v4 válida                                                                                   |
| 400                      | PSC000003            | Bad Request                                         | pix_message can not be longer than 140 characters                                                                                    | pix_message não pode ser maior que 140 caracteres                                                                                           |
| 400                      | PSC000004            | Bad Request                                         | Emoji not allowed in pix message                                                                                                     | Emoji não é permitido na mensagem pix                                                                                                       |
| 406                      | PSC000005            | Invalid Transaction Amount                          | Transaction amount of transaction_amount is not valid. It must be a positive value with at maximum 2 decimal places                  | O valor de transação transaction_amount não é válido. Deve ser um valor positivo com no máximo duas casas decimais                          |
| 406                      | PSC000006            | Invalid end_to_end_id                               | The end_to_end_id sent end_to_end_id is not valid                                                                                    | O end_to_end_id enviado end_to_end_id não é válido                                                                                          |
| 400                      | PSC000007            | Invalid date format                                 | Dates must be sent using format YYYY-MM-DD                                                                                           | Datas devem ser enviadas no formato YYYY-MM-DD                                                                                              |
| 400                      | PSC000008            | Invalid Schedule Date                               | Schedule date must be after current date for UTC-3                                                                                   | Data de agendamento deve ser após a data atual em UTC-3                                                                                     |
| 400                      | PSC000009            | Account is Closed                                   | Account is closed                                                                                                                    | Conta está fechada                                                                                                                          |
| 400                      | PSC000010            | Account is Blocked                                  | Account is blocked                                                                                                                   | Conta está bloqueada                                                                                                                        |
| 422                      | PSC000011            | Invalid Account Type                                | Pix is not yet implemented for non-checking or non-escrow account types                                                              | Transações Pix não estão implementadas para conta que não sejam escrow ou livres                                                            |
| 403                      | PSC000012            | User is not allowed to do this transaction          | User is not allowed to do this transaction                                                                                           | Usuário não tem autorização para fazer essa transação                                                                                       |
| 400                      | PSC000013            | Bad Request                                         | For Manual Pix Transfer Type a target account must be provided                                                                       | Para transação pix do tipo manual, uma conta destino deve ser fornecida                                                                     |
| 404                      | PSC000014            | Inquiry Not Found                                   | Pix key inquiry was not found                                                                                                        | Pesquisa de chave pix não encontrada                                                                                                        |
| 400                      | PSC000015            | Bad Request                                         | Pix key sent does match inquiry pix key. Verify if end_to_end_id sent is correct                                                     | Chave Pix enviada não condiz com consulta. Verifique se end_to_end_id enviado está correto                                                  |
| 404                      | PSC000016            | Account not found                                   | Nonexistent account in destination financial institution                                                                             | Conta inexistente na instituição financeira de destino                                                                                      |
| 400                      | PSC000017            | Target Account and Source Account must be different | Target Account must not be the same as Source Account                                                                                | A conta de destino não pode ser a mesma da conta de origem                                                                                  |
| 409                      | PSC000018            | Bad Request                                         | request_control_key request_control_key already in use                                                                               | request_control_key request_control_key já utilizada                                                                                        |
| 400                      | PSC000019            | Invalid Target                                      | Account does not have permission to transfer to the given target account                                                             | A conta não possui permissão para realizar transferências para a conta enviada                                                              |
| 404                      | PSC000020            | Decode Inquiry Not Found                            | QR Code decode inquiry not found                                                                                                     | Pesquisa e decodificação de QR code não encontrada                                                                                          |
| 400                      | PSC000021            | Bad Request                                         | Receiver Conciliation Id sent does match decode inquiry receiver_conciliation_id. Verify if end_to_end_id sent is correct            | Identificador de transação enviado não condiz com consulta. Verifique se end_to_end_id enviado está correto                                 |
| 400                      | PSC000022            | Bad Request                                         | Dynamic Instant QR codes cannot be scheduled for payment                                                                             | Pagamentos de vencimento instantâneo não podem ter pagamento agendado                                                                       |
| 400                      | PSC000023            | Bad Request                                         | Schedule Date sent is after max payment date for target qr code                                                                      | Data de agendamento enviada é após a data máxima de pagamento para o qr code enviado                                                        |
| 400                      | PSC000024            | Bad Request                                         | Pix transfer type sent does match decode inquiry qr code type. Verify if end_to_end_id sent is correct                               | Tipo de transação pix enviado enviado não condiz com tipo de qr code da consulta. Verifique se end_to_end_id enviado está correto           |

---

# Solicitar Agendamento de Transação Pix com Autenticação de Dois Fatores

URL: /documentation/baas/pix/agendamento/solicitacao_de_agendamento_2fa

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_schedule
MÉTODO POST

### Path Params

| Campo         | Tipo   | Descrição                              | Caracteres |
|---------------|--------|----------------------------------------|------------|
| `account_key` | uuidv4 | Chave única de identificação da conta. | 36         |

**Chave**
## Autenticação via Email e SMS
Request Body: Agendamento por Chave Pix com TFA por SMS ou Email

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_type": "key",
  "target_pix_key": "target_pix_key@email.com",
  "transaction_amount": 500.65,
  "end_to_end_id": "E73856642202309201429bZKfklNlbwu",
  "pix_message": "Ola Mundo",
  "schedule_date": "2024-12-01",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  }
}
```

## Autenticação via Dispositivo

Além das formas já existentes de autenticação via **sms** e **email**, é possível autenticar a transação utilizando um dispositivo [previamente cadastrado](/documentation/baas/dispositivo/create/solicitacao_cadastro_dispositivo). Nesse caso, o `session_id` deve ser obtido na **Device Scan** e enviado no `tfa_info`.

Request Body: Agendamento por Chave Pix com TFA por Dispositivo

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_type": "key",
  "target_pix_key": "target_pix_key@email.com",
  "transaction_amount": 500.65,
  "end_to_end_id": "E73856642202309201429bZKfklNlbwu",
  "pix_message": "Ola Mundo",
  "schedule_date": "2024-12-01",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "session_id": "b2f18d3a-67c2-4a7f-98e5-1d3f5c6b8a72",
    "contact_type": "device"
  }
}
```

### Body Params

| Campo                   | Tipo       | Descrição                                                                                                                                                                                                                                        | Caracteres                              |
|-------------------------|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------|
| `request_control_key` * | uuidv4     | Chave única de identificação da request utilizada pelo cliente no formato uuid v4.                                                                                                                                                               | 36                                      | 
| `pix_transfer_type` *   | enumerator | Tipo do pix a ser realizado. Para o caso de transferência por chave deve ser **key**.                                                                                                                                                            | **key**                                 |
| `target_pix_key` *      | string     | Chave pix da conta a ser enviada a transação.                                                                                                                                                                                                    | 100                                     |
| `transaction_amount` *  | number     | Valor da transferência.                                                                                                                                                                                                                          | 10                                      |
| `end_to_end_id` *       | string     | Chave de idempotência de uma transação Pix dentro do SPI (Sistema de Pagamento Instantâneo). Esta chave é retornada na consulta de chave Pix. Só deve ser enviado se o `pix_transfer_type` for **key**, **static_qr_code** ou **static_qr_code** | 32                                      |
| `pix_message`           | string     | Mensagem a ser enviada junto à transferência Pix.                                                                                                                                                                                                | 140                                     |
| `schedule_date`*        | string     | Data a ser realizada a transação.                                                                                                                                                                                                                | 10                                      |
| `tfa_info`*             | Object     | Objeto contendo o documento da pessoa aprovadora da conta e a forma de contato.                                                                                                                                                                  | **[Objeto tfa_info](#objeto-tfa_info)** |

**Manual**
## Autenticação via Email e SMS
Request Body: Transferência Manual com TFA por SMS ou Email

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_type": "manual",
  "target_account": {
    "account_branch": "0001",
    "account_digit": "3",
    "account_number": "12345678",
    "owner_document_number": "32402502000135",
    "owner_name": "Qi Tech",
    "account_type": "checking_account",
    "ispb": "32402502"
  },
  "transaction_amount": 500.65,
  "pix_message": "Ola Mundo",
  "schedule_date": "2024-12-01",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  }
}
```

## Autenticação via Dispositivo

Além das formas já existentes de autenticação via **sms** e **email**, é possível autenticar a transação utilizando um dispositivo [previamente cadastrado](/documentation/baas/dispositivo/create/solicitacao_cadastro_dispositivo). Nesse caso, o `session_id` deve ser obtido na **Device Scan** e enviado no `tfa_info`.

Request Body: Transferência Manual com TFA por Dispositivo

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_type": "manual",
  "target_account": {
    "account_branch": "0001",
    "account_digit": "3",
    "account_number": "12345678",
    "owner_document_number": "32402502000135",
    "owner_name": "Qi Tech",
    "account_type": "checking_account",
    "ispb": "32402502"
  },
  "transaction_amount": 500.65,
  "pix_message": "Ola Mundo",
  "schedule_date": "2024-12-01",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "session_id": "b2f18d3a-67c2-4a7f-98e5-1d3f5c6b8a72",
    "contact_type": "device"
  }
}
```

### Body Params

| Campo                   | Tipo       | Descrição                                                                                         | Caracteres                                          |
|-------------------------|------------|---------------------------------------------------------------------------------------------------|-----------------------------------------------------|
| `request_control_key` * | uuidv4     | Chave única de identificação da request utilizada pelo cliente no formato uuid v4.                | 36                                                  | 
| `pix_transfer_type` *   | enumerator | Tipo de transferência Pix.                                                                        | **manual**                                          |
| `target_account` *      | Object     | Conta destino - Só deve ser enviada em transferências com `pix_transfer_type` do tipo **manual**. | **[Objeto target_account](#objeto-target_account)** | 10 |
| `transaction_amount` *  | number     | Valor da transferência.                                                                           | 10                                                  |
| `pix_message`           | string     | Mensagem a ser enviada junto à transferência Pix.                                                 | 140                                                 |
| `schedule_date`*        | string     | Data a ser realizada a transação.                                                                 | 10                                                  |
| `tfa_info`*             | Object     | Objeto contendo o documento da pessoa aprovadora da conta e a forma de contato.                   | **[Objeto tfa_info](#objeto-tfa_info)**             |

### Objeto target_account

| Campo                     | Tipo       | Descrição                                           | Caracteres                                              |
|---------------------------|------------|-----------------------------------------------------|---------------------------------------------------------|
| `account_branch` *        | string     | Agência da conta.                                   | 4                                                       |
| `account_digit` *         | string     | Dígito da conta.                                    | 1                                                       |
| `account_number` *        | string     | Número da conta.                                    | 20                                                      |
| `owner_document_number` * | string     | CPF ou CNPJ (apenas números) do titular da conta.   | 14                                                      |
| `owner_name` *            | string     | Nome do titular da conta.                           | 150                                                     |
| `account_type`*           | enumerator | Tipo da conta.                                      | **[Enumerador account_type](#enumerador-account_type)** |
| `ispb` *                  | string     | Base no CNPJ da instituição financeira (8 dígitos). | 8                                                       |

### Enumerador account_type

| Enumerador           | Descrição           |
|----------------------|---------------------|
| **checking_account** | Conta Corrente      |
| **salary_account**   | Conta Salário       |
| **saving_account**   | Conta Poupança      |
| **payment_account**  | Conta de Pagamentos |

**Qr Code**
## Autenticação via Email e SMS
Request Body: Transferência por Qr Code com TFA por SMS ou Email

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_type": "static_qr_code",
  "transaction_amount": 500.65,
  "end_to_end_id": "E73856642202309201429bZKfklNlbwu",
  "receiver_conciliation_id": "REC00000000000000000000009459463343",
  "target_pix_key": "target_pix_key@email.com",
  "pix_message": "Ola Mundo",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  }
}
```

## Autenticação via Dispositivo

Além das formas já existentes de autenticação via **sms** e **email**, é possível autenticar a transação utilizando um dispositivo [previamente cadastrado](/documentation/baas/dispositivo/create/solicitacao_cadastro_dispositivo). Nesse caso, o `session_id` deve ser obtido na **Device Scan** e enviado no `tfa_info`.

Request Body: Transferência por Qr Code com TFA por Dispositivo

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_type": "static_qr_code",
  "transaction_amount": 500.65,
  "end_to_end_id": "E73856642202309201429bZKfklNlbwu",
  "receiver_conciliation_id": "REC00000000000000000000009459463343",
  "target_pix_key": "target_pix_key@email.com",
  "pix_message": "Ola Mundo",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "session_id": "b2f18d3a-67c2-4a7f-98e5-1d3f5c6b8a72",
    "contact_type": "device"
  }
}
```

### Body Params

| Campo                      | Tipo       | Descrição                                                                                                                                                                                                                                         | Caracteres                                |
|----------------------------|------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------|
| `request_control_key`*     | uuidv4     | Chave única de identificação da request utilizada pelo cliente no formato uuid v4.                                                                                                                                                                | 36                                        | 
| `pix_transfer_type`*       | enumerator | Tipo de transferência Pix.                                                                                                                                                                                                                        | **static_qr_code** ou **dynamic_qr_code** |
| `target_pix_key`*          | string     | Chave pix da conta a ser enviada a transação.                                                                                                                                                                                                     | 100                                       |
| `receiver_conciliation_id` | string     | Identicação de conciliação do recebedor.                                                                                                                                                                                                          | 35                                        |
| `transaction_amount`*      | number     | Valor da transferência.                                                                                                                                                                                                                           | 10                                        |
| `end_to_end_id`*           | string     | Chave de idempotência de uma transação Pix dentro do SPI (Sistema de Pagamento Instantâneo). Esta chave é retornada na consulta de chave Pix. Só deve ser enviado se o `pix_transfer_type` for **key**, **static_qr_code** ou **static_qr_code**. | 32                                        |
| `pix_message`              | string     | Mensagem a ser enviada junto à transferência Pix.                                                                                                                                                                                                 | 140                                       |
| `tfa_info`*                | Object     | Objeto contendo o documento da pessoa aprovadora da conta e a forma de contato.                                                                                                                                                                   | **[Objeto tfa_info](#objeto-tfa_info)**   |

:::info Aviso
O `end_to_end_id` é retornado ao [decodificar o QR Code Pix](/documentation/pix/decodificar_qr_code), utilizando a URI
do Pix Copia e Cola.
:::

### Objeto tfa_info

| Campo                       | Tipo   | Descrição                                                                                                                        | Caracteres |
|-----------------------------|--------|----------------------------------------------------------------------------------------------------------------------------------|------------|
| `approver_document_number`* | string | Número de documento da pessoa aprovadora da conta.                                                                               | 11         |
| `session_id`                | string | Chave única de identificação da sessão do dispositivo no formato UUID v4 (obrigatório para TFA via dispositivo).                 | 36         |
| `contact_type`*             | string | Forma de contato com a pessoa aprovadora da conta, podendo ser **sms**, **email** ou **device**                                  |            |

:::danger Aviso
O `end_to_end_id` da consulta deve ter sido feito em nome da conta que solicitará a movimentação!
:::

:::danger Aviso
Um `end_to_end_id` só pode ser utilizado para uma única transferência, não importando, se a transferência tenha sido bem
sucedida ou não.
:::

## Response

STATUS 201

Response Body: Agendamento Criado

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "schedule_key": "f64b3fa7-d09d-4927-ad4f-b966df9fb153",
  "schedule_status": "pending_2fa_approval",
  "schedule_date": "2024-12-31",
  "created_at": "2023-03-13T19:00:28.440Z"
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                  | Descrição (eng)<br/>`description`                                                                                         | Descrição (ptbr)<br/>`translation`                                                                                                |
|--------------------------|----------------------|-----------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                         | schema error description                                                                                                  | Schema Inválido                                                                                                                   |
| 404                      | PSC000001            | Account not Found                                   | Account was not found                                                                                                     | Conta não encontrada                                                                                                              |
| 406                      | PSC000002            | Invalid Uuid                                        | key was not accepted for not being a valid uuid v4 string                                                                 | key não foi aceito por não ser uma palavra uuid v4 válida                                                                         |
| 400                      | PSC000003            | Bad Request                                         | pix_message can not be longer than 140 characters                                                                         | pix_message não pode ser maior que 140 caracteres                                                                                 |
| 400                      | PSC000004            | Bad Request                                         | Emoji not allowed in pix message                                                                                          | Emoji não é permitido na mensagem pix                                                                                             |
| 406                      | PSC000005            | Invalid Transaction Amount                          | Transaction amount of transaction_amount is not valid. It must be a positive value with at maximum 2 decimal places       | O valor de transação transaction_amount não é válido. Deve ser um valor positivo com no máximo duas casas decimais                |
| 406                      | PSC000006            | Invalid end_to_end_id                               | The end_to_end_id sent end_to_end_id is not valid                                                                         | O end_to_end_id enviado end_to_end_id não é válido                                                                                |
| 400                      | PSC000007            | Invalid date format                                 | Dates must be sent using format YYYY-MM-DD                                                                                | Datas devem ser enviadas no formato YYYY-MM-DD                                                                                    |
| 400                      | PSC000008            | Invalid Schedule Date                               | Schedule date must be after current date for UTC-3                                                                        | Data de agendamento deve ser após a data atual em UTC-3                                                                           |
| 400                      | PSC000009            | Account is Closed                                   | Account is closed                                                                                                         | Conta está fechada                                                                                                                |
| 400                      | PSC000010            | Account is Blocked                                  | Account is blocked                                                                                                        | Conta está bloqueada                                                                                                              |
| 422                      | PSC000011            | Invalid Account Type                                | Pix is not yet implemented for non-checking or non-escrow account types                                                   | Transações Pix não estão implementadas para conta que não sejam escrow ou livres                                                  |
| 403                      | PSC000012            | User is not allowed to do this transaction          | User is not allowed to do this transaction                                                                                | Usuário não tem autorização para fazer essa transação                                                                             |
| 400                      | PSC000013            | Bad Request                                         | For Manual Pix Transfer Type a target account must be provided                                                            | Para transação pix do tipo manual, uma conta destino deve ser fornecida                                                           |
| 404                      | PSC000014            | Inquiry Not Found                                   | Pix key inquiry was not found                                                                                             | Pesquisa de chave pix não encontrada                                                                                              |
| 400                      | PSC000015            | Bad Request                                         | Pix key sent does match inquiry pix key. Verify if end_to_end_id sent is correct                                          | Chave Pix enviada não condiz com consulta. Verifique se end_to_end_id enviado está correto                                        |
| 404                      | PSC000016            | Account not found                                   | Nonexistent account in destination financial institution                                                                  | Conta inexistente na instituição financeira de destino                                                                            |
| 400                      | PSC000017            | Target Account and Source Account must be different | Target Account must not be the same as Source Account                                                                     | A conta de destino não pode ser a mesma da conta de origem                                                                        |
| 409                      | PSC000018            | Bad Request                                         | request_control_key request_control_key already in use                                                                    | request_control_key request_control_key já utilizada                                                                              |
| 400                      | PSC000019            | Invalid Target                                      | Account does not have permission to transfer to the given target account                                                  | A conta não possui permissão para realizar transferências para a conta enviada                                                    |
| 404                      | PSC000020            | Decode Inquiry Not Found                            | QR Code decode inquiry not found                                                                                          | Pesquisa e decodificação de QR code não encontrada                                                                                |
| 400                      | PSC000021            | Bad Request                                         | Receiver Conciliation Id sent does match decode inquiry receiver_conciliation_id. Verify if end_to_end_id sent is correct | Identificador de transação enviado não condiz com consulta. Verifique se end_to_end_id enviado está correto                       |
| 400                      | PSC000022            | Bad Request                                         | Dynamic Instant QR codes cannot be scheduled for payment                                                                  | Pagamentos de vencimento instantâneo não podem ter pagamento agendado                                                             |
| 400                      | PSC000023            | Bad Request                                         | Schedule Date sent is after max payment date for target qr code                                                           | Data de agendamento enviada é após a data máxima de pagamento para o qr code enviado                                              |
| 400                      | PSC000024            | Bad Request                                         | Pix transfer type sent does match decode inquiry qr code type. Verify if end_to_end_id sent is correct                    | Tipo de transação pix enviado enviado não condiz com tipo de qr code da consulta. Verifique se end_to_end_id enviado está correto |
| 400                      | PSC000046            | tfa_info is required                                | Client must send object tfa_info                                                                                          | Cliente deve enviar objeto tfa_info                                                                                               |
| 403                      | PSC000047            | No approver permission                              | Given document number does not belong to an approver for this account                                                     | Número de documento enviado não pertence a um aprovador da conta                                                                  |
| 400                      | PSC000048            | Error occurred while sending token                  | An unexpected error occurred while sending token                                                                          | Um erro inesperado ocorreu ao tentar enviar token                                                                                 |

---

# Solicitar reenvio de token para um agendamento

URL: /documentation/baas/pix/agendamento/solicitacao_de_reenvio_de_token_para_agendamento_2fa

Um novo token será gerado e enviado para o aprovador do agendamento pix. Caso o número limite de tentativas de validação
do token tenha sido excedida, não será permitido o reenvio.

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_schedule/ SCHEDULE_KEY /resend_token
MÉTODO PATCH

### Path Params

| Campo          | Tipo   | Descrição                                    | Caracteres |
|----------------|--------|----------------------------------------------|------------|
| `account_key`  | uuidv4 | Chave única de identificação da conta.       | 36         |
| `schedule_key` | uuidv4 | Chave única de identificação do agendamento. | 36         |

### Body Params

| Campo          | Tipo       | Descrição                               | Caracteres                                              |
|----------------|------------|-----------------------------------------|---------------------------------------------------------|
| `contact_type` | enumerator | Forma de envio do token de autenticação | **[Enumerador contact_type](#enumerador-contact_type)** |

:::info Informação
Caso não seja enviado um `contact_type`, o token será enviado da forma solicitada originalmente.
:::

| Enumerador | Descrição                                         |
|------------|---------------------------------------------------|
| **sms**    | Envio por Mensagem de Texto para telefone celular |
| **email**  | Envio por correio eletrônico                      |

## Response

STATUS 202

Response Body: Transação Solicitada

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "schedule_key": "f64b3fa7-d09d-4927-ad4f-b966df9fb153",
  "schedule_status": "pending_2fa_approval",
  "schedule_date": "2024-12-31",
  "created_at": "2023-03-13T19:00:28.440Z"
}
```

STATUS 4xx

Response Body: Transferência Rejeitada

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                           | Descrição (eng)<br/>`description`                                       | Descrição (ptbr)<br/>`translation`                                         |
|--------------------------|----------------------|----------------------------------------------|-------------------------------------------------------------------------|----------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                  | schema error description                                                | Schema Inválido                                                            |
| 404                      | PSC000001            | Account not Found                            | Account was not found                                                   | Conta não encontrada                                                       |
| 403                      | PSC000012            | User is not allowed to do this transaction   | User is not allowed to do this transaction                              | Usuário não tem autorização para fazer essa transação                      |
| 404                      | PSC000025            | PixSchedule not Found                        | PixSchedule was not found                                               | PixSchedule não encontrada                                                 |
| 400                      | PSC000049            | Number of token validation attempts exceeded | The maximum number of failed token validation attempts has been reached | Número máximo de tentativas de validação de token atingida                 |
| 400                      | PSC000052            | Incorrect Token                              | Token sent does not match expected                                      | Token enviado não condiz com o esperado                                    |
| 400                      | PSC000053            | Error Sending Token                          | An error occurred while resending token and its being investigated      | Um erro ocorreu ao reenviar token e está sendo investigado                 |
| 400                      | PSC000054            | Invalid Schedule Date                        | Schedule must be approved before the scheduled date                     | Agendamento deve ser aprovado em data anterior à programada para transação |
| 400                      | PSC000055            | Bad Request                                  | Schedule cannot be approved in current status                           | Agendamento pix não pode ser aprovado no status atual                      |

---

# Webhook de conclusão de Agendamento Pix

URL: /documentation/baas/pix/agendamento/webhook_de_conclusao_de_agendamento

Após a conclusão de um agendamento Pix, um webhook será enviado ao parceiro integrador com o resultado.

:::danger Atenção!
Os webhooks da QI Tech não devem ser mapeados de forma restrita. Campos adicionais podem ser incluídos aos payloads dos
webhooks retornados em nossas APIs.
:::

### Webhook Request Body

Request Body: Agendamento Concluído e Enviado

```json
{
  "webhook_type": "baas.pix_schedule.completed",
  "webhook_datetime": "2021-10-22T20:30:23.459Z",
  "data": {
    "created_at": "2024-07-10T16:17:28Z",
    "pix_message": null,
    "rejection_info": null,
    "rejection_reason": null,
    "request_control_key": "b8eb663e-10fe-4729-9db5-8f8c93de5001",
    "schedule_date": "2024-07-10",
    "schedule_key": "0c9091ab-079b-4a43-8b3d-d4ba36a23883",
    "schedule_status": "sent",
    "schedule_transfers": [
      {
        "created_at": "2024-07-10T16:19:33Z",
        "end_to_end_id": "E3240250220240710161922sSHNf8BjI",
        "pix_transfer_key": "427b70cd-73b0-45d1-bb4a-97f50f605022",
        "pix_transfer_status": "sent"
      }
    ],
    "target_account": {
      "account_branch": "0001",
      "account_digit": "8",
      "account_number": "1234567",
      "account_type": "checking_account",
      "ispb": "99999004",
      "owner_document_number": "***91111***",
      "owner_name": "Conta manual geral",
      "owner_person_type": "natural",
      "pix_key": null,
      "receiver_conciliation_id": null
    },
    "transaction_amount": 2.0,
    "updated_at": "2024-07-10T16:19:38Z"
  }
}
```

Request Body: Agendamento Concluído e Rejeitado

```json
{
  "created_at": "2024-07-11T16:03:54Z",
  "pix_message": null,
  "rejection_info": {
    "error_code": "PSC000030",
    "error_description": "The maximum amount of pix transfer attempts has been reached",
    "error_translation": "A maxima quantidade de retentativas de transacao pix foi atingida",
    "rejection_reason": "max_tries_exceeded"
  },
  "rejection_reason": null,
  "request_control_key": "b8eb663e-10fe-4729-9db5-8f8c93de0008",
  "schedule_date": "2024-07-11",
  "schedule_key": "8b262d82-3fc6-40f0-bfe5-bf18556ededb",
  "schedule_status": "rejected",
  "schedule_transfers": [
    {
      "created_at": "2024-07-11T16:04:21Z",
      "end_to_end_id": "E32402502202407111604ffoPVrGebI0",
      "pix_transfer_key": "c2c4e064-e684-450b-add5-07fb1efe8991",
      "pix_transfer_status": "rejected"
    },
    {
      "created_at": "2024-07-11T16:08:33Z",
      "end_to_end_id": "E32402502202407111608TQ3C4vRPRPk",
      "pix_transfer_key": "c30254db-86b2-4d8a-be01-29fa0d93ae92",
      "pix_transfer_status": "rejected"
    },
    {
      "created_at": "2024-07-11T16:09:20Z",
      "end_to_end_id": "E32402502202407111609zSUQQOvmMV6",
      "pix_transfer_key": "1a329248-fc39-4b49-9b95-8f1c1bb10c8b",
      "pix_transfer_status": "rejected"
    }
  ],
  "target_account": {
    "account_branch": "0001",
    "account_digit": "8",
    "account_number": "1234567",
    "account_type": "checking_account",
    "ispb": "99999004",
    "owner_document_number": "***91111***",
    "owner_name": "Conta manual geral",
    "owner_person_type": "natural",
    "pix_key": null,
    "receiver_conciliation_id": null
  },
  "transaction_amount": 2.0,
  "updated_at": "2024-07-11T16:09:21Z"
}
```

### Webhook Body Param

| Campo                 | Tipo   | Descrição                                                                          | Max. Caracteres                                                    |
|-----------------------|--------|------------------------------------------------------------------------------------|--------------------------------------------------------------------|
| `webhook_type`        | string | Um enumerador que define o tipo de evento sendo reportado                          | 23                                                                 |
| `webhook_datetime`    | string | Data e hora do envio do webhook                                                    | 20                                                                 |
| `transaction_amount`  | number | Valor da transferencia                                                             | 10                                                                 |
| `target_account`      | object | Conta destino do agendamento                                                       | **[Objeto target_account](#objeto-target_account)**                |
| `schedule_transfers`  | array  | Lista de tentativas de transferências realizadas pelo agendamento                  | lista de **[Objeto schedule_transfer](#schedule-transfer-object)** |
| `schedule_status`     | string | Status do agendamento                                                              | **[Enumerador schedule_status](#pix-schedule-status)**             |
| `schedule_key`        | string | Chave única de identificação do agendamento                                        | 36                                                                 |
| `schedule_date`       | string | Data a ser realizada a transação.                                                  | 10                                                                 |
| `request_control_key` | uuidv4 | Chave única de identificação da request utilizada pelo cliente no formato uuid v4. | 36                                                                 |                                                                  |
| `rejection_info`      | object | Objeto com informaçôes sobre o evento de rejeição                                  |                                                                    |
| `rejection_reason`    | string | Motivo da rejeição                                                                 | **[Enumeradores rejection_reason](#enumeradores-rejection_reason)** |
| `pix_message`         | string | Mensagem a ser enviada junto à transferência Pix                                   | 140                                                                |
| `updated_at`          | string | Data e hora da última atualização do agendamento.                                  | 20                                                                 |
| `created_at`          | string | Data e hora de criação do agendamento.                                             | 20                                                                 |

## Pix Schedule Status

| Enumerador                 | Descrição                                                                                      |
|----------------------------|------------------------------------------------------------------------------------------------|
| **scheduled**              | Transação agendada                                                                             |
| **sent**                   | Agendamento concluído e enviado com sucesso. Estado final                                      |
| **rejected**               | Agendamento rejeitado durante criação ou execução. Estado final                                |
| **cancelled**              | Agendamento cancelado por solicitação de cliente. Estado final                                 |
| **pending_2fa_approval**   | Pendente de aprovação por autenticação de dois fatores                                         |
| **pending_creation**       | Agendamento em processo de criação (Estado transitório para agendamento em lote)               |
| **waiting_batch_approval** | Agendamento criado e vinculado a um lote aguardando aprovação por autenticação de dois fatores |

### Schedule Transfer Object

| Campo                 | Tipo   | Descrição                                                                                   | Caracteres                                                          |
|-----------------------|--------|---------------------------------------------------------------------------------------------|---------------------------------------------------------------------|
| `pix_transfer_key`    | uuidv4 | Chave única de identificação da transferência Pix no sistema QI.                            | 36                                                                  |
| `end_to_end_id` *     | string | Chave de idempotência de uma transação Pix dentro do SPI (Sistema de Pagamento Instantâneo) | 32                                                                  |
| `pix_transfer_status` | string | Status da transação.                                                                        | [Enumeradores pix_transfer_status](#enumerador-pix-transfer-status) |         |
| `created_at`          | string | Data e hora de criação da transação.                                                        | 20                                                                  |

### Enumerador Pix Transfer Status

| Enumerador   | Descrição                                           |
|--------------|-----------------------------------------------------|
| **sent**     | Transação enviada com sucesso. Estado final         |
| **rejected** | Transação rejeitada durante execução. Estado final  |
| **pending**  | Transação pendente de conclusão. Estado Transitório |

### Objeto target_account

| Campo                   | Tipo       | Descrição                                                                                               | Caracteres                                                        |
|-------------------------|------------|---------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|
| `account_branch`        | string     | Agência da conta                                                                                        | 6                                                                 |
| `account_digit`         | string     | Dígito da conta                                                                                         | 1                                                                 |
| `account_number`        | string     | Número da conta                                                                                         | 20                                                                |
| `owner_document_number` | string     | CPF ou CNPJ (apenas números) do titular da conta                                                        | 14                                                                |
| `owner_name`            | string     | Nome do titular da conta                                                                                | 150                                                               |
| `owner_person_type`     | enumerator | Identificador de que o dono da conta enviada é uma pessoa física ou jurídica                            | **[Enumerador owner_person_type](#enumerador-owner_person_type)** |                                                    |
| `owner_name`            | string     | Nome do titular da conta                                                                                | 150                                                               |
| `account_type`          | enumerator | Tipo da conta                                                                                           | **[Enumerador account_type](#enumerador-account_type)**           |
| `ispb`                  | string     | Código de oito dígitos que identifica os bancos no sistema de transferência de reserva do Banco Central | 8                                                                 |
| `pix_key`               | string     | Chave pix alvo do agendamento                                                                           | 100                                                               |

### Enumerador owner_person_type

| Enum        | Description     |
|-------------|-----------------|
| **natural** | Pessoa física   |
| **legal**   | Pessoa jurídica |

### Enumerador account_type

| Enumerador           | Descrição           |
|----------------------|---------------------|
| **checking_account** | Conta Corrente      |
| **salary_account**   | Conta Salário       |
| **saving_account**   | Conta Poupança      |
| **payment_account**  | Conta de Pagamentos |

### Enumeradores rejection_reason

| Enumerador                                          | Descrição                                                                 |
|-----------------------------------------------------|---------------------------------------------------------------------------|
| `target_creation_error`                             | Erro na criação do agendamento                                         |
| `limit_date_for_approval_surpassed`                 | Data limite para aprovação ultrapassada                                  |
| `limit_date_for_batch_approval_surpassed`           | Data limite para aprovação de lote ultrapassada                          |
| `max_tries_exceeded`                                | Número máximo de tentativas excedido                                     |
| `rejection_by_transfer`                             | Rejeição pela transferência                                              |
| `target_change`                                     | Mudança na conta destino                                                  |
| `invalid_pix_key`                                   | Chave Pix inválida                                                        |
| `max_token_validation_attempts_exceeded`            | Número máximo de tentativas de validação de token excedido               |
| `error_sending_token`                               | Erro ao enviar token                                                     |
| `max_token_validation_attempts_exceeded_for_batch`  | Número máximo de tentativas de validação de token para lote excedido     |

---

# Aprovar Transação em Lote com Autenticação de Dois Fatores

URL: /documentation/baas/pix/batch/aprovar_transacao_em_lote_pix_2fa

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_transfer_batch/ PIX_TRANSFER_BATCH_KEY /validate_token
MÉTODO PUT

### Path Params

| Campo                    | Tipo   | Descrição                                              | Caracteres |
|--------------------------|--------|--------------------------------------------------------|------------|
| `account_key`            | uuidv4 | Chave única de identificação da conta.                 | 36         |
| `pix_transfer_batch_key` | uuidv4 | Chave única de identificação da transação em lote pix. | 36         |

## Autenticação via Email e SMS

Request Body

```json
{
  "token": "329adf"
}
```

## Autenticação via Dispositivo

Para aprovar e finalizar a autenticação via dispositivo, a requisição deve ser enviada com um payload vazio. A validação ocorre internamente, sem necessidade de informações adicionais no corpo da requisição. É importante destacar que este endpoint só deve ser utilizado após a [solicitação de transação em lote](./solicitacao_de_transacao_em_lote_pix_2fa.md) ter sido iniciada.

Request Body

```json
{

}
```

### Body Params

| Campo   | Tipo   | Descrição                                                                                                                              | Caracteres |
|---------|--------|----------------------------------------------------------------------------------------------------------------------------------------|------------|
| `token` | string | Código de autenticação enviado ao aprovador de movimentações da conta **obrigatório para TFA via SMS ou e-mail**                       | 6          |

## Response

STATUS 201

Response Body: Transferência Enviada

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_batch_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "pix_transfer_batch_status": "approved"
}
```

STATUS 4xx

Response Body: Transferência Rejeitada

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {
    "pix_transfer_batch_data": {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "pix_transfer_batch_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "pix_transfer_batch_status": "rejected"
    }
  }
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                           | Descrição (eng)<br/>`description`                                                                        | Descrição (ptbr)<br/>`translation`                                                   |
|--------------------------|----------------------|----------------------------------------------|----------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------|
| 404                      | PXT000178            | Pix Transfer Batch not found                 | A pix_transfer_batch not found                                                                           | Uma pix_transfer_batch não encontrada                                                |
| 400                      | PXT000180            | Invalid Status                               | Pix transfer Batch not in pending_2fa_approval status                                                    | Pix transfer em lote não está pendente de aprovação por autenticação de dois fatores |
| 400                      | PXT000171            | Number of token validation attempts exceeded | The maximum number of failed token validation attempts has been reached                                  | Número máximo de tentativas de validação de token atingida                           |
| 400                      | PXT000172            | Token Expired                                | Token has expired. Resend token or recreate transferToken has expired. Resend token or recreate transfer | Token expirado. Reenvie token ou recrie a transferência                              |
| 400                      | PXT000173            | Incorrect Token                              | Token sent does not match expected                                                                       | Token enviado não condiz com, o esperado                                             |
| 400                      | PXT000189            | Token Required                               | A token is required for SMS or email validation.                                                         | Um token é necessário para validação via SMS ou email.                               |

---

# Introdução a Transação em Lote Pix

URL: /documentation/baas/pix/batch/introducao_a_transacao_em_lote_pix

A QI Tech oferece a possibilidade de realizar várias transações pix com uma única chamada. Nesse sistema as transações
são realizadas de forma assíncrona. Caso na chamada inicial seja retornado um **http status 4xx**, nenhuma das
transações será realizada. Após a solicitação, o parceiro integrador receberá um webhook para cada transação informando
o status final da tentativa, podendo ser **rejected** ou **sent**.

## Autenticação de Dois Fatores

Assim como em transações pix, parceiros integradores com configuração de autenticação de dois fatores devem enviar o
objeto `tfa_info` com as informações de contato e envio de token.

---

# Listar Transações de um lote de uma conta

URL: /documentation/baas/pix/batch/listar_transacoes_de_um_lote_de_transacoes_pix

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_transfer_batch/ PIX_TRANSFER_BATCH_KEY /pix_transfers
MÉTODO GET

### Path Params

| Campo                    | Tipo   | Descrição                                          | Caracteres |
|--------------------------|--------|----------------------------------------------------|------------|
| `account_key`            | uuidv4 | Chave única de identificação da conta.             | 36         |
| `pix_transfer_batch_key` | uuidv4 | Chave única de identificação da transação em lote. | 36         |

### Query Params

| Campo                       | Tipo    | Descrição                                                               | Caracteres                                                        |
|-----------------------------|---------|-------------------------------------------------------------------------|-------------------------------------------------------------------|
| `request_control_key`       | uuidv4  | Chave única de identificação da request utilizada pelo cliente.         | 36                                                                |
| `pix_transfer_batch_status` | string  | Status da transação Pix.                                                | [Enumerador pix_transfer_status](#enumerador-pix_transfer_status) |
| `page`                      | integer | Número da página requisitada. 1 por padrão                              |                                                                   |
| `page_size`                 | integer | Tamanho da página requisitada na consulta. 30 por padrão e valor máximo | Valor máximo de 30                                                |

### Enumerador pix_transfer_status

| Enumerador               | Descrição                                                |
|--------------------------|----------------------------------------------------------|
| **sent**                 | Transferência Pix realizada com sucesso.                 |
| **pending**              | Transferência Pix pendente.                              |
| **pending_2fa_approval** | Transferência Pix pendente de aprovação por dois fatores |
| **rejected**             | Transferência Pix rejeitada.                             |

### Response

STATUS 200

Response Body

```json
{
  "data": [
    {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "end_to_end_id": "E32402502202405081755SxyT2DDcVwc",
      "pix_transfer_status": "sent",
      "created_at": "2021-10-22T20:30:23.459Z"
    },
    {
      "request_control_key": "697c07c3-5398-48d2-a418-853323f85f97",
      "pix_transfer_key": "e95eabdb-4520-4c3d-a76f-99cb5b64724b",
      "end_to_end_id": "E32402502202405081755SxyT14Dtvwa",
      "pix_transfer_status": "sent",
      "created_at": "2021-10-22T20:30:23.459Z"
    },
    {
      "request_control_key": "ca35c526-b5a0-40d7-8c56-8566c77a34f4",
      "pix_transfer_key": "58d2fa9e-42ec-4779-b2fc-14ec98cbdca8",
      "end_to_end_id": "E32402502202405081755SsbT7DDcVwb",
      "pix_transfer_status": "rejected",
      "created_at": "2021-10-22T20:30:23.459Z"
    }
  ],
  "pagination": {
    "current_page": 1,
    "rows_per_page": 30
  }
}

```

---

# Listar Transações em Lote de uma conta

URL: /documentation/baas/pix/batch/listar_transacoes_em_lote_pix_de_uma_conta

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_transfer_batches
MÉTODO GET

### Path Params

| Campo         | Tipo   | Descrição                              | Caracteres |
|---------------|--------|----------------------------------------|------------|
| `account_key` | uuidv4 | Chave única de identificação da conta. | 36         |

### Query Params

| Campo                 | Tipo    | Descrição                                                               | Caracteres         |
|-----------------------|---------|-------------------------------------------------------------------------|--------------------|
| `request_control_key` | uuidv4  | Chave única de identificação da request utilizada pelo cliente.         | 36                 |
| `date_from`           | string  | Data inicial. Formato "YYYY-MM-DD"                                      |                    |
| `date_to`             | string  | Data final. Formato "YYYY-MM-DD"                                        |                    |
| `page`                | integer | Número da página requisitada. 1 por padrão                              |                    |
| `page_size`           | integer | Tamanho da página requisitada na consulta. 30 por padrão e valor máximo | Valor máximo de 30 |

### Response

STATUS 200

Response Body

```json
{
  "data": [
    {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "pix_transfer_batch_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "pix_transfer_batch_status": "approved"
    },
    {
      "request_control_key": "939d1503-aa5a-49a6-ae3b-ff84122a6dd3",
      "pix_transfer_batch_key": "03cf9181-0eb9-480e-8bb4-66a5a9a6410e",
      "pix_transfer_batch_status": "rejected"
    },
    {
      "request_control_key": "43a14f3a-b2af-4a0e-8a74-70af2fca74a9",
      "pix_transfer_batch_key": "94ab9fad-9c65-4117-b9c3-a47b1269508f",
      "pix_transfer_batch_status": "approved"
    }
  ],
  "pagination": {
    "current_page": 1,
    "next_page": null,
    "rows_per_page": 30
  }
}

```

# Consultar Transação em Lote

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_transfer_batch/ PIX_TRANSFER_BATCH_KEY
MÉTODO GET

### Path Params

| Campo                    | Tipo   | Descrição                                          | Caracteres |
|--------------------------|--------|----------------------------------------------------|------------|
| `account_key`            | uuidv4 | Chave única de identificação da conta.             | 36         |
| `pix_transfer_batch_key` | uuidv4 | Chave única de identificação da transação em lote. | 36         |

### Response

STATUS 200

Response Body

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_batch_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "pix_transfer_batch_status": "approved"
}
```

---

# Solicitar reenvio de token para uma Transação Pix em Lote

URL: /documentation/baas/pix/batch/solicitacao_de_reenvio_de_token_para_lote

Um novo token será gerado e enviado para o aprovador de movimentação da conta. Caso o número limite de tentativas de
validação do token tenha sido excedida, não será permitido o reenvio.

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_transfer_batch/ PIX_TRANSFER_BATCH_KEY /resend_token
MÉTODO PATCH

### Path Params

| Campo                      | Tipo   | Descrição                                          | Caracteres |
|----------------------------|--------|----------------------------------------------------|------------|
| `account_key` *            | uuidv4 | Chave única de identificação da conta.             | 36         |
| `pix_transfer_batch_key` * | uuidv4 | Chave única de identificação da transação em lote. | 36         |

Request Body

```json
{
  "contact_type": "sms"
}
```

### Body Params

| Campo          | Tipo   | Descrição                                                                                 | Caracteres |
|----------------|--------|-------------------------------------------------------------------------------------------|------------|
| `contact_type` | enumerator | Forma de envio do token de autenticação | **[Enumerador contact_type](#enumerador-contact_type)** |

:::info Informação
Caso não seja enviado um `contact_type`, o token será enviado da forma solicitada originalmente.
:::

| Enumerador | Descrição                                         |
|------------|---------------------------------------------------|
| **sms**    | Envio por Mensagem de Texto para telefone celular |
| **email**  | Envio por correio eletrônico                      |

## Response

STATUS 202

Response Body: Transação Solicitada

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_batch_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "pix_transfer_status": "pending_2fa_approval"
}
```

STATUS 4xx

Response Body: Transferência Rejeitada

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {
    "pix_transfer_data": {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "pix_transfer_batch_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "pix_transfer_status": "rejected"
    }
  }
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                           | Descrição (eng)<br/>`description`                                                                        | Descrição (ptbr)<br/>`translation`                                                         |
|--------------------------|----------------------|----------------------------------------------|----------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                  | Schema Error                                                                                             | Erro de Schema                                                                             |
| 404                      | PXT000004            | Account not found                            | Account not found for: \{account_datum\}                                                                 | Conta não encontrada para: \{account_datum\}                                               |
| 400                      | PXT000176            | Error Sending Token                          | An error occurred while resending token and its being investigated                                       | Um erro ocorreu ao reenviar token e está sendo investigado                                 |
| 404                      | PXT000178            | Pix Transfer Batch not found                 | A pix_transfer_batch not found                                                                           | Uma pix_transfer_batch não encontrada                                                      |
| 400                      | PXT000180            | Invalid Status                               | Pix transfer Batch not in pending_2fa_approval status                                                    | Pix transfer em lote não está pendente de aprovação por duṕla autenticação |
| 400                      | PXT000171            | Number of token validation attempts exceeded | The maximum number of failed token validation attempts has been reached                                  | Número máximo de tentativas de validação de token atingida                                 |
| 400                      | PXT000172            | Token Expired                                | Token has expired. Resend token or recreate transferToken has expired. Resend token or recreate transfer | Token expirado. Reenvie token ou recrie a transferência                                    |
| 400                      | PXT000173            | Incorrect Token                              | Token sent does not match expected                                                                       | Token enviado não condiz com, o esperado                                                   |

---

# Realizar Transação Pix em Lote

URL: /documentation/baas/pix/batch/solicitacao_de_transacao_em_lote_pix

A QI Tech oferece a possibilidade de realizar várias transações pix com uma única chamada. Nesse sistema as transações
são realizadas de forma assíncrona. Caso na chamada inicial seja retornado um **http status 4xx**, nenhuma das
transações será realizada. Após a solicitação, o parceiro integrador receberá um webhook para cada transação informando
o status final da tentativa, podendo ser **rejected** ou **sent**.

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_transfer_batch
MÉTODO POST

```json
{
  "request_control_key": "6e4fc980-f8a1-4462-b6e2-d8a49f0ac055",
  "pix_transfers": [
    {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "pix_transfer_type": "key",
      "target_pix_key": "target_pix_key@email.com",
      "transaction_amount": 500.65,
      "end_to_end_id": "E73856642202309201429bZKfklNlbwu",
      "pix_message": "Ola Mundo"
    },
    {
      "request_control_key": "5fb20e2e-78e3-4ca7-bb36-515640ec2e78",
      "pix_transfer_type": "manual",
      "target_account": {
        "account_branch": "0001",
        "account_digit": "3",
        "account_number": "12345678",
        "owner_document_number": "32402502000135",
        "owner_name": "Qi Tech",
        "account_type": "checking_account",
        "ispb": "32402502"
      },
      "transaction_amount": 500.65,
      "pix_message": "Ola Mundo"
    },
    {
      "request_control_key": "10ad6e08-1a4c-403c-8122-178b0acf1dfa",
      "pix_transfer_type": "static_qr_code",
      "transaction_amount": 500.65,
      "end_to_end_id": "E73856642202309201429bZKfklNlbrb",
      "receiver_conciliation_id": "REC00000000000000000000009459463343",
      "target_pix_key": "target_pix_key@email.com",
      "pix_message": "Ola Mundo"
    }
  ]
}
```

## Path Params

| Campo         | Tipo   | Descrição                              | Caracteres |
|---------------|--------|----------------------------------------|------------|
| `account_key` | uuidv4 | Chave única de identificação da conta. | 36         |

### Body Params

| Campo                   | Tipo   | Descrição                                                                          | Caracteres                                               |
|-------------------------|--------|------------------------------------------------------------------------------------|----------------------------------------------------------|
| `request_control_key` * | uuidv4 | Chave única de identificação da request utilizada pelo cliente no formato uuid v4. | 36                                                       | 
| `pix_transfers` *       | array  | Lista de objetos pix_transfer vinculados ao lote.                                  | lista de **[Objeto pix_transfer](#objeto-pix_transfer)** |

### Objeto pix_transfer

| Campo                      | Tipo       | Descrição                                                                                                                                                                                                                                        | Caracteres                                                        |
|----------------------------|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|
| `request_control_key` *    | uuidv4     | Chave única de identificação da request utilizada pelo cliente no formato uuid v4.                                                                                                                                                               | 36                                                                | 
| `pix_transfer_type` *      | enumerator | Tipo do pix a ser realizado.                                                                                                                                                                                                                     | **[Enumerador pix_transfer_type](#enumerador-pix_transfer_type)** |
| `target_pix_key`           | string     | Chave pix da conta a ser enviada a transação.                                                                                                                                                                                                    | 100                                                               |
| `target_account`           | Object     | Conta destino - Só deve ser enviada em transferências com `pix_transfer_type` do tipo **manual**.                                                                                                                                                | **[Objeto target_account](#objeto-target_account)**               |
| `receiver_conciliation_id` | string     | Identicação de conciliação do recebedor.                                                                                                                                                                                                         | 35                                                                |
| `transaction_amount` *     | number     | Valor da transferência.                                                                                                                                                                                                                          | 10                                                                |
| `end_to_end_id`            | string     | Chave de idempotência de uma transação Pix dentro do SPI (Sistema de Pagamento Instantâneo). Esta chave é retornada na consulta de chave Pix. Só deve ser enviado se o `pix_transfer_type` for **key**, **static_qr_code** ou **static_qr_code** | 32                                                                |
| `pix_message`              | string     | Mensagem a ser enviada junto à transferência Pix.                                                                                                                                                                                                | 140                                                               |

### Objeto target_account

| Campo                     | Tipo       | Descrição                                           | Caracteres                                              |
|---------------------------|------------|-----------------------------------------------------|---------------------------------------------------------|
| `account_branch` *        | string     | Agência da conta.                                   | 4                                                       |
| `account_digit` *         | string     | Dígito da conta.                                    | 1                                                       |
| `account_number` *        | string     | Número da conta.                                    | 20                                                      |
| `owner_document_number` * | string     | CPF ou CNPJ (apenas números) do titular da conta.   | 14                                                      |
| `owner_name` *            | string     | Nome do titular da conta.                           | 150                                                     |
| `account_type`*           | enumerator | Tipo da conta.                                      | **[Enumerador account_type](#enumerador-account_type)** |
| `ispb` *                  | string     | Base no CNPJ da instituição financeira (8 dígitos). | 8                                                       |

### Enumerador account_type

| Enumerador           | Descrição           |
|----------------------|---------------------|
| **checking_account** | Conta Corrente      |
| **salary_account**   | Conta Salário       |
| **saving_account**   | Conta Poupança      |
| **payment_account**  | Conta de Pagamentos |

### Enumerador pix_transfer_type

| Enumerador          | Descrição                                                                                                                                                                                                                 |
|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **manual**          | Pix utilizando os dados da conta destino. Obrigatório enviar `target_account`                                                                                                                                             |
| **key**             | Pix utilizando uma chave pix. Obrigatório enviar `target_pix_key`. Recomendado enviar `end_to_end_id` da [consulta de chave](/documentation/pix_indireto/movimentacoes/consultar_chave_pix) pix caso tenha sido realizada |
| **static_qr_code**  | Pix utilizando um QR code estático. Obrigatório enviar o `end_to_end_id` retornado na [decodificação do QR code](/documentation/pix/decodificar_qr_code)                                                                  |
| **dynamic_qr_code** | Pix utilizando um QR code dinâmico. Obrigatório enviar o `end_to_end_id` retornado na [decodificação do QR code](/documentation/pix/decodificar_qr_code)                                                                  |

## Response

STATUS 201

Response Body: Transferência em lote Aprovada

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_batch_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "pix_transfer_batch_status": "approved"
}
```

### Enumerador pix_transfer_batch_status

| Enumerador               | Descrição                                                            |
|--------------------------|----------------------------------------------------------------------|
| **approved**             | Transferência em lote aprovada e transações em processo de execução. |
| **rejected**             | Transferência em lote rejeitada                                      |
| **pending_2fa_approval** | Transferência em lote pendente de aprovação manual                   |

STATUS 4xx

Response Body: Transferência Rejeitada

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {
    "pix_transfer_batch_data": {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "pix_transfer_batch_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "pix_transfer_batch_status": "rejected"
    }
  }
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

:::info Informação
Os erros anteriormente listados para [transferência Pix](/documentation/baas/pix/realizar_transferencia) são
passiveis de serem retornados por este endpoint.
:::

---

# Realizar Transação Pix em Lote com Autenticação de Dois Fatores

URL: /documentation/baas/pix/batch/solicitacao_de_transacao_em_lote_pix_2fa

A QI Tech oferece a possibilidade de realizar várias transações pix com uma única chamada. Nesse sistema as transações
são realizadas de forma assíncrona. Caso na chamada inicial seja retornado um **http status 4xx**, nenhuma das
transações será realizada. Após a solicitação, o parceiro integrador receberá um webhook para cada transação informando
o status final da tentativa, podendo ser **rejected** ou **sent**.

Neste tipo de transação, é necessário a confirmação do pagamento via token enviado à pessoa com poderes de aprovação de
movimentação na conta credora.

A solicitação de transação Pix por parceiros integradores configurados para a utilização de autenticação de dois fatores
é realizada de forma similar ao descrito
em [realizar transação pix em lote](/documentation/baas/pix/batch/solicitacao_de_transacao_em_lote_pix). A diferença
ocorre na adição do objeto `tfa_info`, contento informações sobre o aprovador da transferência e a forma de contato, e o
status de uma solicitação bem sucedida que será sempre **pending_2fa_approval**.

O evento de notificação para o envio de `token` ao aprovador é **baas.token_validation.pix_transfer.batch**. É
possível [personalizar](/documentation/notificacoes/template) a mensagem enviada.

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_transfer_batch
MÉTODO POST

## Autenticação via Email e SMS

Request Body: Transferência em Lote com TFA por SMS ou Email

```json
{
  "request_control_key": "6e4fc980-f8a1-4462-b6e2-d8a49f0ac055",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  },
  "pix_transfers": [
    {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "pix_transfer_type": "key",
      "target_pix_key": "target_pix_key@email.com",
      "transaction_amount": 500.65,
      "end_to_end_id": "E73856642202309201429bZKfklNlbwu",
      "pix_message": "Ola Mundo"
    },
    {
      "request_control_key": "5fb20e2e-78e3-4ca7-bb36-515640ec2e78",
      "pix_transfer_type": "manual",
      "target_account": {
        "account_branch": "0001",
        "account_digit": "3",
        "account_number": "12345678",
        "owner_document_number": "32402502000135",
        "owner_name": "Qi Tech",
        "account_type": "checking_account",
        "ispb": "32402502"
      },
      "transaction_amount": 500.65,
      "pix_message": "Ola Mundo"
    },
    {
      "request_control_key": "10ad6e08-1a4c-403c-8122-178b0acf1dfa",
      "pix_transfer_type": "static_qr_code",
      "transaction_amount": 500.65,
      "end_to_end_id": "E73856642202309201429bZKfklNlbrb",
      "receiver_conciliation_id": "REC00000000000000000000009459463343",
      "target_pix_key": "target_pix_key@email.com",
      "pix_message": "Ola Mundo"
    }
  ]
}
```

## Autenticação via Dispositivo

Além das formas já existentes de autenticação via **sms** e **email**, é possível autenticar a transação utilizando um dispositivo [previamente cadastrado](/documentation/baas/dispositivo/create/solicitacao_cadastro_dispositivo). Nesse caso, o `session_id` deve ser obtido na **Device Scan** e enviado no `tfa_info`.

Request Body: Transferência em Lote com TFA por Dispositivo

```json
{
  "request_control_key": "6e4fc980-f8a1-4462-b6e2-d8a49f0ac055",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "session_id": "b2f18d3a-67c2-4a7f-98e5-1d3f5c6b8a72",
    "contact_type": "device"
  },
  "pix_transfers": [
    {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "pix_transfer_type": "key",
      "target_pix_key": "target_pix_key@email.com",
      "transaction_amount": 500.65,
      "end_to_end_id": "E73856642202309201429bZKfklNlbwu",
      "pix_message": "Ola Mundo"
    },
    {
      "request_control_key": "5fb20e2e-78e3-4ca7-bb36-515640ec2e78",
      "pix_transfer_type": "manual",
      "target_account": {
        "account_branch": "0001",
        "account_digit": "3",
        "account_number": "12345678",
        "owner_document_number": "32402502000135",
        "owner_name": "Qi Tech",
        "account_type": "checking_account",
        "ispb": "32402502"
      },
      "transaction_amount": 500.65,
      "pix_message": "Ola Mundo"
    },
    {
      "request_control_key": "10ad6e08-1a4c-403c-8122-178b0acf1dfa",
      "pix_transfer_type": "static_qr_code",
      "transaction_amount": 500.65,
      "end_to_end_id": "E73856642202309201429bZKfklNlbrb",
      "receiver_conciliation_id": "REC00000000000000000000009459463343",
      "target_pix_key": "target_pix_key@email.com",
      "pix_message": "Ola Mundo"
    }
  ]
}
```

## Path Params

| Campo         | Tipo   | Descrição                              | Caracteres |
|---------------|--------|----------------------------------------|------------|
| `account_key` | uuidv4 | Chave única de identificação da conta. | 36         |

### Body Params

| Campo                   | Tipo   | Descrição                                                                          | Caracteres                                               |
|-------------------------|--------|------------------------------------------------------------------------------------|----------------------------------------------------------|
| `request_control_key` * | uuidv4 | Chave única de identificação da request utilizada pelo cliente no formato uuid v4. | 36                                                       | 
| `pix_transfers` *       | array  | Lista de objetos pix_transfer vinculados ao lote.                                  | lista de **[Objeto pix_transfer](#objeto-pix_transfer)** |
| `tfa_info`*             | Object | Objeto contendo o documento da pessoa aprovadora da conta e a forma de contato.    | **[Objeto tfa_info](#objeto-tfa_info)**                  |

### Objeto tfa_info

| Campo                       | Tipo   | Descrição                                                                                                                        | Caracteres |
|-----------------------------|--------|----------------------------------------------------------------------------------------------------------------------------------|------------|
| `approver_document_number`* | string | Número de documento da pessoa aprovadora da conta.                                                                               | 11         |
| `session_id`                | string | Chave única de identificação da sessão do dispositivo no formato UUID v4 (obrigatório para TFA via dispositivo).                 | 36         |
| `contact_type`*             | string | Forma de contato com a pessoa aprovadora da conta, podendo ser **sms**, **email** ou **device**                                  |            |

### Objeto pix_transfer

| Campo                      | Tipo       | Descrição                                                                                                                                                                                                                                        | Caracteres                                                        |
|----------------------------|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|
| `request_control_key` *    | uuidv4     | Chave única de identificação da request utilizada pelo cliente no formato uuid v4.                                                                                                                                                               | 36                                                                | 
| `pix_transfer_type` *      | enumerator | Tipo do pix a ser realizado.                                                                                                                                                                                                                     | **[Enumerador pix_transfer_type](#enumerador-pix_transfer_type)** |
| `target_pix_key`           | string     | Chave pix da conta a ser enviada a transação.                                                                                                                                                                                                    | 100                                                               |
| `target_account`           | Object     | Conta destino - Só deve ser enviada em transferências com `pix_transfer_type` do tipo **manual**.                                                                                                                                                | **[Objeto target_account](#objeto-target_account)**               | 10 |
| `receiver_conciliation_id` | string     | Identicação de conciliação do recebedor.                                                                                                                                                                                                         | 35                                                                |
| `transaction_amount` *     | number     | Valor da transferência.                                                                                                                                                                                                                          | 10                                                                |
| `end_to_end_id`            | string     | Chave de idempotência de uma transação Pix dentro do SPI (Sistema de Pagamento Instantâneo). Esta chave é retornada na consulta de chave Pix. Só deve ser enviado se o `pix_transfer_type` for **key**, **static_qr_code** ou **static_qr_code** | 32                                                                |
| `pix_message`              | string     | Mensagem a ser enviada junto à transferência Pix.                                                                                                                                                                                                | 140                                                               |

### Objeto target_account

| Campo                     | Tipo       | Descrição                                           | Caracteres                                              |
|---------------------------|------------|-----------------------------------------------------|---------------------------------------------------------|
| `account_branch` *        | string     | Agência da conta.                                   | 4                                                       |
| `account_digit` *         | string     | Dígito da conta.                                    | 1                                                       |
| `account_number` *        | string     | Número da conta.                                    | 20                                                      |
| `owner_document_number` * | string     | CPF ou CNPJ (apenas números) do titular da conta.   | 14                                                      |
| `owner_name` *            | string     | Nome do titular da conta.                           | 150                                                     |
| `account_type`*           | enumerator | Tipo da conta.                                      | **[Enumerador account_type](#enumerador-account_type)** |
| `ispb` *                  | string     | Base no CNPJ da instituição financeira (8 dígitos). | 8                                                       |

### Enumerador account_type

| Enumerador           | Descrição           |
|----------------------|---------------------|
| **checking_account** | Conta Corrente      |
| **salary_account**   | Conta Salário       |
| **saving_account**   | Conta Poupança      |
| **payment_account**  | Conta de Pagamentos |

### Enumerador pix_transfer_type

| Enumerador          | Descrição                                                                                                                                                                                                                 |
|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **manual**          | Pix utilizando os dados da conta destino. Obrigatório enviar `target_account`                                                                                                                                             |
| **key**             | Pix utilizando uma chave pix. Obrigatório enviar `target_pix_key`. Recomendado enviar `end_to_end_id` da [consulta de chave](/documentation/pix_indireto/movimentacoes/consultar_chave_pix) pix caso tenha sido realizada |
| **static_qr_code**  | Pix utilizando um QR code estático. Obrigatório enviar o `end_to_end_id` retornado na [decodificação do QR code](/documentation/pix/decodificar_qr_code)                                                                  |
| **dynamic_qr_code** | Pix utilizando um QR code dinâmico. Obrigatório enviar o `end_to_end_id` retornado na [decodificação do QR code](/documentation/pix/decodificar_qr_code)                                                                  |

## Response

STATUS 201

Response Body: Transferência em Lote Solicitada

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_batch_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "pix_transfer_batch_status": "pending_2fa_approval"
}
```

### Enumerador pix_transfer_batch_status

| Enumerador               | Descrição                                                                  |
|--------------------------|----------------------------------------------------------------------------|
| **approved**             | Transferência em lote aprovada e transações em processo de execução.       |
| **rejected**             | Transferência em lote rejeitada                                            |
| **pending_2fa_approval** | Agendamento em lote pendente de aprovação por autenticação de dois fatores |

STATUS 4xx

Response Body: Transferência Rejeitada

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {
    "pix_transfer_batch_data": {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "pix_transfer_batch_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "pix_transfer_batch_status": "rejected"
    }
  }
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

:::info Informação
Os erros anteriormente listados para [transferência Pix](/documentation/baas/pix/realizar_transferencia) são
passiveis de serem retornados por este endpoint além dos erros listados abaixo.
:::

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                 | Descrição (eng)<br/>`description`                                     | Descrição (ptbr)<br/>`translation`                               |
|--------------------------|----------------------|------------------------------------|-----------------------------------------------------------------------|------------------------------------------------------------------|
| 400                      | PXT000168            | No approver permission             | Given document number does not belong to an approver for this account | Número de documento enviado não pertence a um aprovador da conta |
| 400                      | PXT000169            | tfa_info is required               | Client must send object tfa_info                                      | Cliente deve enviar objeto tfa_info                              |
| 400                      | PXT000170            | Error occurred while sending token | An unexpected error occurred while sending token                      | Um erro inexperado ocorreu ao tentar enviar token                |

---

# Consulta de Dados de Chave Pix no Banco Central

URL: /documentation/baas/pix/consultar_chave_pix

## Request

ENDPOINT /pix_key/ PIX_KEY
MÉTODO GET

### Request Path Params

| Campo       | Tipo   | Descrição                      | Caracteres |
|-------------|--------|--------------------------------|------------|
| `pix_key` * | string | Chave Pix que será consultada. | 77         |

:::info Tipos de Chave Pix
A “pix_key” pode ser um CPF, CNPJ, E-mail, Celular ou uma Chave Aleatória (UUID), seguindo as seguintes formatações:

**CPF**: Número inteiro com 11 dígitos.

**CNPJ**: Número inteiro com 14 dígitos.

**E-mail**: Texto contendo ao menos um “@”.

**Celular**: Texto contendo os seguintes valores: “+55” + “DDD do celular“ + “Número Inteiro do Celular com no mínimo 8
e no máximo 9 dígitos”. Ex: “+5511987654321“.

**Chave Aleatória**: UUID4.
:::

### Request Query Params

| Campo             | Tipo   | Descrição                                                                                                                                                                                            | Caracteres |
|-------------------|--------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|
| `account_key` *   | uuidv4 | Chave única de identificação da conta.                                                                                                                                                               | 36         |
| `document_number` | string | CPF/CNPJ do titular da Chave Pix. Ao passar este parâmetro o campo `is_pix_key_owner` será retornado com um valor booleano identificando se o CPF/CNPJ informado é igual ao do titular da Chave Pix. | 14 ou 11   |

:::info Utilização de tokens de consulta
Para que o token de consulta de chave pix seja cobrado da pessoa titular da conta, é obrigatório que o `account_key`
seja enviado.
Caso não seja enviado o account_key, o token será cobrado do número de documento do parceiro integrador.
:::

## Response

STATUS 200

Response Body: Chave Ativa

```json
{
  "bank_code": "237",
  "end_to_end_id": "E3240250220230404185631R0kjZnC6G",
  "financial_institution": "BCO BRADESCO S.A.",
  "is_pix_key_owner": false,
  "ispb": "60746948",
  "owner_masked_document_number": "***.141.857-**",
  "owner_name": "Teste teste",
  "owner_person_type": "legal",
  "owner_trading_name": "Teste LTDA.",
  "pix_key": "teste@gmail.com"
}
```

| Campo                          | Tipo    | Descrição                                                                                                                                                                                                                                                                                     | Max. Caracteres                                                   |
|--------------------------------|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|
| `bank_code`                    | string  | Código do banco registrador da Chave Pix. Pode ser retornado como nulo, para instituições que não possuem código de banco                                                                                                                                                                     | 3                                                                 |
| `end_to_end_id`                | string  | Indentificador único da consulta da chave Pix no Bacen. Deve ser enviado na transferência Pix para que o token consumido na consulta seja recuperado.                                                                                                                                         | 32                                                                |
| `financial_institution`        | string  | Nome da instituição financeira registradora da Chave Pix.                                                                                                                                                                                                                                     | 200                                                               |
| `is_pix_key_owner`             | boolean | Será retornado um valor boleano, caso o parâmetro `document_number` seja passado na request. Este campo informa se o CPF/CNPJ informado no parâmetro `document_number` é o mesmo do titular da Chave Pix. Será retornado um valor nulo caso o parâmetro `document_number` não seja informado. | -                                                                 |
| `ispb`                         | string  | ISPB do Participate detentor da Chave Pix.                                                                                                                                                                                                                                                    | 8                                                                 |
| `owner_masked_document_number` | string  | Número de CPF mascarado ou CNPJ do titular da Chave Pix.                                                                                                                                                                                                                                      | 14                                                                |
| `owner_name`                   | string  | Nome do titular da Chave Pix.                                                                                                                                                                                                                                                                 | 120                                                               |
| `owner_person_type`            | enum    | Natureza jurídica do titular da Chave Pix.                                                                                                                                                                                                                                                    | [Enumeradores Owner Person Type](#enumeradores-owner_person_type) |
| `owner_trading_name`           | string  | Nome fantasia do titular da Chave Pix (somente para `owner_person_type=legal`).                                                                                                                                                                                                               | 100                                                               |
| `pix_key`                      | string  | Chave Pix.                                                                                                                                                                                                                                                                                    | -                                                                 |

### Enumeradores account_type

| Enumerador         | Descrição          |
|--------------------|--------------------|
| `payment`          | Conta de pagamento |
| `checking`         | Conta de corrente  |
| `savings`          | Conta poupança     |
| `saving`           | Conta poupança     |
| `salary`           | Conta salário      |
| `saving_account`   | Conta poupança     |
| `payment_account`  | Conta de pagamento |
| `checking_account` | Conta de corrente  |
| `salary_account`   | Conta salário      |
| `escrow`           | Conta Vinculada    |

:::info
Diferentes enumeradores podem significar o mesmo tipo de conta devido a informação retornada por diferentes
instituições.
:::

### Enumeradroes owner_person_type

| Enumerador | Descrição |
|------------|-----------|
| `natural`  | string    |
| `legal`    | string    |

STATUS 4XX

Response Body

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo"
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`           | Descrição (eng)<br/>`Description`                                   | Descrição (ptbr)<br/>`translation`                                |
|-------------|----------------------|------------------------------|---------------------------------------------------------------------|-------------------------------------------------------------------|
| 404         | PIX000017            | Pix Key Not Found            | Pix key \{pix_key\} not found.                                      | A chave pix \{pix_key\} não foi encontrada.                       |
| 403         | PIX000080            | Not enough permission        | The selected agent doesn't have permission to access this resource. | O agente selecionado não tem permissão para acessar este recurso. |
| 429         | PIX000081            | Rate Limit Exceeded          | Rate Limit Exceeded                                                 | Limite de requisições excedido                                    |
| 404         | PIX000083            | Pix Key not found            | Pix Key \{pix_key\} not found for Alias \{alias_key\}               | Chave Pix \{pix_key\} não encontrada para o Alias \{alias_key\}   |
| 400         | PIX000084            | Only one query param allowed | Only one query param allowed                                        | Somente um parâmetro de consulta é permitido                      |

---

# Consultar Transferências

URL: /documentation/baas/pix/consultar_transferencias

## Consultar Transação Pix por pix_transfer_key

### Request

ENDPOINT /account/ ACCOUNT_KEY /pix_transfer/ PIX_TRANSFER_KEY / PIX_TRANSFER_DIRECTION
MÉTODO GET

### Path Params

| Campo                      | Tipo       | Descrição                                             | Caracteres                                                                  |
|----------------------------|------------|-------------------------------------------------------|-----------------------------------------------------------------------------|
| `pix_transfer_direction` * | enumerator | Indicador do sentido da transação (entrada ou saída). | [Enumeradores pix_transfer_direction](#enumeradores-pix_transfer_direction) |
| `account_key` *            | uuidv4     | Chave única de identificação da conta QI.             | 36                                                                          |
| `pix_transfer_key` *       | uuidv4     | Chave única de identificação da transferência Pix.    | 36                                                                          |

### Enumeradores pix_transfer_direction

| Enumerador   | Descrição                    |
|--------------|------------------------------|
| **incoming** | Transferência Pix de entrada |
| **outgoing** | Transferência Pix de saída   |

### Response

STATUS 200

Response Body: Transferência Enviada (outgoing)

```json
{
  "request_control_key": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3",
  "pix_message": "Bom dia",
  "pix_transfer_type": "manual",
  "account_key": "fc6862c4-2b20-4057-8063-b8809866e494",
  "updated_at": "2021-10-22T20:30:23.459Z",
  "created_at": "2021-10-22T20:30:23.459Z",
  "target_account": {
    "account_branch": "0001",
    "account_digit": "3",
    "account_number": "12345678",
    "owner_document_number": "***02502000***",
    "owner_person_type": "legal",
    "owner_name": "Qi Tech",
    "account_type": "checking_account",
    "ispb": "32402502",
    "financial_institution_name": "QI SCD",
    "pix_key": null
  },
  "receiver_conciliation_id": null,
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "end_to_end_id": "E3240250220211022203051750897529",
  "pix_transfer_status": "sent",
  "transfer_amount": 126.97,
  "fee_amount": 0.0,
  "rejection_reason": null,
  "reversals": [
    {
      "end_to_end_id": "D35713491202309182058jlqdBkkHSWU",
      "transfer_amount": 0.01,
      "reversal_reason": "client_request",
      "pix_transfer_status": "received",
      "pix_transfer_key": "423866cd-0f3f-4cdd-904b-0d2e33273afd",
      "request_control_key": "7c5a1425-73eb-420e-b4fb-0ce3386c7d0a",
      "created_at": "2021-10-23T20:30.459Z"
    }
  ]
}

```

Response Body: Transferência Rejeitada (outgoing)

```json
{
  "request_control_key": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3",
  "pix_message": "Bom dia",
  "pix_transfer_type": "manual",
  "account_key": "fc6862c4-2b20-4057-8063-b8809866e494",
  "updated_at": "2021-10-22T20:30:23.459Z",
  "created_at": "2021-10-22T20:30:23.459Z",
  "target_account": {
    "account_branch": "0001",
    "account_digit": "3",
    "account_number": "12345678",
    "owner_document_number": "***02502000***",
    "owner_person_type": "legal",
    "owner_name": "Qi Tech",
    "account_type": "checking_account",
    "ispb": "32402502",
    "pix_key": null
  },
  "receiver_conciliation_id": null,
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "end_to_end_id": "E3240250220211022203051750897529",
  "pix_transfer_status": "rejected",
  "transfer_amount": 126.97,
  "fee_amount": 0.0,
  "error_code": "PXT000132",
  "error_description": "Target account number is invalid.",
  "error_translation": "Número da conta de destino é inexistente ou inválido.",
  "reversals": []
}

```

Response Body: Devolução Enviada (outgoing)

```json
{
  "request_control_key": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3",
  "pix_message": "Bom dia",
  "pix_transfer_type": "reversal",
  "account_key": "fc6862c4-2b20-4057-8063-b8809866e494",
  "updated_at": "2021-10-22T20:30:23.459Z",
  "created_at": "2021-10-22T20:30:23.459Z",
  "target_account": {
    "account_branch": "0001",
    "account_digit": "3",
    "account_number": "12345678",
    "owner_document_number": "***02502000***",
    "owner_person_type": "legal",
    "owner_name": "Qi Tech",
    "account_type": "checking_account",
    "ispb": "32402502",
    "pix_key": null
  },
  "receiver_conciliation_id": null,
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "end_to_end_id": "E3240250220211022203051750897529",
  "pix_transfer_status": "sent",
  "transfer_amount": 126.97,
  "fee_amount": 0.0,
  "rejection_reason": null,
  "reversals": [],
  "original_incoming_pix_transfer": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3"
}

```

Response Body: Transferência Recebida (incoming)

```json
{
  "request_control_key": null,
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "account_key": "fc6862c4-2b20-4057-8063-b8809866e494",
  "end_to_end_id": "E18236120202308111235s14fddf2801",
  "pix_transfer_status": "received",
  "receiver_conciliation_id": "745c28c780bc4822bbade86dd875d10b",
  "transfer_amount": 126.97,
  "fee_amount": 0.0,
  "source_account": {
    "account_branch": "0001",
    "account_digit": "3",
    "account_number": "12345678",
    "owner_document_number": "***02502000***",
    "owner_person_type": "legal",
    "owner_name": "Qi Tech",
    "account_type": "checking_account",
    "ispb": "32402502"
  },
  "pix_transfer_type": "dynamic_qr_code",
  "error_code": null,
  "error_description": null,
  "error_translation": null,
  "error_short_description": null,
  "reversals": []
}
```

Response Body: Devolução Recebida (incoming)

```json
{
  "request_control_key": null,
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "account_key": "fc6862c4-2b20-4057-8063-b8809866e494",
  "end_to_end_id": "E18236120202308111235s14fddf2801",
  "pix_transfer_status": "received",
  "receiver_conciliation_id": "745c28c780bc4822bbade86dd875d10b",
  "transfer_amount": 126.97,
  "fee_amount": 0.0,
  "source_account": {
    "account_branch": "0001",
    "account_digit": "3",
    "account_number": "12345678",
    "owner_document_number": "***02502000***",
    "owner_person_type": "legal",
    "owner_name": "Qi Tech",
    "account_type": "checking_account",
    "ispb": "32402502"
  },
  "pix_transfer_type": "reversal",
  "error_code": null,
  "error_description": null,
  "error_translation": null,
  "error_short_description": null,
  "reversals": [],
  "original_outgoing_pix_transfer": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3"
}
```

Response Body: Transferência Em Análise Manual (incoming)

```json
{
  "request_control_key": null,
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "account_key": "fc6862c4-2b20-4057-8063-b8809866e494",
  "end_to_end_id": "E18236120202308111235s14fddf2801",
  "pix_transfer_status": "in_manual_analysis",
  "receiver_conciliation_id": "745c28c780bc4822bbade86dd875d10b",
  "transfer_amount": 126.97,
  "fee_amount": 0.0,
  "source_account": {
    "account_branch": "0001",
    "account_digit": "3",
    "account_number": "12345678",
    "owner_document_number": "***02502000***",
    "owner_person_type": "legal",
    "owner_name": "Qi Tech",
    "account_type": "checking_account",
    "ispb": "32402502"
  },
  "pix_transfer_type": "dynamic_qr_code",
  "error_code": null,
  "error_description": null,
  "error_translation": null,
  "error_short_description": null,
  "reversals": []
}
```

Response Body: Transferência Rejeitada Pela Análise (incoming)

```json
{
  "request_control_key": null,
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "account_key": "fc6862c4-2b20-4057-8063-b8809866e494",
  "end_to_end_id": "E18236120202308111235s14fddf2801",
  "pix_transfer_status": "rejected_by_analysis",
  "receiver_conciliation_id": "745c28c780bc4822bbade86dd875d10b",
  "transfer_amount": 126.97,
  "fee_amount": 0.0,
  "source_account": {
    "account_branch": "0001",
    "account_digit": "3",
    "account_number": "12345678",
    "owner_document_number": "***02502000***",
    "owner_person_type": "legal",
    "owner_name": "Qi Tech",
    "account_type": "checking_account",
    "ispb": "32402502"
  },
  "pix_transfer_type": "dynamic_qr_code",
  "error_code": "PXT000194",
  "error_description": "Incoming pix transfer rejected by manual analysis",
  "error_translation": "Transferência de Pix de entrada rejeitada pela análise manual",
  "error_short_description": null,
  "reversals": []
}
```

Response Body: Transferência Rejeitada (incoming)

```json
{
  "request_control_key": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3",
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "account_key": "fc6862c4-2b20-4057-8063-b8809866e494",
  "end_to_end_id": "E18236120202308111235s14fddf2801",
  "pix_transfer_status": "rejected",
  "receiver_conciliation_id": "745c28c780bc4822bbade86dd875d10b",
  "transfer_amount": 126.97,
  "fee_amount": 0.0,
  "source_account": {
    "account_branch": "0001",
    "account_digit": "3",
    "account_number": "12345678",
    "owner_document_number": "***02502000***",
    "owner_person_type": "legal",
    "owner_name": "Qi Tech",
    "account_type": "checking_account",
    "ispb": "32402502"
  },
  "pix_transfer_type": "dynamic_qr_code",
  "reversals": []
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                          | Descrição (eng)<br/>`Description`                   | Descrição (ptbr)<br/>`translation`                                            |
|-------------|----------------------|---------------------------------------------|-----------------------------------------------------|-------------------------------------------------------------------------------|
| 400         | PXT000075            | Pix Transfer Key or End To End Not Provided | No pix transfer key or end to end id provided.      | Não foram fornecidos uma pix transfer key ou end to end id.                   |
| 404         | PXT000023            | Outgoing PIX Transfer Not Found             | Pix transfer key \{pix_transfer_key\} was not found | Transferência PIX de saída com chave \{pix_transfer_key\} não foi encontrada. |
| 403         | PIT000001            | User is not allowed to do this transaction  | User is not allowed to do this transaction          | Usuário não tem autorização para fazer essa transação                         |

---

# Listar Transferências de uma Conta

URL: /documentation/baas/pix/listar_transferencias

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_transfers
MÉTODO GET

### Path Params

| Campo           | Tipo   | Descrição                                | Caracteres |
|-----------------|--------|------------------------------------------|------------|
| `account_key` * | uuidv4 | Chave única de identificação da conta QI | 36         |

### Query Params

| Campo                    | Tipo       | Descrição                                                                                                  | Caracteres                                                                  |
|--------------------------|------------|------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------|
| `pix_transfer_direction` | enumerator | Indicador do sentido da transação (entrada ou saída). Caso não seja enviado, **outgoing** será considerado | [Enumeradores pix_transfer_direction](#enumeradores-pix_transfer_direction) |
| `request_control_key`    | uuidv4     | Chave única de identificação da request utilizada pelo cliente.                                            | 36                                                                          |
| `end_to_end_id`          | string     | Chave de idempotência de uma transação Pix                                                                 | 32                                                                          |
| `transaction_key`        | uuidv4     | Chave de identificação da movimentação na conta                                                            | 36                                                                          |
| `order_by`  | string  | "asc" para ordem ascendente ou "desc" para descendente. "asc" por padrão |
| `date_from`              | string     | Data inicial. Formato "YYYY-MM-DD"                                                                         |                                                                             |
| `date_to`                | string     | Data final. Formato "YYYY-MM-DD"                                                                           |                                                                             |
| `page`                   | integer    | Número da página requisitada. 1 por padrão                                                                 |                                                                             |
| `page_size`              | integer    | Tamanho da página requisitada na consulta. 30 por padrão e valor máximo                                    | Valor máximo de 30                                                          |

### Enumeradores pix_transfer_direction

| Enumerador   | Descrição                    |
|--------------|------------------------------|
| **incoming** | Transferência Pix de entrada |
| **outgoing** | Transferência Pix de saída   |

## Response

STATUS 201

Response Body

```json
{
  "data": [
    {
      "request_control_key": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3",
      "pix_message": "Bom dia",
      "pix_transfer_type": "manual",
      "account_key": "fc6862c4-2b20-4057-8063-b8809866e494",
      "updated_at": "2021-10-22T20:30:23.459Z",
      "created_at": "2021-10-22T20:30:23.459Z",
      "target_account": {
        "account_branch": "0001",
        "account_digit": "3",
        "account_number": "12345678",
        "owner_document_number": "***02502000***",
        "owner_person_type": "legal",
        "owner_name": "Qi Tech",
        "account_type": "checking_account",
        "ispb": "32402502",
        "financial_institution_name": "QI SCD",
        "pix_key": null
      },
      "receiver_conciliation_id": null,
      "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "transaction_key": "848d3ff7-4e98-4911-8773-f1d1b48c3068",
      "end_to_end_id": "E3240250220211022203051750897529",
      "pix_transfer_status": "sent",
      "transfer_amount": 126.97,
      "fee_amount": 0.0,
      "rejection_reason": null,
      "reversals": [
        {
          "end_to_end_id": "D35713491202309182058jlqdBkkHSWU",
          "transfer_amount": 0.01,
          "reversal_reason": "client_request",
          "pix_transfer_status": "received",
          "pix_transfer_key": "423866cd-0f3f-4cdd-904b-0d2e33273afd",
          "request_control_key": "7c5a1425-73eb-420e-b4fb-0ce3386c7d0a",
          "created_at": "2021-10-23T20:30.459Z"
        }
      ]
    }
  ],
  "pagination": {
    "current_page": 1,
    "rows_per_page": 30
  }
}

```

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                          | Descrição (eng)<br/>`Description`                   | Descrição (ptbr)<br/>`translation`                                            |
|-------------|----------------------|---------------------------------------------|-----------------------------------------------------|-------------------------------------------------------------------------------|
| 400         | PXT000075            | Pix Transfer Key or End To End Not Provided | No pix transfer key or end to end id provided.      | Não foram fornecidos uma pix transfer key ou end to end id.                   |
| 404         | PXT000023            | Outgoing PIX Transfer Not Found             | Pix transfer key \{pix_transfer_key\} was not found | Transferência PIX de saída com chave \{pix_transfer_key\} não foi encontrada. |
| 403         | PIT000001            | User is not allowed to do this transaction  | User is not allowed to do this transaction          | Usuário não tem autorização para fazer essa transação                         |

---

# Realizar Transação Pix

URL: /documentation/baas/pix/realizar_transferencia

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_transfer
MÉTODO POST

## Path Params

| Campo         | Tipo   | Descrição                              | Caracteres |
|---------------|--------|----------------------------------------|------------|
| `account_key` | uuidv4 | Chave única de identificação da conta. | 36         |

## Transferência por Chave Pix

Request Body: Transferência por Chave Pix

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_type": "key",
  "target_pix_key": "target_pix_key@email.com",
  "transaction_amount": 500.65,
  "end_to_end_id": "E73856642202309201429bZKfklNlbwu",
  "pix_message": "Ola Mundo"
}
```

### Body Params

| Campo                   | Tipo       | Descrição                                                                                                                                                                                                                                        | Caracteres |
|-------------------------|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|
| `request_control_key` * | uuidv4     | Chave única de identificação da request utilizada pelo cliente no formato uuid v4.                                                                                                                                                               | 36         | 
| `pix_transfer_type` *   | enumerator | Tipo do pix a ser realizado. Para o caso de transferência por chave deve ser **key**.                                                                                                                                                            | "key"      |
| `target_pix_key` *      | string     | Chave pix da conta a ser enviada a transação.                                                                                                                                                                                                    | 100        |
| `transaction_amount` *  | number     | Valor da transferência.                                                                                                                                                                                                                          | 10         |
| `end_to_end_id` *       | string     | Chave de idempotência de uma transação Pix dentro do SPI (Sistema de Pagamento Instantâneo). Esta chave é retornada na consulta de chave Pix. Só deve ser enviado se o `pix_transfer_type` for **key**, **static_qr_code** ou **static_qr_code** | 32         |
| `pix_message`           | string     | Mensagem a ser enviada junto à transferência Pix.                                                                                                                                                                                                | 140        |

## Transferência Manual - Utilizando os Dados da Conta

Request Body: Transferência Manual

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_type": "manual",
  "target_account": {
    "account_branch": "0001",
    "account_digit": "3",
    "account_number": "12345678",
    "owner_document_number": "32402502000135",
    "owner_name": "Qi Tech",
    "account_type": "checking_account",
    "ispb": "32402502"
  },
  "transaction_amount": 500.65,
  "pix_message": "Ola Mundo"
}
```

### Body Params

| Campo                   | Tipo       | Descrição                                                                                         | Caracteres                                          |
|-------------------------|------------|---------------------------------------------------------------------------------------------------|-----------------------------------------------------|
| `request_control_key` * | uuidv4     | Chave única de identificação da request utilizada pelo cliente no formato uuid v4.                | 36                                                  | 
| `pix_transfer_type` *   | enumerator | Tipo de transferência Pix.                                                                        | **manual**                                          |
| `target_account` *      | Object     | Conta destino - Só deve ser enviada em transferências com `pix_transfer_type` do tipo **manual**. | **[Objeto target_account](#objeto-target_account)** | 10 |
| `transaction_amount` *  | number     | Valor da transferência.                                                                           | 10                                                  |
| `pix_message`           | string     | Mensagem a ser enviada junto à transferência Pix.                                                 | 140                                                 |

### Objeto target_account

| Campo                     | Tipo       | Descrição                                           | Caracteres                                              |
|---------------------------|------------|-----------------------------------------------------|---------------------------------------------------------|
| `account_branch` *        | string     | Agência da conta.                                   | 4                                                       |
| `account_digit` *         | string     | Dígito da conta.                                    | 1                                                       |
| `account_number` *        | string     | Número da conta.                                    | 20                                                      |
| `owner_document_number` * | string     | CPF ou CNPJ (apenas números) do titular da conta.   | 14                                                      |
| `owner_name` *            | string     | Nome do titular da conta.                           | 150                                                     |
| `account_type`*           | enumerator | Tipo da conta.                                      | **[Enumerador account_type](#enumerador-account_type)** |
| `ispb` *                  | string     | Base no CNPJ da instituição financeira (8 dígitos). | 8                                                       |

### Enumerador account_type

| Enumerador           | Descrição           |
|----------------------|---------------------|
| **checking_account** | Conta Corrente      |
| **salary_account**   | Conta Salário       |
| **saving_account**   | Conta Poupança      |
| **payment_account**  | Conta de Pagamentos |

## Transferência por QR Code Pix

Os dados utilizados para realizção de uma transação de pagamento de um QR Code Pix devem ser obtidos através
da [decodificação do QR Code Pix](/documentation/pix/decodificar_qr_code), utilizando a URI do Pix Copia e Cola.

I - O campo “end_to_end_id” deve ser o mesmo valor retornado da decodificação do QR Code Dinâmico.
II - Informar no campo “transaction_amount“ o mesmo valor retornado no campo “qr_code_data.amount” da decodificação do
QR Code Dinâmico;
III - Alterar o campo “pix_transfer_type” para o enumerador correspondente (**static_qr_code** ou **dynamic_qr_code** ), para solicitação do pagamento.
IV - O campo “receiver_conciliation_id” deve ser o mesmo valor retornado da decodificação do QR Code Dinâmico.

Request Body: Transferência por Qr Code

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_type": "static_qr_code",
  "transaction_amount": 500.65,
  "end_to_end_id": "E73856642202309201429bZKfklNlbwu",
  "receiver_conciliation_id": "REC00000000000000000000009459463343",
  "target_pix_key": "target_pix_key@email.com",
  "pix_message": "Ola Mundo"
}
```

### Body Params

| Campo                      | Tipo       | Descrição                                                                                                                                                                                                                                                                               | Caracteres                                |
|----------------------------|------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------|
| `request_control_key` *    | uuidv4     | Chave única de identificação da request utilizada pelo cliente no formato uuid v4.                                                                                                                                                                                                      | 36                                        | 
| `pix_transfer_type` *      | enumerator | Tipo de transferência Pix.                                                                                                                                                                                                                                                              | **static_qr_code** ou **dynamic_qr_code** |
| `target_pix_key` *         | string     | Chave pix da conta a ser enviada a transação.                                                                                                                                                                                                                                           | 100                                       |
| `receiver_conciliation_id` | string     | Identicação de conciliação do recebedor.                                                                                                                                                                                                                                                | 35                                        |
| `transaction_amount` *     | number     | Valor da transferência.                                                                                                                                                                                                                                                                 | 10                                        |
| `end_to_end_id` *          | string     | Chave de idempotência de uma transação Pix dentro do SPI (Sistema de Pagamento Instantâneo). Esta chave é retornada na [consulta de chave Pix](/documentation/pix/consultar_chave). Só deve ser enviado se o `pix_transfer_type` for **key**, **static_qr_code** ou **static_qr_code**. | 32                                        |
| `pix_message`              | string     | Mensagem a ser enviada junto à transferência Pix.                                                                                                                                                                                                                                       | 140                                       |

:::danger Aviso
O `end_to_end_id` da consulta deve ter sido feito em nome da conta que solicitará a movimentação!
:::

:::danger Aviso
Um `end_to_end_id` só pode ser utilizado para uma única transferência, não importando, se a transferência tenha sido bem
sucedida ou não.
:::

## Response

STATUS 201

Response Body: Transferência Enviada

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "transaction_key": "848d3ff7-4e98-4911-8773-f1d1b48c3068",
  "pix_transfer_status": "sent",
  "created_at": "2021-10-22T20:30:23.459Z"
}
```

STATUS 202

Response Body: Transferência Pendente

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "transaction_key": "848d3ff7-4e98-4911-8773-f1d1b48c3068",
  "pix_transfer_status": "pending",
  "created_at": "2021-10-22T20:30:23.459Z",
  "transaction_key": "8ea90347-330d-4b3a-8ebb-2ac217ad6eb3"
}
```

:::info Informação
Caso seja retornado **HTTP Status 202** com o campo `pix_transfer_status` com valor **pending**, a solicitação de Pix
não deve ser retentada.

Esta transferência será reprocessada. É necessário verificar o status da transferência por meio
da [Consulta de Transferência Pix](#consultar-transação-pix).
:::

STATUS 4xx

Response Body: Transferência Rejeitada

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {
    "pix_transfer_data": {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "pix_transfer_status": "rejected",
      "created_at": "2021-10-22T20:30:23.459Z"
    }
  }
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (ptbr)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Erro de Schema                                                                                                         |
| 403                      | PIT000001            | User is not allowed to do this transaction         |                                                                                                                         | Usuário não tem autorização para fazer essa transação                                                                  |
| 400                      | PIT000003            | Bad Request                                        | Insufficient account balance for transfer and fee amount.                                                               | Saldo de conta insuficiente para a transferência e a taxa.                                                             |
| 400                      | PIT000004            | Bad Request                                        | Transaction amount is over limit.                                                                                       | O total da transferência é superior ao limite.                                                                         |
| 400                      | PXT000003            | Account is Closed                                  | Account \{account_key\} is closed.                                                                                      | Conta \{account_key\} está fechada.                                                                                    |
| 404                      | PXT000004            | Account not found                                  | Account not found for: \{account_datum\}                                                                                | Conta não encontrada para: \{account_datum\}                                                                           |
| 400                      | PXT000010            | Account is Blocked                                 | Account \{account_key\} is blocked.                                                                                     | Conta \{account_key\} está bloqueada.                                                                                  |
| 404                      | PXT000018            | Reversal Original Transfer not Found               | Reversal original pix transfer not found                                                                                | Transferência original da devolução não foi encontrada                                                                 |
| 400                      | PXT000033            | Target Account Must Not Be Source Account          | Target Account Must Not Be Source Account                                                                               | A conta de destino não pode ser a conta de origem                                                                      |
| 404                      | PXT000041            | Not Found                                          | Qr Code not found                                                                                                       | Qr Code não encontrado                                                                                                 |
| 400                      | PXT000048            | Bad Request                                        | Emoji not allowed in pix message.                                                                                       | Emoji não é permitido na mensagem pix.                                                                                 |
| 400                      | PXT000053            | Bad Request                                        | QrCode already paid                                                                                                     | Qr Code já Pago                                                                                                        |
| 400                      | PXT000060            | Bad Request                                        | Nonexistent account in destination bank                                                                                 | Conta inexistente no banco de destino                                                                                  |
| 400                      | PXT000061            | Bad Request                                        | End to end id invalid. A pix transfer with the end to end id \{end_to_end\} has already been registered!                | End to end id inválido. Uma transação pix com o identificador único \{end_to_end\} já foi registrada!                  |
| 400                      | PXT000079            | Bad Request                                        | Insufficient billing account balance for fee.                                                                           | Saldo de conta de cobrança insuficiente para a taxa.                                                                   |
| 400                      | PXT000083            | Bad Request                                        | Pix rejected                                                                                                            | Pix rejeitado                                                                                                          |
| 406                      | PXT000103            | request_control_key must be a valid uuid v4 string | request_control_key was not accepted for not being a valid uuid v4 string                                               | request_control_key não foi aceito por não ser uma palavra uuid v4 válida                                              |
| 400                      | PXT000104            | Invalid Transaction Amount                         | Transaction amount of \{transaction_amount\} is not valid. It must be a positive value with at maximum 2 decimal places | O valor de transação \{transaction_amount\} não é válido. Deve ser um valor positivo com no máximo duas casas decimais |
| 406                      | PXT000105            | Invalid end_to_end_id                              | The end_to_end_id sent \{end_to_end_id\} is not valid.                                                                  | O end_to_end_id enviado \{end_to_end_id\} não é válido.                                                                |
| 400                      | PXT000108            | Bad Request                                        | Billing account closed or blocked                                                                                       | Conta de cobrança encerrada ou bloqueada                                                                               |
| 400                      | PXT000109            | Bad Request                                        | request_control_key \{request_control_key\} already in use                                                              | request_control_key \{request_control_key\} já utilizada                                                               |
| 400                      | PXT000115            | Bad Request                                        | Insufficient account balance for transfer and fee amount.                                                               | Saldo de conta insuficiente para a transferência e a taxa                                                              |
| 400                      | PXT000118            | Requester is not Pix Participant                   | The requester sent an alias key but is not a indirect pix participant                                                   | O requisitante enviou uma alias key no entanto não é um participante do pix indireto                                   |
| 400                      | PXT000128            | Bad Request                                        | Pix key \{pix_key\} sent does match inquiry pix key. Verify if end_to_end_id sent is correct                            | Chave Pix \{pix_key\} enviada não condiz com consulta. Verifique se end_to_end_id enviado está correto                 |
| 400                      | PXT000129            | SPI Error message                                  | Message rejected by SPI-ICOM                                                                                            | Mensagem rejeitada pela SPI-ICOM                                                                                       |
| 408                      | PXT000130            | SPI Timeout Control                                | SPI Timeout Control                                                                                                     | Controle de timeout no SPI                                                                                             |
| 400                      | PXT000131            | Receiver Internal Error                            | Cancelled transaction due to receiver's internal error                                                                  | Transação interrompida devido a erro no PSP do Recebedor                                                               |
| 400                      | PXT000132            | Invalid Target Account Number                      | Target account number is invalid                                                                                        | Número da conta de destino é inexistente ou inválido                                                                   |
| 400                      | PXT000133            | Blocked Target Account                             | Target account is blocked.                                                                                              | A conta de destino encontra-se bloqueada.                                                                              |
| 400                      | PXT000134            | Closed Target Account                              | Target account is closed.                                                                                               | A conta de destino encontra-se encerrada.                                                                              |
| 400                      | PXT000135            | Unsupported Transaction                            | Unsupported transaction for given target account.                                                                       | A conta de destino não suporta este tipo de transação.                                                                 |
| 400                      | PXT000136            | Invalid Participant                                | SPI participant is not PSP settler agent of payer nor receiver.                                                         | Participante direto do SPI não é liquidante do PSP do Pagador / Recebedor.                                             |
| 400                      | PXT000137            | Zero Value Payment Order                           | Zero value payment order.                                                                                               | Ordem de pagamento com valor zero.                                                                                     |
| 400                      | PXT000138            | Insufficient Funds                                 | Insufficient funds in PI account from payer.                                                                            | Saldo insuficiente na conta PI do pagador.                                                                             |
| 400                      | PXT000139            | Return Value Too Great                             | Return value greater than corresponding payment order.                                                                  | Valor de devolução acima do valor de pagamento correspondente.                                                         |
| 400                      | PXT000140            | Invalid Transactions Number                        | Invalid transactions number.                                                                                            | Quantidade de transações inválida.                                                                                     |
| 400                      | PXT000141            | Unrelated Beneficiary Document Number              | Beneficiary document number is not that of target account owner.                                                        | CPF/CNPJ do usuário recebedor não é compatível com o titular da conta de destino.                                      |
| 400                      | PXT000142            | Invalid Beneficiary Document Number                | Invalid beneficiary document number                                                                                     | CPF/CNPJ da conta de destino está incorreto.                                                                           |
| 400                      | PXT000143            | Incorrect Message Element                          | Incorrect message element.                                                                                              | Elemento da mensagem incorreto.                                                                                        |
| 403                      | PXT000144            | Rejected Payment Order                             | Beneficiary's PSP has rejected payment order.                                                                           | Ordem de pagamento foi rejeitada pelo banco recebedor.                                                                 |
| 403                      | PXT000145            | Unauthorized Payer                                 | Signing participant is unauthorized to make a payment order for paying account.                                         | Participante que assinou a mensagem não é autorizado a realizar a operação na conta PI debitada.                       |
| 400                      | PXT000146            | Invalid Datetime                                   | Invalid datetime for message delivery.                                                                                  | Data e Hora do envio da mensagem inválida.                                                                             |
| 400                      | PXT000147            | Generic Error                                      | Error while processing payment (generic error).                                                                         | Erro no processamento do pagamento (erro genérico).                                                                    |
| 400                      | PXT000148            | Bad Format Operation Identifier                    | Badly formatted operation's identifier.                                                                                 | Identificador da operação mal formatado.                                                                               |
| 400                      | PXT000149            | Invalid Payer ISPB                                 | Invalid or non-existent payer's PSP ISPB number.                                                                        | Número ISPB do PSP do Pagador é inválido ou inexistente.                                                               |
| 400                      | PXT000150            | Invalid Beneficiary ISPB                           | Invalid or non-existent beneficiary's PSP ISPB number.                                                                  | Número ISPB do banco recebedor é inválido ou inexistente.                                                              |
| 400                      | PXT000151            | Incorrect Type                                     | Incorrect type for target account.                                                                                      | Tipo incorreto para a conta transacional especificada.                                                                 |
| 400                      | PXT000152            | Repeated End-to-End ID Error                       | The end_to_end_id was already used                                                                                      | O end_to_end_id já foi utilizado                                                                                       |
| 400                      | PXT000153            | Invalid Target Account Type                        | The target account type cannot receive PIX transactions                                                                 | O tipo de conta destino não pode receber transações PIX                                                                |
| 400                      | PXT000154            | Invalid ISPB                                       | Invalid or non-existent ISPB number.                                                                                    | Número ISPB é inválido ou inexistente.                                                                                 |
| 400                      | PXT000155            | Amount too Great                                   | Amount too great for credited account.                                                                                  | Valor de pagamento/devolução acima do permitido para a conta de destino creditada.                                     |
| 400                      | PXT000156            | QR Code Rejected                                   | QR Code rejected by beneficiary's PSP.                                                                                  | QR Code rejeitado pelo PSP do usuário recebedor.                                                                       |
| 503                      | PXT000157            | Bacen Service Unavailable Error                    | Could not send the message to ICOM after 3 retries                                                                      | Não pode enviar a mensagem para a ICOM depois de 3 tentativas                                                          |
| 400                      | PXT000158            | Invalid Amount                                     | Paid amount diverges from expected amount of \{expected_amount\}                                                        | O valor do pagamento diverge do valor esperado de \{expected_amount\}                                                  |
| 403                      | PXT000167            | Requester not allowed to access this endpoint      | Requester has no permission to perform pix transfers on this endpoint                                                   | Requester não possui permissão de realizar transações pix através deste endpoint                                       |

---

# Solicitar a devolução de um Pix recebido

URL: /documentation/baas/pix/solicitar_devolucao

A devolução de um Pix pode ser efetuada em até 90 dias a partir de seu recebimento.

## Request

ENDPOINT /account/ ACCOUNT_KEY /pix_transfer/ PIX_TRANSFER_KEY /reversal
MÉTODO POST

### Path Params

| Campo                | Tipo   | Descrição                                                        | Caracteres |
|----------------------|--------|------------------------------------------------------------------|------------|
| `account_key` *      | uuidv4 | Chave única de identificação da conta.                           | 36         |
| `pix_transfer_key` * | uuidv4 | Chave única de identificação da transferência Pix no sistema QI. | 36         |

Request Body

```json
{
  "request_control_key": "303393bf-8f2e-4ff0-b326-ee7ad612e8ca",
  "reversal_amount": 147,
  "reversal_reason": "client_request",
  "reversal_message": "Mensagem Pix da Devolução"
}
```

### Request Body

| Campo                   | Tipo   | Descrição                         | Caracteres                                                    |
|-------------------------|--------|-----------------------------------|---------------------------------------------------------------|
| `request_control_key` * | uuidv4 | Chave de unicidade da requisição. | 36                                                            |
| `reversal_amount` *     | number | Valor da devolução.               | 11                                                            |
| `reversal_reason` *     | string | Motivo da devolução.              | **[Enumerador reversal_reason](#enumerador-reversal_reason)** |
| `reversal_message`      | string | Mensagem da devolução.            | 140                                                           |

### Enumerador reversal_reason

| Enumerador         | Descrição                                     |
|--------------------|-----------------------------------------------|
| **client_request** | Caso tenha sido requerido pelo dono da conta. |
| **reconciliation** | Para reconciliação devido a erro operacional. |

## Response

STATUS 201

Response Body: Reversão Enviada

```json
{
  "reversal_status": "sent",
  "transaction_amount": 147,
  "pix_transfer_key": "cdcf0d25-08a1-46e3-902a-6d7ca75e6c48",
  "end_to_end_id": "E32402502202405081755SxyT2DDcVwc",
  "request_control_key": "7c5a1425-73eb-420e-b4fb-0ce3386c7d0c",
  "created_at": "2021-10-22T20:30:23.459Z"
}
```

STATUS 202

Response Body: Reversão Pendente

```json
{
  "reversal_status": "pending",
  "transaction_amount": 147,
  "pix_transfer_key": "cdcf0d25-08a1-46e3-902a-6d7ca75e6c48",
  "end_to_end_id": "E32402502202407112211Id9JbxoaiTf",
  "request_control_key": "7c5a1425-73eb-420e-b4fb-0ce3386c7d0c",
  "created_at": "2021-10-22T20:30:23.459Z"
}
```

:::info Informação
Caso seja retornado **HTTP Status 202** com o campo `pix_transfer_status` com valor **pending**, a solicitação de Pix
não deve ser retentada.

Esta transferência será reprocessada. É necessário verificar o status da transferência por meio
da [Consulta de Transferência Pix](#consultar-transação-pix).
:::

### Response Body

| Campo                 | Tipo       | Descrição                                                                                   | Caracteres                                                |
|-----------------------|------------|---------------------------------------------------------------------------------------------|-----------------------------------------------------------|
| `reversal_status`     | enumerator | Enumerador de status da transação de devolução.                                             | [Enumerador reversal_status](#enumerador-reversal_status) |
| `transfer_amount`     | number     | Valor da transferência de devolução.                                                        | 11                                                        |
| `pix_transfer_key`    | uuidv4     | Chave da transação pix executada na devolução.                                              | 36                                                        |
| `end_to_end_id`       | string     | Chave de idempotência de uma transação Pix dentro do SPI (Sistema de Pagamento Instantâneo) | 32                                                        |
| `request_control_key` | uuidv4     | Chave única de identificação da request utilizada pelo cliente.                             | 36                                                        |
| `created_at`          | string     | Data e hora da devolução.                                                                   | 10                                                        |

### Enumerador reversal_status

| Enumerador   | Descrição                                |
|--------------|------------------------------------------|
| **sent**     | Transferência Pix realizada com sucesso. |
| **pending**  | Transferência Pix pendente.              |
| **rejected** | Transferência Pix rejeitada.             |

STATUS 4xx

Response Body: Reversão Rejeitada

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {
    "pix_transfer_data": {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "end_to_end_id": "E32402502202407112211Id9JbxoaiTf",
      "pix_transfer_status": "rejected",
      "created_at": "2021-10-22T20:30:23.459Z"
    }
  }
}
```

:::info Informação
Além dos erros anteriormente listados para [transferência Pix](/documentation/baas/pix/realizar_transferencia), a
devolução de um Pix também pode retornar os erros
listados abaixo.
:::

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                   | Descrição (eng)<br/>`description`                                      | Descrição (ptbr)<br/>`translation`                                                        |
|--------------------------|----------------------|--------------------------------------|------------------------------------------------------------------------|-------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                          | Schema Error                                                           | Erro de Schema                                                                            |
| 404                      | PXT000018            | Reversal Original Transfer not Found | Reversal original pix transfer not found.                              | Transferência original da devolução não foi encontrada.                                   |
| 400                      | PXT000017            | Reversal Too Great                   | Reversal transfers sum amount surpasses that of original pix transfer. | A soma das transferências de devolução ultrapassam o valor da transferência pix original. |
| 400                      | PXT000015            | Reversal date expired                | Reversal original transaction is older than 90 days                    | A data de criação da transação original é mais antiga que 90 dias                         |
| 400                      | PXT0000127           | Invalid Reversal Reason              | Reversal reason \{reversal_reason\} is not valid                       | Razão de reversão \{reversal_reason\} não é válida                                        |

---

# Webhooks

URL: /documentation/baas/pix/webhooks

Uma vez que as transferências ocorrem de forma assíncrona, é de suma importância o mapeamento e o tratamento corretos
dos webhooks enviados.

:::danger Atenção!
Os webhooks da QI Tech não devem ser mapeados de forma restrita.
Campos adicionais podem ser incluídos aos payloads dos webhooks retornados em nossas APIs.
:::

## Webhook para Transações Pendentes

Webhook destinado para atualizar o status das transferências que ficaram pendentes (status 202)
na [requisição](/documentation/baas/pix/realizar_transferencia) de envio do Pix.

### Webhook Request Body

Request Body: Transação Enviada

```json
{
  "webhook_type": "baas.pix_transfer.outgoing_pix",
  "webhook_datetime": "2021-10-22T20:30:23.459Z",
  "data": {
    "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
    "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "pix_transfer_status": "sent",
    "created_at": "2021-10-22T20:30:23.459Z"
  }
}
```

Request Body: Transação Rejeitada

```json
{
  "webhook_type": "baas.pix_transfer.outgoing_pix",
  "webhook_datetime": "2021-10-22T20:30:23.459Z",
  "data": {
    "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
    "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "pix_transfer_status": "rejected",
    "created_at": "2021-10-22T20:30:23.459Z",
    "error_code": "PXT000132",
    "error_description": "Target account number is invalid.",
    "error_translation": "Número da conta de destino é inexistente ou inválido.",
    "error_short_description": null
  }
}
```

### Webhook Body Param

| Campo                 | Tipo   | Descrição                                                 | Max. Caracteres |
|-----------------------|--------|-----------------------------------------------------------|-----------------|
| `webhook_type`        | string | Um enumerador que define o tipo de evento sendo reportado | 23              |
| `webhook_datetime`    | string | Data e hora do envio do webhook                           | 20              |
| `request_control_key` | string | UUID4 para fins de consulta sobre a requisição feita.     | 36              |
| `pix_transfer_key`    | string | Chave de identificação da transferência Pix no sistema QI | 36              |
| `pix_transfer_status` | string | Status da transação.                                      | 200             |
| `created_at`          | string | Data e hora de criação da transação.                      | 20              |
| `error_code`          | string | Código do erro ocorrido na transação                      | 20              |
| `error_description`   | string | Descrição do erro em inglês                               | 200             |
| `error_translation`   | string | Descrição do erro traduzida para português                | 200             |
| `error_short_description` | string | Descrição curta do erro                               | 100             |

[//]: # (Break here for new page -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------)

## Webhook para Pix de Entrada

Webhook que servirá para avisar sobre transações Pix que chegaram para uma conta.

### Webhook Request Body

Request Body: Pix Recebido

```json
{
  "webhook_type": "baas.pix_transfer.incoming_pix",
  "webhook_datetime": "2021-10-22T20:30:23.459Z",
  "data": {
    "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "end_to_end_id": "E18236120202308111235s14fddf2801",
    "pix_transfer_status": "received",
    "account_key": "7c5a1425-73eb-420e-b4fb-0ce3386c7d0c",
    "receiver_conciliation_id": "745c28c780bc4822bbade86dd875d10b",
    "transfer_amount": 126.97,
    "fee_amount": 0.0,
    "source_account": {
      "account_branch": "0001",
      "account_digit": "3",
      "account_number": "12345678",
      "owner_document_number": "***02502000***",
      "owner_person_type": "legal",
      "owner_name": "Qi Tech",
      "account_type": "checking_account",
      "ispb": "32402502"
    },
    "pix_transfer_type": "dynamic_qr_code",
    "pix_message": "pix message received",
    "error_code": null,
    "error_description": null,
    "error_translation": null,
    "error_short_description": null,
    "created_at": "2021-10-22T20:30:23.459Z",
    "reversals": []
  }
}
```

Request Body: Pix Em Análise Manual

```json
{
  "webhook_type": "baas.pix_transfer.incoming_pix",
  "webhook_datetime": "2021-10-22T20:30:23.459Z",
  "data": {
    "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "end_to_end_id": "E18236120202308111235s14fddf2801",
    "pix_transfer_status": "in_manual_analysis",
    "account_key": "7c5a1425-73eb-420e-b4fb-0ce3386c7d0c",
    "receiver_conciliation_id": "745c28c780bc4822bbade86dd875d10b",
    "transfer_amount": 126.97,
    "fee_amount": 0.0,
    "source_account": {
      "account_branch": "0001",
      "account_digit": "3",
      "account_number": "12345678",
      "owner_document_number": "***02502000***",
      "owner_person_type": "legal",
      "owner_name": "Qi Tech",
      "account_type": "checking_account",
      "ispb": "32402502"
    },
    "pix_transfer_type": "dynamic_qr_code",
    "pix_message": "pix message",
    "error_code": null,
    "error_description": null,
    "error_translation": null,
    "error_short_description": null,
    "created_at": "2021-10-22T20:30:23.459Z",
    "reversals": []
  }
}
```

Request Body: Pix Rejeitado Pela Análise

```json
{
  "webhook_type": "baas.pix_transfer.incoming_pix",
  "webhook_datetime": "2021-10-22T20:30:23.459Z",
  "data": {
    "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "end_to_end_id": "E18236120202308111235s14fddf2801",
    "pix_transfer_status": "rejected_by_analysis",
    "account_key": "7c5a1425-73eb-420e-b4fb-0ce3386c7d0c",
    "receiver_conciliation_id": "745c28c780bc4822bbade86dd875d10b",
    "transfer_amount": 126.97,
    "fee_amount": 0.0,
    "source_account": {
      "account_branch": "0001",
      "account_digit": "3",
      "account_number": "12345678",
      "owner_document_number": "***02502000***",
      "owner_person_type": "legal",
      "owner_name": "Qi Tech",
      "account_type": "checking_account",
      "ispb": "32402502"
    },
    "pix_transfer_type": "dynamic_qr_code",
    "pix_message": "pix message",
    "error_code": "PXT000194",
    "error_description": "Incoming pix transfer rejected by manual analysis",
    "error_translation": "Transferência de Pix de entrada rejeitada pela análise manual",
    "error_short_description": null,
    "created_at": "2021-10-22T20:30:23.459Z",
    "reversals": []
  }
}
```

:::info Bloqueio Cautelar
Ao receber um Pix, o mesmo pode ficar bloqueado cautelarmente. Nesse cenário, nenhum recurso é creditado na conta destino e um webhook com o status `in_manual_analysis` é enviado para o cliente. O Pix passará pelo processo de análise manual em até no máximo 72 horas. Após realizada a análise, a entrada será aceita ou recusada e o Pix de entrada irá para o status `received` (nesse momento o recurso será creditado na conta do cliente) ou `rejected_by_analysis`, respectivamente.
:::

### Webhook Body Param

| Campo                      | Tipo       | Descrição                                                                                             | Max. Caracteres                                                   |
|----------------------------|------------|-------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|
| `webhook_type`             | string     | Um enumerador que define o tipo de evento sendo reportado                                             | 23                                                                |
| `webhook_datetime`         | string     | Data e hora do envio do webhook                                                                       | 20                                                                |
| `pix_transfer_type`        | enumerator | Tipo do pix realizado                                                                                 | **[Enumerador pix_transfer_type](#enumerador-pix_transfer_type)** |
| `target_pix_key`           | string     | Chave pix da conta a ser enviada a transação                                                          | 100                                                               |
| `source_account`           | Object     | Conta destino - Só deve ser enviada em transações do tipo "manual"                                    | **[Objeto source_account](#objeto-source_account)**               |
| `transfer_amount`          | number     | Valor da transferencia                                                                                | 10                                                                |
| `receiver_conciliation_id` | string     | Identicação de conciliação do recebedor                                                               | 35                                                                |
| `end_to_end_id`            | string     | Chave de idempotência de uma transação Pix - só deve ser enviado se o tipo de transferência for "key" | 32                                                                |
| `pix_message`              | string     | Mensagem a ser enviada junto à transferência Pix                                                      | 140                                                               |
| `fee_amount`               | number     | Valor da transferencia                                                                                | 10                                                                |
| `pix_transfer_status`      | string     | Status da transação pix                                                                               | 10                                                                |
| `account_key`              | string     | Chave única de identificação da conta QI                                                              | 36                                                                |
| `pix_transfer_key`         | string     | Chave única de identificação da transferência Pix                                                     | 36                                                                |
| `error_code`               | string     | Código do erro ocorrido na transação                                                                  | 20                                                                |
| `error_description`        | string     | Descrição do erro em inglês                                                                           | 200                                                               |
| `error_translation`        | string     | Descrição do erro traduzida para português                                                            | 200                                                               |
| `error_short_description`  | string     | Descrição curta do erro                                                                               | 100                                                               |

### Enumerador pix_transfer_type

| Enumerador          | Descrição                                |
|---------------------|------------------------------------------|
| **manual**          | Pix utilizando os dados da conta destino |
| **key**             | Pix utilizando uma chave pix             |
| **static_qr_code**  | Pix utilizando um QR code estático       |
| **dynamic_qr_code** | Pix utilizando um QR code dinâmico       |
| **reversal**        | Devolução Pix                            |

### Objeto source_account

| Campo                     | Tipo       | Descrição                                                                                               | Caracteres                                              |
|---------------------------|------------|---------------------------------------------------------------------------------------------------------|---------------------------------------------------------|
| `account_branch` *        | string     | Agência da conta                                                                                        | 6                                                       |
| `account_digit` *         | string     | Dígito da conta                                                                                         | 1                                                       |
| `account_number` *        | string     | Número da conta                                                                                         | 20                                                      |
| `owner_document_number` * | string     | CPF ou CNPJ (apenas números) do titular da conta                                                        | 14                                                      |
| `owner_name`              | string     | Nome do titular da conta                                                                                | 150                                                     |
| `account_type`*           | enumerator | Tipo da conta                                                                                           | **[Enumerador account_type](#enumerador-account_type)** |
| `ispb` *                  | string     | Código de oito dígitos que identifica os bancos no sistema de transferência de reserva do Banco Central | 8                                                       |

### Enumerador account_type

| Enumerador           | Descrição           |
|----------------------|---------------------|
| **checking_account** | Conta Corrente      |
| **salary_account**   | Conta Salário       |
| **saving_account**   | Conta Poupança      |
| **payment_account**  | Conta de Pagamentos |

[//]: # (Break here for new page -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------)

## Webhook para Devoluções de Pix

Webhook que servirá para avisar sobre devoluções Pix que chegaram para uma conta.

### Webhook Request Body

Request Body: Pix Recebido

```json
{
  "webhook_type": "baas.pix_transfer.incoming_pix",
  "webhook_datetime": "2021-10-22T20:30:23.459Z",
  "data": {
    "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "end_to_end_id": "D18236120202308111235s14fddf2801",
    "pix_transfer_status": "received",
    "account_key": "7c5a1425-73eb-420e-b4fb-0ce3386c7d0c",
    "receiver_conciliation_id": "745c28c780bc4822bbade86dd875d10b",
    "transfer_amount": 126.97,
    "fee_amount": 0.0,
    "source_account": {
      "account_branch": "0001",
      "account_digit": "3",
      "account_number": "12345678",
      "owner_document_number": "***02502000***",
      "owner_person_type": "legal",
      "owner_name": "Qi Tech",
      "account_type": "checking_account",
      "ispb": "32402502"
    },
    "pix_transfer_type": "reversal",
    "pix_message": "pix message received",
    "error_code": null,
    "error_description": null,
    "error_translation": null,
    "error_short_description": null,
    "created_at": "2021-10-22T20:30:23.459Z",
    "reversals": [],
    "original_outgoing_pix_transfer": "b56862c4-2b20-4057-8063-b8809866e494",
    "original_end_to_end_id": "E18236120202308111235s14fddf2801"
  }
}
```

### Webhook Body Param

| Campo                            | Tipo       | Descrição                                                                                             | Max. Caracteres                                                   |
|----------------------------------|------------|-------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|
| `webhook_type`                   | string     | Um enumerador que define o tipo de evento sendo reportado                                             | 23                                                                |
| `webhook_datetime`               | string     | Data e hora do envio do webhook                                                                       | 20                                                                |
| `pix_transfer_type`              | enumerator | Tipo do pix realizado                                                                                 | **[Enumerador pix_transfer_type](#enumerador-pix_transfer_type)** |
| `target_pix_key`                 | string     | Chave pix da conta a ser enviada a transação                                                          | 100                                                               |
| `source_account`                 | Object     | Conta destino - Só deve ser enviada em transações do tipo "manual"                                    | **[Objeto source_account](#objeto-source_account)**               |
| `transfer_amount`                | number     | Valor da transferencia                                                                                | 10                                                                |
| `receiver_conciliation_id`       | string     | Identicação de conciliação do recebedor                                                               | 35                                                                |
| `end_to_end_id`                  | string     | Chave de idempotência de uma transação Pix - só deve ser enviado se o tipo de transferência for "key" | 32                                                                |
| `pix_message`                    | string     | Mensagem a ser enviada junto à transferência Pix                                                      | 140                                                               |
| `fee_amount`                     | number     | Valor da transferencia                                                                                | 10                                                                |
| `pix_transfer_status`            | string     | Status da transação pix                                                                               | 10                                                                |
| `account_key`                    | string     | Chave única de identificação da conta QI                                                              | 36                                                                |
| `pix_transfer_key`               | string     | Chave única de identificação da transferência Pix                                                     | 36                                                                |
| `original_outgoing_pix_transfer` | string     | Chave única de identificação da transferência Pix de saída Original                                   | 36                                                                |
| `original_end_to_end_id`         | string     | End to end da transferência Pix de saída Original                                                     | 36                                                                |
| `error_code`               | string     | Código do erro ocorrido na transação                                                                  | 20                                                                |
| `error_description`        | string     | Descrição do erro em inglês                                                                           | 200                                                               |
| `error_translation`        | string     | Descrição do erro traduzida para português                                                            | 200                                                               |
| `error_short_description`  | string     | Descrição curta do erro                                                                               | 100                                                               |

### Enumerador pix_transfer_type

| Enumerador          | Descrição                                |
|---------------------|------------------------------------------|
| **manual**          | Pix utilizando os dados da conta destino |
| **key**             | Pix utilizando uma chave pix             |
| **static_qr_code**  | Pix utilizando um QR code estático       |
| **dynamic_qr_code** | Pix utilizando um QR code dinâmico       |
| **reversal**        | Devolução Pix                            |

### Objeto source_account

| Campo                   | Tipo       | Descrição                                                                                               | Caracteres                                              |
|-------------------------|------------|---------------------------------------------------------------------------------------------------------|---------------------------------------------------------|
| `account_branch`        | string     | Agência da conta                                                                                        | 6                                                       |
| `account_digit`         | string     | Dígito da conta                                                                                         | 1                                                       |
| `account_number`        | string     | Número da conta                                                                                         | 20                                                      |
| `owner_document_number` | string     | CPF ou CNPJ (apenas números) do titular da conta                                                        | 14                                                      |
| `owner_name`            | string     | Nome do titular da conta                                                                                | 150                                                     |
| `account_type`          | enumerator | Tipo da conta                                                                                           | **[Enumerador account_type](#enumerador-account_type)** |
| `ispb`                  | string     | Código de oito dígitos que identifica os bancos no sistema de transferência de reserva do Banco Central | 8                                                       |

### Enumerador account_type

| Enumerador           | Descrição           |
|----------------------|---------------------|
| **checking_account** | Conta Corrente      |
| **salary_account**   | Conta Salário       |
| **saving_account**   | Conta Poupança      |
| **payment_account**  | Conta de Pagamentos |

---

# baas_configurando_webhooks

URL: /documentation/baas/primeiros_passos/baas_configurando_webhooks



---

# Configurar IP de Integração

URL: /documentation/baas/primeiros_passos/baas_configurar_ip_de_integracao



---

# baas_inicio

URL: /documentation/baas/primeiros_passos/baas_inicio



---

# baas_troca_de_chaves

URL: /documentation/baas/primeiros_passos/baas_troca_de_chaves



---

# baas_endpoints_de_teste

URL: /documentation/baas/primeiros_passos/teste_de_autenticacao/baas_endpoints_de_teste



---

# baas_possiveis_erros

URL: /documentation/baas/primeiros_passos/teste_de_autenticacao/baas_possiveis_erros



---

# baas_teste_de_autenticacao_completo

URL: /documentation/baas/primeiros_passos/teste_de_autenticacao/baas_teste_de_autenticacao_completo



---

# baas_teste_de_autenticacao_v2

URL: /documentation/baas/primeiros_passos/teste_de_autenticacao/baas_teste_de_autenticacao_v2



---

# baas_webhook_v2

URL: /documentation/baas/primeiros_passos/teste_de_autenticacao/baas_webhook_v2



---

# Aprovar TED com Autenticação de Dois Fatores

URL: /documentation/baas/ted/2fa/aprovar_transacao_ted_2fa

## Request

ENDPOINT /account/ ACCOUNT_KEY /ted/ TED_KEY /validate_token
MÉTODO PUT

### Path Params

| Campo         | Tipo   | Descrição                                         | Caracteres |
|---------------|--------|---------------------------------------------------|------------|
| `account_key` | uuidv4 | Chave única de identificação da conta.            | 36         |
| `ted_key`     | uuidv4 | Chave única de identificação da transferência TED | 36         |

## Autenticação via Email e SMS

Request Body

```json
{
  "token": "329123"
}
```

## Autenticação via Dispositivo

Para aprovar e finalizar a autenticação via dispositivo, a requisição deve ser enviada com um payload vazio. A validação ocorre internamente, sem necessidade de informações adicionais no corpo da requisição. É importante destacar que este endpoint só deve ser utilizado após a [solicitação de transação](./realizar_transferencia_2fa.md) ter sido iniciada.

Request Body

```json
{

}
```

## Body Params

| Campo     | Tipo   | Descrição                                                             | Caracteres |
|-----------|--------|-----------------------------------------------------------------------|------------|
| `token`   | string | Código de autenticação enviado ao aprovador de movimentações da conta **obrigatório para TFA via SMS ou e-mail**| 6          | 

## Response

STATUS 201

Response Body: Transferência Enviada

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "transaction_key": "46804f32-101e-4702-8fbc-c2dbc4c2caec",
  "ted_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "transaction_amount": 202.01,
  "fee_amount": 10,
  "ted_status": "sent",
  "created_at": "2021-10-22T20:30:23.459Z"
}
```

STATUS 202

Response Body: Transferência Pendente

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "ted_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "transaction_amount": 202.01,
  "fee_amount": 10,
  "ted_status": "pending",
  "created_at": "2021-10-22T20:30:23.459Z"
}
```

STATUS 4xx

Response Body: Transferência Rejeitada

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {
    "ted_data": {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "ted_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "transaction_amount": 202.01,
      "fee_amount": 10,
      "ted_status": "rejected",
      "created_at": "2021-10-22T20:30:23.459Z"
    }
  }
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

:::info Informação
Os erros anteriormente listados para [realizar TED](/documentation/baas/ted/realizar_transferencia) são
passiveis de serem retornados por este endpoint além dos erros listados abaixo.
:::

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                           | Descrição (eng)<br/>`description`                                       | Descrição (ptbr)<br/>`translation`                                  |
|--------------------------|----------------------|----------------------------------------------|-------------------------------------------------------------------------|---------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                  | Schema Error                                                            | Erro de Schema                                                      |
| 404                      | TED000020            | Not Found                                    | Ted was not found for the given parameters.                             | Ted não encontrada para os parâmetros fornecidos.                   |
| 404                      | TED000086            | Invalid Status                               | Ted not in pending_2fa_approval status                                  | Ted não está pendente de aprovação por autenticação de dois fatores |
| 400                      | TED000082            | Number of token validation attempts exceeded | The maximum number of failed token validation attempts has been reached | Número máximo de tentativas de validação de token atingida          |
| 400                      | TED000084            | Incorrect Token                              | Token sent does not match expected                                      | Token enviado não condiz com, o esperado                            |
| 400                      | TED000083            | Token Expired                                | Token has expired. Resend token or recreate transfer                    | Token expirado. Reenvie token ou recrie a transferência             |
| 400                      | TED000110            | Token Required                                | A token is required for SMS or email validation.                    | Um token é necessário para validação via SMS ou email.             |

---

# Realizar TED com Autenticação de Dois Fatores

URL: /documentation/baas/ted/2fa/realizar_transferencia_2fa

Neste tipo de transação, é necessário a confirmação do pagamento via token enviado à pessoa com poderes de aprovação de
movimentação na conta credora.

A solicitação de transação TED por parceiros integradores configurados para a utilização de autenticação de dois
fatores é realizada de forma similar ao descrito
em [realizar TED](/documentation/baas/ted/realizar_transferencia). A diferença ocorre na adição do
objeto `tfa_info`, contento informações sobre o aprovador da transferência e a forma de contato, e o status de uma
solicitação bem sucedida que será sempre **pending_2fa_approval**.

## Request

ENDPOINT /account/ ACCOUNT_KEY /ted
MÉTODO POST

## Autenticação via Email e SMS

Request Body

```json
{
  "request_control_key": "0c3d2a3e-c121-464e-b5a4-8e69e0c17bbd",
  "target_account": {
    "account_branch": "0001",
    "account_number": "92796",
    "account_digit": "1",
    "owner_document_number": "23599885000192",
    "owner_name": "Titular da Conta",
    "ispb": "12345678",
    "account_type": "checking_account"
  },
  "transaction_amount": 8.86,
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  }
}
```

## Autenticação via Dispositivo

Além das formas já existentes de autenticação via **sms** e **email**, é possível autenticar a transação utilizando um dispositivo [previamente cadastrado](/documentation/baas/dispositivo/create/solicitacao_cadastro_dispositivo). Nesse caso, o `session_id` deve ser obtido na **Device Scan** e enviado no `tfa_info`.

Request Body

```json
{
  "request_control_key": "0c3d2a3e-c121-464e-b5a4-8e69e0c17bbd",
  "target_account": {
    "account_branch": "0001",
    "account_number": "92796",
    "account_digit": "1",
    "owner_document_number": "23599885000192",
    "owner_name": "Titular da Conta",
    "ispb": "12345678",
    "account_type": "checking_account"
  },
  "transaction_amount": 8.86,
  "tfa_info": {
    "approver_document_number": "98765432100",
    "session_id": "b2f18d3a-67c2-4a7f-98e5-1d3f5c6b8a72",
    "contact_type": "device"
  }
}
```

## Body Params

| Campo                   | Tipo   | Descrição                                                                          | Caracteres                                          |
|-------------------------|--------|------------------------------------------------------------------------------------|-----------------------------------------------------|
| `request_control_key` * | string | Chave única de identificação da request utilizada pelo cliente no formato uuid v4. | 36                                                  |
| `target_account` *      | object | Conta de destino                                                                   | **[Objeto target_account](#objeto-target_account)** | 
| `transaction_amount` *  | float  | Valor da transferência                                                             | 10                                                  |
| `tfa_info`*             | object | Objeto contendo o documento da pessoa aprovadora da conta e a forma de contato.    | **[Objeto tfa_info](#objeto-tfa_info)**             |

## Objeto target_account

| Campo                     | Tipo   | Descrição                                           | Caracteres                                                |
|---------------------------|--------|-----------------------------------------------------|-----------------------------------------------------------|
| `account_branch` *        | string | Agência.                                            | 4                                                         |
| `account_digit` *         | string | Dígito da conta                                     | 1                                                         |
| `account_number` *        | string | Número da conta.                                    | 20                                                        |
| `owner_document_number` * | string | CPF ou CNPJ (apenas números) do titular da conta.   | 14                                                        |
| `owner_name` *            | string | Nome do titular da conta.                           | 50                                                        |
| `account_type`*           | string | Tipo da conta.                                      | **[Enumerador account_type](#enumerador-account_type)** |
| `ispb` *                  | string | Base no CNPJ da instituição financeira (8 dígitos). | 8                                                         |

## Objeto tfa_info

| Campo                       | Tipo   | Descrição                                                                           | Caracteres |
|-----------------------------|--------|-------------------------------------------------------------------------------------|------------|
| `approver_document_number`* | string | Número de documento da pessoa aprovadora da conta.                                  | 11         | 
| `session_id`| string | Chave única de identificação da sessão do dispositivo no formato UUID v4 (obrigatório para TFA via dispositivo). |   36         |
| `contact_type`*             | string | Forma de contato com a pessoa aprovadora da conta, podendo ser **sms**, **email** ou **device** |            |

## Enumerador account_type

| Enumerador             | Tradução              |
|------------------------|-----------------------|
| **checking_account**   | conta corrente        |
| **deposit_account**    | conta depósito        |
| **guaranteed_account** | conta de garantia     |
| **investment_account** | conta de investimento |
| **payment_account**    | conta de pagamento    |
| **saving_account**     | conta poupança        |

## Response

STATUS 202

Response Body

```json
{
  "request_control_key": "0c3d2a3e-c121-464e-b5a4-8e69e0c17bbd",
  "ted_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "created_at": "2021-10-22T20:30:23.459Z",
  "ted_status": "pending_2fa_approval",
  "transaction_amount": 126.97,
  "fee_amount": 0.0
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

:::info Informação
Os erros anteriormente listados para [realizar TED](/documentation/baas/ted/realizar_transferencia) são
passiveis de serem retornados por este endpoint além dos erros listados abaixo.
:::

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                 | Descrição (eng)<br/>`description`                                     | Descrição (ptbr)<br/>`translation`                               |
|--------------------------|----------------------|------------------------------------|-----------------------------------------------------------------------|------------------------------------------------------------------|
| 400                      | TED000079            | No approver permission             | Given document number does not belong to an approver for this account | Número de documento enviado não pertence a um aprovador da conta |
| 400                      | TED000080            | tfa_info is required               | Client must send object tfa_info                                      | Cliente deve enviar objeto tfa_info                              |
| 400                      | TED000081            | Error occurred while sending token | An unexpected error occurred while sending token                      | Um erro inexperado ocorreu ao tentar enviar token                |
| 400                      | TED0000109           | Session ID needed | A session_id must be provided token | Uma session_id deve ser fornecida |

---

# Solicitar Reenvio de Token para uma Transação Ted

URL: /documentation/baas/ted/2fa/solicitacao_de_reenvio_de_token

Um novo token será gerado e enviado para o aprovador da transação Ted. Caso o número limite de tentativas de validação
do token tenha sido excedida, não será permitido o reenvio.

## Request

ENDPOINT /account/ ACCOUNT_KEY /ted/ TED_KEY /resend_token
MÉTODO PATCH

### Path Params

| Campo           | Tipo   | Descrição                                         | Caracteres |
|-----------------|--------|---------------------------------------------------|------------|
| `account_key` * | uuidv4 | Chave única de identificação da conta.            | 36         |
| `ted_key` *     | uuidv4 | Chave única de identificação da transferência TED | 36         |

## Body Params

| Campo          | Tipo   | Descrição                                                                                 | Caracteres |
|----------------|--------|-------------------------------------------------------------------------------------------|------------|
| `contact_type` | enumerator | Forma de envio do token de autenticação | **[Enumerador contact_type](#enumerador-contact_type)** |

:::info Informação
Caso não seja enviado um `contact_type`, o token será enviado da forma solicitada originalmente.
:::

### Enumerador contact_type

| Enumerador | Descrição                                         |
|------------|---------------------------------------------------|
| **sms**    | Envio por Mensagem de Texto para telefone celular |
| **email**  | Envio por correio eletrônico                      |

## Response

STATUS 202

Response Body: Transação Solicitada

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "ted_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "transaction_amount": 202.01,
  "fee_amount": 10,
  "ted_status": "pending_2fa_approval",
  "created_at": "2021-10-22T20:30:23.459Z"
}
```

STATUS 4xx

Response Body: Transferência Rejeitada

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {
    "ted_data": {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "ted_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "transaction_amount": 202.01,
      "fee_amount": 10,
      "ted_status": "rejected",
      "created_at": "2021-10-22T20:30:23.459Z"
    }
  }
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                           | Descrição (eng)<br/>`description`                                       | Descrição (ptbr)<br/>`translation`                                        |
|--------------------------|----------------------|----------------------------------------------|-------------------------------------------------------------------------|---------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                  | Schema Error                                                            | Erro de Schema                                                            |
| 404                      | TED000009            | Account not found                            | Account not found for the given key: \{account_key\}                    | Conta não encontrada para a chave fornecida: \{account_ke\}               |
| 404                      | TED000020            | Not Found                                    | Ted was not found for the given parameters.                             | Ted não encontrada para os parâmetros fornecidos.                         |
| 404                      | TED000086            | Invalid Status                               | Ted not in pending_2fa_approval status                                  | Ted não está pendente de aprovação por autenticação de dois fatores |
| 400                      | TED000082            | Number of token validation attempts exceeded | The maximum number of failed token validation attempts has been reached | Número máximo de tentativas de validação de token atingida                |
| 400                      | TED000087            | Error Sending Token                          | An error occurred while resending token and its being investigated      | Um erro ocorreu ao reenviar token e está sendo investigado                |

---

# Aprovar Transação em Lote com Autenticação de Dois Fatores

URL: /documentation/baas/ted/batch_2fa/aprovar_transacao_em_lote_ted_2fa

## Request

ENDPOINT /account/ ACCOUNT_KEY /ted_batch/ TED_BATCH_KEY /validate_token
MÉTODO PUT

### Path Params

| Campo           | Tipo   | Descrição                                              | Caracteres |
|-----------------|--------|--------------------------------------------------------|------------|
| `account_key`   | uuidv4 | Chave única de identificação da conta.                 | 36         |
| `ted_batch_key` | uuidv4 | Chave única de identificação da transação em lote ted. | 36         |

## Autenticação via Email e SMS

Request Body

```json
{
  "token": "329123"
}
```

## Autenticação via Dispositivo

Para aprovar e finalizar a autenticação via dispositivo, a requisição deve ser enviada com um payload vazio. A validação ocorre internamente, sem necessidade de informações adicionais no corpo da requisição. É importante destacar que este endpoint só deve ser utilizado após a [solicitação de transação em lote](./solicitacao_de_transacao_em_lote_ted_2fa.md) ter sido iniciada.

Request Body

```json
{

}
```

## Body Params

| Campo   | Tipo   | Descrição                                                                                                                              | Caracteres |
|---------|--------|----------------------------------------------------------------------------------------------------------------------------------------|------------|
| `token` | string | Código de autenticação enviado ao aprovador de movimentações da conta **obrigatório para TFA via SMS ou e-mail**                       | 6          |

## Response

STATUS 201

Response Body: Lote Aprovado

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "ted_batch_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "ted_batch_status": "approved"
}
```

STATUS 4xx

Response Body: Lote Rejeitado

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {
    "ted_batch_data": {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "ted_batch_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "ted_batch_status": "rejected"
    }
  }
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                           | Descrição (eng)<br/>`description`                                                                        | Descrição (ptbr)<br/>`translation`                                          |
|--------------------------|----------------------|----------------------------------------------|----------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------|
| 400                      | TED000082            | Number of token validation attempts exceeded | The maximum number of failed token validation attempts has been reached                                  | Número máximo de tentativas de validação de token atingida                  |
| 400                      | TED000083            | Token Expired                                | Token has expired. Resend token or recreate transferToken has expired. Resend token or recreate transfer | Token expirado. Reenvie token ou recrie a transferência                     |
| 400                      | TED000084            | Incorrect Token                              | Token sent does not match expected                                                                       | Token enviado não condiz com, o esperado                                    |
| 404                      | TED000101            | TedBatch not Found                           | Ted Batch was not found                                                                                  | TedBatch não encontrada                                                     |
| 400                      | TED000102            | Invalid Status                               | Ted Batch not in pending_2fa_approval status                                                             | Lote de Ted não está pendente de aprovação por autenticação de dois fatores |
| 400                      | TED000110            | Token Required                               | A token is required for SMS or email validation.                                                         | Um token é necessário para validação via SMS ou email.                                                     |

---

# Solicitar Reenvio de Token para uma Transação Ted em Lote

URL: /documentation/baas/ted/batch_2fa/solicitacao_de_reenvio_de_token_para_lote_ted

Um novo token será gerado e enviado para o aprovador de movimentação da conta. Caso o número limite de tentativas de
validação do token tenha sido excedida, não será permitido o reenvio.

## Request

ENDPOINT /account/ ACCOUNT_KEY /ted_batch/ TED_BATCH_KEY /resend_token
MÉTODO PATCH

### Path Params

| Campo             | Tipo   | Descrição                                          | Caracteres |
|-------------------|--------|----------------------------------------------------|------------|
| `account_key` *   | uuidv4 | Chave única de identificação da conta.             | 36         |
| `ted_batch_key` * | uuidv4 | Chave única de identificação da transação em lote. | 36         |

Request Body

```json
{
  "contact_type": "sms"
}
```

## Body Params

| Campo          | Tipo       | Descrição                               | Caracteres                                              |
|----------------|------------|-----------------------------------------|---------------------------------------------------------|
| `contact_type` | enumerator | Forma de envio do token de autenticação | **[Enumerador contact_type](#enumerador-contact_type)** |

:::info Informação
Caso não seja enviado um `contact_type`, o token será enviado da forma solicitada originalmente.
:::

### Enumerador contact_type

| Enumerador | Descrição                                         |
|------------|---------------------------------------------------|
| **sms**    | Envio por Mensagem de Texto para telefone celular |
| **email**  | Envio por correio eletrônico                      |

## Response

STATUS 202

Response Body: Transação Solicitada

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "ted_batch_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "ted_status": "pending_2fa_approval"
}
```

STATUS 4xx

Response Body: Transferência Rejeitada

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {
    "ted_data": {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "ted_batch_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "ted_status": "rejected"
    }
  }
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                           | Descrição (eng)<br/>`description`                                       | Descrição (ptbr)<br/>`translation`                                          |
|--------------------------|----------------------|----------------------------------------------|-------------------------------------------------------------------------|-----------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                  | Schema Error                                                            | Erro de Schema                                                              |
| 404                      | TED000009            | Account not found                            | Account not found for the given key: \{account_key\}                    | Conta não encontrada para a chave fornecida: \{account_ke\}                 |
| 404                      | TED000020            | Not Found                                    | Ted was not found for the given parameters.                             | Ted não encontrada para os parâmetros fornecidos.                           |
| 400                      | TED000082            | Number of token validation attempts exceeded | The maximum number of failed token validation attempts has been reached | Número máximo de tentativas de validação de token atingida                  |
| 400                      | TED000083            | Token Expired                                | Token has expired. Resend token or recreate transfer                    | Token expirado. Reenvie token ou recrie a transferência                     |
| 400                      | TED000084            | Incorrect Token                              | Token sent does not match expected                                      | Token enviado não condiz com, o esperado                                    |
| 404                      | TED000086            | Invalid Status                               | Ted not in pending_2fa_approval status                                  | Ted não está pendente de aprovação por autenticação de dois fatores         |
| 400                      | TED000087            | Error Sending Token                          | An error occurred while resending token and its being investigated      | Um erro ocorreu ao reenviar token e está sendo investigado                  |
| 404                      | TED000101            | TedBatch not Found                           | Ted Batch was not found                                                 | TedBatch não encontrada                                                     |
| 400                      | TED000102            | Invalid Status                               | Ted Batch not in pending_2fa_approval status                            | Lote de Ted não está pendente de aprovação por autenticação de dois fatores |

---

# Realizar Transação Ted em Lote com Autenticação de Dois Fatores

URL: /documentation/baas/ted/batch_2fa/solicitacao_de_transacao_em_lote_ted_2fa

A QI Tech oferece a possibilidade de realizar várias transações ted com uma única chamada. Nesse sistema as transações
são realizadas de forma assíncrona. Caso na chamada inicial seja retornado um **http status 4xx**, nenhuma das
transações será realizada. Após a solicitação, o parceiro integrador receberá um webhook para cada transação informando
o status final da tentativa, podendo ser **rejected** ou **sent**.

Neste tipo de transação, é necessário a confirmação do pagamento via token enviado à pessoa com poderes de aprovação de
movimentação na conta credora.

A solicitação de transação Ted por parceiros integradores configurados para a utilização de autenticação de dois fatores
é realizada de forma similar ao descrito
em [realizar transação ted em lote](/documentation/baas/ted/batch/solicitacao_de_transacao_em_lote_ted). A diferença
ocorre na adição do objeto `tfa_info`, contento informações sobre o aprovador da transferência e a forma de contato, e o
status de uma solicitação bem sucedida que será sempre **pending_2fa_approval**.

O evento de notificação para o envio de `token` ao aprovador é **baas.token_validation.ted.batch**. É
possível [personalizar](/documentation/notificacoes/template) a mensagem enviada.

## Request

ENDPOINT /account/ ACCOUNT_KEY /ted_batch
MÉTODO POST

## Autenticação via Email e SMS

Request Body: Transferência em Lote com TFA por SMS ou Email

```json
{
  "request_control_key": "6e4fc980-f8a1-4462-b6e2-d8a49f0ac055",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  },
  "teds": [
    {
      "request_control_key": "0c3d2a3e-c121-464e-b5a4-8e69e0c17bbd",
      "target_account": {
        "account_branch": "0001",
        "account_number": "92796",
        "account_digit": "1",
        "owner_document_number": "23599885000192",
        "owner_name": "Titular da Conta",
        "ispb": "12345678",
        "account_type": "checking_account"
      },
      "transaction_amount": 8.86
    },
    {
      "request_control_key": "ff9f2a48-918c-4911-9371-a496e37dccfc",
      "target_account": {
        "account_branch": "0001",
        "account_number": "92797",
        "account_digit": "2",
        "owner_document_number": "23599885000192",
        "owner_name": "Titular da Conta",
        "ispb": "12345678",
        "account_type": "checking_account"
      },
      "transaction_amount": 10.00
    }
  ]
}
```

## Autenticação via Dispositivo

Além das formas já existentes de autenticação via **sms** e **email**, é possível autenticar a transação utilizando um dispositivo [previamente cadastrado](/documentation/baas/dispositivo/create/solicitacao_cadastro_dispositivo). Nesse caso, o `session_id` deve ser obtido na **Device Scan** e enviado no `tfa_info`.

Request Body: Transferência em Lote com TFA por Dispositivo

```json
{
  "request_control_key": "6e4fc980-f8a1-4462-b6e2-d8a49f0ac055",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "session_id": "b2f18d3a-67c2-4a7f-98e5-1d3f5c6b8a72",
    "contact_type": "device"
  },
  "teds": [
    {
      "request_control_key": "0c3d2a3e-c121-464e-b5a4-8e69e0c17bbd",
      "target_account": {
        "account_branch": "0001",
        "account_number": "92796",
        "account_digit": "1",
        "owner_document_number": "23599885000192",
        "owner_name": "Titular da Conta",
        "ispb": "12345678",
        "account_type": "checking_account"
      },
      "transaction_amount": 8.86
    },
    {
      "request_control_key": "ff9f2a48-918c-4911-9371-a496e37dccfc",
      "target_account": {
        "account_branch": "0001",
        "account_number": "92797",
        "account_digit": "2",
        "owner_document_number": "23599885000192",
        "owner_name": "Titular da Conta",
        "ispb": "12345678",
        "account_type": "checking_account"
      },
      "transaction_amount": 10.00
    }
  ]
}
```

## Path Params

| Campo         | Tipo   | Descrição                              | Caracteres |
|---------------|--------|----------------------------------------|------------|
| `account_key` | uuidv4 | Chave única de identificação da conta. | 36         |

## Body Params

| Campo                   | Tipo   | Descrição                                                                          | Caracteres                              |
|-------------------------|--------|------------------------------------------------------------------------------------|-----------------------------------------|
| `request_control_key` * | uuidv4 | Chave única de identificação da request utilizada pelo cliente no formato uuid v4. | 36                                      | 
| `teds` *                | array  | Lista de objetos ted vinculados ao lote.                                           | lista de **[Objeto ted](#objeto-ted)**  |
| `tfa_info`*             | Object | Objeto contendo o documento da pessoa aprovadora da conta e a forma de contato.    | **[Objeto tfa_info](#objeto-tfa_info)** |

## Objeto tfa_info

| Campo                       | Tipo   | Descrição                                                                                                                        | Caracteres |
|-----------------------------|--------|----------------------------------------------------------------------------------------------------------------------------------|------------|
| `approver_document_number`* | string | Número de documento da pessoa aprovadora da conta.                                                                               | 11         |
| `session_id`                | string | Chave única de identificação da sessão do dispositivo no formato UUID v4 (obrigatório para TFA via dispositivo).                 | 36         |
| `contact_type`*             | string | Forma de contato com a pessoa aprovadora da conta, podendo ser **sms**, **email** ou **device**                                  |            |

## Objeto ted

| Campo                   | Tipo   | Descrição                                                                          | Caracteres                                          |
|-------------------------|--------|------------------------------------------------------------------------------------|-----------------------------------------------------|
| `request_control_key` * | string | Chave única de identificação da request utilizada pelo cliente no formato uuid v4. | 36                                                  |
| `target_account` *      | object | Conta de destino                                                                   | **[Objeto target_account](#objeto-target_account)** | 
| `transaction_amount` *  | float  | Valor da transferência                                                             | 10                                                  |

## Objeto target_account

| Campo                     | Tipo   | Descrição                                           | Caracteres                                              |
|---------------------------|--------|-----------------------------------------------------|---------------------------------------------------------|
| `account_branch` *        | string | Agência.                                            | 4                                                       |
| `account_digit` *         | string | Dígito da conta                                     | 1                                                       |
| `account_number` *        | string | Número da conta.                                    | 20                                                      |
| `owner_document_number` * | string | CPF ou CNPJ (apenas números) do titular da conta.   | 14                                                      |
| `owner_name` *            | string | Nome do titular da conta.                           | 50                                                      |
| `account_type`*           | string | Tipo da conta.                                      | **[Enumerador account_type](#enumerador-account_type)** |
| `ispb` *                  | string | Base no CNPJ da instituição financeira (8 dígitos). | 8                                                       |

## Enumerador account_type

| Enumerador             | Tradução              |
|------------------------|-----------------------|
| **checking_account**   | conta corrente        |
| **deposit_account**    | conta depósito        |
| **guaranteed_account** | conta de garantia     |
| **investment_account** | conta de investimento |
| **payment_account**    | conta de pagamento    |
| **saving_account**     | conta poupança        |

## Response

STATUS 202

Response Body: Transferência em Lote Solicitada

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "ted_batch_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "ted_batch_status": "pending_2fa_approval"
}
```

### Enumerador ted_batch_status

| Enumerador               | Descrição                                                                  |
|--------------------------|----------------------------------------------------------------------------|
| **approved**             | Transferência em lote aprovada e transações em processo de execução.       |
| **rejected**             | Transferência em lote rejeitada                                            |
| **pending_2fa_approval** | Agendamento em lote pendente de aprovação por autenticação de dois fatores |
| **cancelled**            | Transferência em lote cancelada                                            |

STATUS 4xx

Response Body: Transferência Rejeitada

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {
    "ted_batch_data": {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "ted_batch_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "ted_batch_status": "rejected"
    }
  }
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

:::info Informação
Os erros anteriormente listados para [transferência Ted](/documentation/baas/ted/solicitacao_de_transacao_em_lote_ted)
são
passiveis de serem retornados por este endpoint além dos erros listados abaixo.
:::

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                 | Descrição (eng)<br/>`description`                                     | Descrição (ptbr)<br/>`translation`                               |
|--------------------------|----------------------|------------------------------------|-----------------------------------------------------------------------|------------------------------------------------------------------|
| 400                      | TED000079            | No approver permission             | Given document number does not belong to an approver for this account | Número de documento enviado não pertence a um aprovador da conta |
| 400                      | TED000080            | tfa_info is required               | Client must send object tfa_info                                      | Cliente deve enviar objeto tfa_info                              |
| 400                      | TED000081            | Error occurred while sending token | An unexpected error occurred while sending token                      | Um erro inexperado ocorreu ao tentar enviar token                |

---

# Listar Transações Ted de um lote de uma conta

URL: /documentation/baas/ted/batch/listar_transacoes_de_um_lote_de_transacoes_ted

## Request

ENDPOINT /account/ ACCOUNT_KEY /ted_batch/ TED_BATCH_KEY /teds
MÉTODO GET

### Path Params

| Campo           | Tipo   | Descrição                                          | Caracteres |
|-----------------|--------|----------------------------------------------------|------------|
| `account_key`   | uuidv4 | Chave única de identificação da conta.             | 36         |
| `ted_batch_key` | uuidv4 | Chave única de identificação da transação em lote. | 36         |

### Query Params

| Campo                 | Tipo    | Descrição                                                               | Caracteres                                          |
|-----------------------|---------|-------------------------------------------------------------------------|-----------------------------------------------------|
| `request_control_key` | uuidv4  | Chave única de identificação da request utilizada pelo cliente.         | 36                                                  |
| `ted_status`          | string  | Status da transação TED. Pode ser enviado como lista.                   | **[Enumerador ted_status](#enumerador-ted_status)** |
| `date_from`           | string  | Data inicial. Formato "YYYY-MM-DD"                                      | 10                                                  |
| `date_to`             | string  | Data final. Formato "YYYY-MM-DD"                                        | 10                                                  |
| `page`                | integer | Número da página requisitada. 1 por padrão                              |                                                     |
| `page_size`           | integer | Tamanho da página requisitada na consulta. 30 por padrão e valor máximo | Valor máximo de 30                                  |

## Enumerador ted_status

| Enumerador   | Descrição                                |
|--------------|------------------------------------------|
| **sent**     | Transferência TED realizada com sucesso. |
| **pending**  | Transferência TED pendente.              |
| **rejected** | Transferência TED rejeitada.             |
| **returned** | Transferência TED devolvida.             |

### Response

STATUS 200

Response Body

```json
{
  "data": [
    {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "ted_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "ted_status": "sent"
    },
    {
      "request_control_key": "697c07c3-5398-48d2-a418-853323f85f97",
      "ted_key": "e95eabdb-4520-4c3d-a76f-99cb5b64724b",
      "ted_status": "sent"
    },
    {
      "request_control_key": "ca35c526-b5a0-40d7-8c56-8566c77a34f4",
      "ted_key": "58d2fa9e-42ec-4779-b2fc-14ec98cbdca8",
      "ted_status": "rejected"
    }
  ],
  "pagination": {
    "current_page": 1,
    "rows_per_page": 30
  }
}

```

---

# Listar Transações em Lote de uma conta

URL: /documentation/baas/ted/batch/listar_transacoes_em_lote_ted_de_uma_conta

## Request

ENDPOINT /account/ ACCOUNT_KEY /ted_batches
MÉTODO GET

### Path Params

| Campo         | Tipo   | Descrição                              | Caracteres |
|---------------|--------|----------------------------------------|------------|
| `account_key` | uuidv4 | Chave única de identificação da conta. | 36         |

### Query Params

| Campo                 | Tipo    | Descrição                                                               | Caracteres                                                      |
|-----------------------|---------|-------------------------------------------------------------------------|-----------------------------------------------------------------|
| `request_control_key` | uuidv4  | Chave única de identificação da request utilizada pelo cliente.         | 36                                                              |
| `ted_batch_status`    | uuidv4  | Status do lote de transações Ted. Pode ser enviado como lista.          | **[Enumerador ted_batch_status](#enumerador-ted_batch_status)** |
| `date_from`           | string  | Data inicial. Formato "YYYY-MM-DD"                                      | 10                                                              |
| `date_to`             | string  | Data final. Formato "YYYY-MM-DD"                                        | 10                                                              |
| `page`                | integer | Número da página requisitada. 1 por padrão                              |                                                                 |
| `page_size`           | integer | Tamanho da página requisitada na consulta. 30 por padrão e valor máximo | Valor máximo de 30                                              |

### Enumerador ted_batch_status

| Enumerador               | Descrição                                                                  |
|--------------------------|----------------------------------------------------------------------------|
| **approved**             | Transferência em lote aprovada e transações em processo de execução.       |
| **rejected**             | Transferência em lote rejeitada                                            |
| **pending_2fa_approval** | Agendamento em lote pendente de aprovação por autenticação de dois fatores |
| **cancelled**            | Transferência em lote cancelada                                            |

### Response

STATUS 200

Response Body

```json
{
  "data": [
    {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "ted_batch_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "ted_batch_status": "approved"
    },
    {
      "request_control_key": "939d1503-aa5a-49a6-ae3b-ff84122a6dd3",
      "ted_batch_key": "03cf9181-0eb9-480e-8bb4-66a5a9a6410e",
      "ted_batch_status": "rejected"
    },
    {
      "request_control_key": "43a14f3a-b2af-4a0e-8a74-70af2fca74a9",
      "ted_batch_key": "94ab9fad-9c65-4117-b9c3-a47b1269508f",
      "ted_batch_status": "approved"
    }
  ],
  "pagination": {
    "current_page": 1,
    "next_page": null,
    "rows_per_page": 30
  }
}

```

---

# Realizar Transação Ted em Lote

URL: /documentation/baas/ted/batch/solicitacao_de_transacao_em_lote_ted

A QI Tech oferece a possibilidade de realizar várias transações ted com uma única chamada. Nesse sistema, as transações
são realizadas de forma assíncrona. Caso na chamada inicial seja retornado um **http status 4xx**, nenhuma das
transações será realizada. Após a solicitação, o parceiro integrador receberá um webhook para cada transação informando
o status final da tentativa, podendo ser **rejected** ou **sent**.

## Request

ENDPOINT /account/ ACCOUNT_KEY /ted_batch
MÉTODO POST

```json
{
  "request_control_key": "6e4fc980-f8a1-4462-b6e2-d8a49f0ac055",
  "teds": [
    {
      "request_control_key": "0c3d2a3e-c121-464e-b5a4-8e69e0c17bbd",
      "target_account": {
        "account_branch": "0001",
        "account_number": "92796",
        "account_digit": "1",
        "owner_document_number": "23599885000192",
        "owner_name": "Titular da Conta",
        "ispb": "12345678",
        "account_type": "checking_account"
      },
      "transaction_amount": 8.86
    }
  ]
}
```

## Path Params

| Campo         | Tipo   | Descrição                              | Caracteres |
|---------------|--------|----------------------------------------|------------|
| `account_key` | uuidv4 | Chave única de identificação da conta. | 36         |

## Body Params

| Campo                   | Tipo   | Descrição                                                                          | Caracteres                             |
|-------------------------|--------|------------------------------------------------------------------------------------|----------------------------------------|
| `request_control_key` * | uuidv4 | Chave única de identificação da request utilizada pelo cliente no formato uuid v4. | 36                                     | 
| `teds` *                | array  | Lista de objetos ted vinculados ao lote.                                           | lista de **[Objeto ted](#objeto-ted)** |

## Objeto ted

| Campo                   | Tipo   | Descrição                                                                          | Caracteres                                          |
|-------------------------|--------|------------------------------------------------------------------------------------|-----------------------------------------------------|
| `request_control_key` * | string | Chave única de identificação da request utilizada pelo cliente no formato uuid v4. | 36                                                  |
| `target_account` *      | object | Conta de destino                                                                   | **[Objeto target_account](#objeto-target_account)** | 
| `transaction_amount` *  | float  | Valor da transferência                                                             | 10                                                  |

## Objeto target_account

| Campo                     | Tipo   | Descrição                                           | Caracteres                                              |
|---------------------------|--------|-----------------------------------------------------|---------------------------------------------------------|
| `account_branch` *        | string | Agência.                                            | 4                                                       |
| `account_digit` *         | string | Dígito da conta                                     | 1                                                       |
| `account_number` *        | string | Número da conta.                                    | 20                                                      |
| `owner_document_number` * | string | CPF ou CNPJ (apenas números) do titular da conta.   | 14                                                      |
| `owner_name` *            | string | Nome do titular da conta.                           | 50                                                      |
| `account_type`*           | string | Tipo da conta.                                      | **[Enumerador account_type](#enumerador-account_type)** |
| `ispb` *                  | string | Base no CNPJ da instituição financeira (8 dígitos). | 8                                                       |

## Enumerador account_type

| Enumerador             | Tradução              |
|------------------------|-----------------------|
| **checking_account**   | conta corrente        |
| **deposit_account**    | conta depósito        |
| **guaranteed_account** | conta de garantia     |
| **investment_account** | conta de investimento |
| **payment_account**    | conta de pagamento    |
| **saving_account**     | conta poupança        |

## Response

STATUS 201

Response Body: Transferência em lote Aprovada

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "ted_batch_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "ted_batch_status": "approved"
}
```

### Enumerador ted_batch_status

| Enumerador               | Descrição                                                                  |
|--------------------------|----------------------------------------------------------------------------|
| **approved**             | Transferência em lote aprovada e transações em processo de execução.       |
| **rejected**             | Transferência em lote rejeitada                                            |
| **pending_2fa_approval** | Agendamento em lote pendente de aprovação por autenticação de dois fatores |
| **cancelled**            | Transferência em lote cancelada                                            |

STATUS 4xx

Response Body: Lote Rejeitado

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {
    "ted_batch_data": {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "ted_batch_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "ted_batch_status": "rejected"
    }
  }
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

:::info Informação
Os erros anteriormente listados para [transferência Ted](/documentation/baas/ted/realizar_transferencia) são
passiveis de serem retornados por este endpoint.
:::

---

# Consultar TED

URL: /documentation/baas/ted/consultar_ted

## Request

ENDPOINT /account/ ACCOUNT_KEY /ted/ TED_KEY / TED_DIRECTION
MÉTODO GET

## Request Path Params

| Campo             | Tipo   | Descrição                                                   | Caracteres                                                  |
|-------------------|--------|-------------------------------------------------------------|-------------------------------------------------------------|
| `ted_direction` * | string | Filtro para indicar se uma transação é de entrada ou saída. | **[Enumerador ted_direction](#enumeradores-ted_direction)** |
| `account_key` *   | uuidv4 | Chave única de identificação da conta QI                    | 36                                                          |
| `ted_key` *       | uuidv4 | Chave única de identificação da transferência TED           | 36                                                          |

## Enumeradores ted_direction

| Enumerador | Tradução |
|------------|----------|
| incoming   | entrada  |
| outgoing   | saída    |

:::caution Atenção
Será apenas permitida a visualização de uma transferência caso o requisitante tenha permissões na conta de saída da
transação para o caso da ted_direction de outgoing ou tenha permissões na conta de entrada da
transação para o caso da ted_direction de incoming. Caso o contrário um erro de não encontrado será retornado.
:::

## Response

STATUS 200

Response Body: Transferência Rejeitada (outgoing)

```json
{
  "request_control_key": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3",
  "ted_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "account_key": "fc6862c4-2b20-4057-8063-b8809866e494",
  "created_at": "2021-10-22T20:30:23.459Z",
  "ted_status": "rejected",
  "transaction_amount": 126.97,
  "fee_amount": 0.0,
  "target_account": {
    "account_branch": "0001",
    "account_digit": "6",
    "account_number": "78340",
    "ispb": "12345678",
    "owner_document_number": "32402502000135",
    "owner_name": "QI Tech"
  },
  "refusal_reason": {
    "refusal_code": 1,
    "enumerator": "conta_destinatario_encerrada",
    "description": "Conta Destinatária do Crédito Encerrada"
  }
}
```

Response Body: Transferência Enviada (outgoing)

```json
{
  "request_control_key": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3",
  "ted_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "account_key": "fc6862c4-2b20-4057-8063-b8809866e494",
  "created_at": "2021-10-22T20:30:23.459Z",
  "ted_status": "sent",
  "transaction_amount": 126.97,
  "fee_amount": 0.0,
  "target_account": {
    "account_branch": "0001",
    "account_digit": "6",
    "account_number": "78340",
    "ispb": "12345678",
    "owner_document_number": "32402502000135",
    "owner_name": "QI Tech"
  },
  "refusal_reason": {}
}
```

Response Body: Transferência Recebida (incoming)

```json
{
  "request_control_key": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3",
  "ted_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "account_key": "fc6862c4-2b20-4057-8063-b8809866e494",
  "created_at": "2021-10-22T20:30:23.459Z",
  "ted_status": "received",
  "transaction_amount": 126.97,
  "fee_amount": 0.0,
  "source_account": {
    "account_branch": "0001",
    "account_digit": "6",
    "account_number": "78340",
    "ispb": "12345678",
    "owner_document_number": "32402502000135",
    "owner_name": "QI Tech"
  },
  "refusal_reason": {}
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`     | Descrição (eng)<br/>`description` | Descrição (ptbr)<br/>`translation`                                     |
|--------------------------|----------------------|------------------------|-----------------------------------|------------------------------------------------------------------------|
| 404                      | TED000020            | Not Found | Ted was not found for the given parameters. | Ted não encontrada para os parâmetros fornecidos.   |

---

# Listar TEDs

URL: /documentation/baas/ted/listar_teds

## Request

ENDPOINT /account/ ACCOUNT_KEY /teds
MÉTODO GET

## Path Params

| Campo           | Tipo   | Descrição                                | Caracteres |
|-----------------|--------|------------------------------------------|------------|
| `account_key` * | uuidv4 | Chave única de identificação da conta QI | 36         |

## Query Params

| Campo                 | Tipo       | Descrição                                                                                                  | Caracteres                                                                  |
|-----------------------|------------|------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------|
| `ted_direction`       | enumerator | Indicador do sentido da transação (entrada ou saída). Caso não seja enviado, **outgoing** será considerado | [Enumeradores ted_transfer_direction](#enumeradores-ted_transfer_direction) |
| `request_control_key` | uuidv4     | Chave única de identificação da request utilizada pelo cliente.                                            | 36                                                                          |
| `date_from`           | string     | Data inicial. Formato "YYYY-MM-DD"                                                                         |                                                                             |
| `date_to`             | string     | Data final. Formato "YYYY-MM-DD"                                                                           |                                                                             |
| `page`                | integer    | Número da página requisitada. 1 por padrão                                                                 |                                                                             |
| `page_size`           | integer    | Tamanho da página requisitada na consulta. 30 por padrão e valor máximo                                    | Valor máximo de 30                                                          |

## Enumeradores ted_transfer_direction

| Enumerador   | Descrição                    |
|--------------|------------------------------|
| **incoming** | Transferência TED de entrada |
| **outgoing** | Transferência TED de saída   |

## Response

STATUS 200

Response Body

```json
{
  "data": [
    {
      "request_control_key": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3",
      "ted_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "account_key": "fc6862c4-2b20-4057-8063-b8809866e494",
      "created_at": "2021-10-22T20:30:23.459Z",
      "ted_status": "sent",
      "transaction_amount": 126.97,
      "fee_amount": 0.0,
      "target_account": {
        "account_branch": "0001",
        "account_digit": "6",
        "account_number": "78340",
        "ispb": "12345678",
        "owner_document_number": "32402502000135",
        "owner_name": "QI Tech"
      },
      "refusal_reason": {}
    }
  ],
  "pagination": {
    "current_page": 1,
    "rows_per_page": 30
  }
}

```

---

# Realizar TED

URL: /documentation/baas/ted/realizar_transferencia

O recebimento de uma transação TED não é instantânea no sistema financeiro nacional. Ao realizar uma transação TED no
sistema QI uma resposta imediata será retornada informando erro, rejeição ou aceite da transferencia. Mesmo que uma
transferência tenha sido colocada em `sent`, a Instituição Financeira recebedora pode recusar a entrada de
recurso e
realizar a devolução do valor. Neste caso um novo webhook com status de `rejected` será enviado e o motivo da rejeição
retornado no campo `refusal_reason`.

Débitos na conta fonte da transação serão realizados imediatamente. Isso não significa que o valor foi creditado na
conta destino devido aos princípios de transações TED descritos acima. Caso ocorra a rejeição da transação enviada, o
valor da transação será creditado novamente à conta fonte.

## Request

ENDPOINT /account/ ACCOUNT_KEY /ted
MÉTODO POST

Request Body

```json
{
  "request_control_key": "0c3d2a3e-c121-464e-b5a4-8e69e0c17bbd",
  "target_account": {
    "account_branch": "0001",
    "account_number": "92796",
    "account_digit": "1",
    "owner_document_number": "23599885000192",
    "owner_name": "Titular da Conta",
    "ispb": "12345678",
    "account_type": "checking_account"
  },
  "transaction_amount": 8.86
}
```

## Body Params

| Campo                   | Tipo   | Descrição                                                                          | Caracteres                                          |
|-------------------------|--------|------------------------------------------------------------------------------------|-----------------------------------------------------|
| `request_control_key` * | string | Chave única de identificação da request utilizada pelo cliente no formato uuid v4. | 36                                                  |
| `target_account` *      | object | Conta de destino                                                                   | **[Objeto target_account](#objeto-target_account)** | 
| `transaction_amount` *  | float  | Valor da transferência                                                             | 10                                                  |

## Objeto target_account

| Campo                     | Tipo   | Descrição                                           | Caracteres                                                |
|---------------------------|--------|-----------------------------------------------------|-----------------------------------------------------------|
| `account_branch` *        | string | Agência.                                            | 4                                                         |
| `account_digit` *         | string | Dígito da conta                                     | 1                                                         |
| `account_number` *        | string | Número da conta.                                    | 20                                                        |
| `owner_document_number` * | string | CPF ou CNPJ (apenas números) do titular da conta.   | 14                                                        |
| `owner_name` *            | string | Nome do titular da conta.                           | 50                                                        |
| `account_type`*           | string | Tipo da conta.                                      | **[Enumerador account_type](#enumerador-account_type)** |
| `ispb` *                  | string | Base no CNPJ da instituição financeira (8 dígitos). | 8                                                         |

## Enumerador account_type

| Enumerador             | Tradução              |
|------------------------|-----------------------|
| **checking_account**   | conta corrente        |
| **deposit_account**    | conta depósito        |
| **guaranteed_account** | conta de garantia     |
| **investment_account** | conta de investimento |
| **payment_account**    | conta de pagamento    |
| **saving_account**     | conta poupança        |

## Response

STATUS 201

Response Body

```json
{
  "request_control_key": "0c3d2a3e-c121-464e-b5a4-8e69e0c17bbd",
  "ted_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "created_at": "2021-10-22T20:30:23.459Z",
  "ted_status": "sent",
  "transaction_amount": 126.97,
  "fee_amount": 0.0,
  "transaction_key": "46804f32-101e-4702-8fbc-c2dbc4c2caec"
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`          | Descrição (eng)<br/>`description`                                                                                       | Descrição (ptbr)<br/>`translation`                                                                                     |
|--------------------------|----------------------|-----------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                 | Schema Error                                                                                                            | Erro de Schema                                                                                                         |
| 400                      | TED000066            | InvalidUuid                 | request_control_key was not accepted for not being a valid uuid v4 string                                               | request_control_key não foi aceito por não ser uma palavra uuid v4 válida                                              |
| 400                      | TED000011            | InvalidUuid                 | Wrong day/time for TED                                                                                                  | Dia/hora incorretos para a TED                                                                                         |
| 400                      | TED000055            | Invalid Observation         | Observation sent is invalid                                                                                             | Observação enviada é inválida                                                                                          |
| 400                      | TED000054            | Invalid Transaction Amount  | Transaction amount of \{transaction_amount\} is not valid. It must be a positive value with at maximum 2 decimal places | O valor de transação \{transaction_amount\} não é válido. Deve ser um valor positivo com no máximo duas casas decimais |
| 400                      | TED000012            | Bad Request                 | The target's length of the account + account_digit cannot be larger than 21                                             | O número de digitos na conta de destino + digito não pode ser maior que 21                                             |
| 400                      | TED000053            | Invalid Target Account Type | Target Account Type \{account_type\} is invalid                                                                         | Tipo de conta destino \{account_type\} é inválido                                                                      |
| 400                      | TED000031            | Bad Request                 | ISPB number \{ispb\} does not exist or is inactive                                                                      | ISPB \{ispb\} não existe ou está inativo                                                                               |
| 400                      | TED000065            | Bad Request                 | It has been identified by request_control_key that this request is already being processed                              | Foi identificado por request_control_key que está requisição está sendo processada                                     |
| 403                      | TED000071            | Invalid target account      | Invalid target account                                                                                                  | Conta destino inválida                                                                                                 |
| 400                      | TED000058            | Bad Request                 | Insufficient account balance for transfer and fee amount                                                                | Saldo de conta insuficiente para a transação e a taxa                                                                  |
| 400                      | TED000070            | Bad Request                 | Insufficient account balance fee amount in billing account                                                              | Saldo de conta centralizadora insuficiente para taxa                                                                   |
| 400                      | TED000071            | Bad Request                 | Transaction cannot be made due to already blocked balance                                                               | Transação não pode ser feita pois saldo em conta bloqueado                                                             |
| 400                      | TED000068            | Bad Request                 | Transfer rejected by the system                                                                                         | transferêancia foi recusada pelo sistema                                                                               |
| 404                      | TED000013            | Bad Request                 | Unable to find source_account_key's account                                                                             | Não foi possível encontrar a conta com source_account_key fornecido                                                    |
| 400                      | TED000015            | Bad Request                 | Account blocked or closed can not perform this action                                                                   | A conta bloqueada ou fechada não pode executar esta ação                                                               |
| 400                      | TED000016            | Bad Request                 | Hub account can not perform this action                                                                                 | A conta hub não pode executar esta ação                                                                                |
| 403                      | TED000017            | Unauthorized                | Provided account does not have approval credential for the given person                                                 | A conta fornecida não possui credencial de aprovação para a pessoa especificada                                        |
| 403                      | TED000018            | Unauthorized                | Provided account not owned by SELECTED_AGENT                                                                            | Conta fornecida não pertencente ao SELECTED_AGENT                                                                      |
| 400                      | TED000060            | Bad Request                 | Billing Account is closed                                                                                               | Conta centralizadora de pagamentos de tarifa fechada                                                                   |
| 400                      | TED000061            | Bad Request                 | Billing Account without necessary funds                                                                                 | Conta centralizadora de pagamentos sem saldo necessário                                                                |
| 409                      | TED000064            | Bad Request                 | request_control_key \{request_control_key\} already in use                                                              | request_control_key \{request_control_key\} já utilizada                                                               |

---

# Aprovar Agendamento de Transação Ted com Autenticação de Dois Fatores

URL: /documentation/baas/ted/schedule_2fa/aprovacao_de_agendamento_2fa

## Request

ENDPOINT /account/ ACCOUNT_KEY /ted_schedule/ SCHEDULE_KEY /validate_token
MÉTODO PUT

### Path Params

| Campo          | Tipo   | Descrição                                    | Caracteres |
|----------------|--------|----------------------------------------------|------------|
| `account_key`  | uuidv4 | Chave única de identificação da conta.       | 36         |
| `schedule_key` | uuidv4 | Chave única de identificação do agendamento. | 36         |

## Autenticação via Email e SMS

Request Body

```json
{
  "token": "329123"
}
```

## Autenticação via Dispositivo

Para aprovar e finalizar a autenticação via dispositivo, a requisição deve ser enviada com um payload vazio. A validação ocorre internamente, sem necessidade de informações adicionais no corpo da requisição. É importante destacar que este endpoint só deve ser utilizado após a [solicitação de agendamento](./solicitacao_de_agendamento_2fa.md) ter sido iniciada.

Request Body

```json
{

}
```

## Body Params

| Campo   | Tipo   | Descrição                                                                                                                              | Caracteres |
|---------|--------|----------------------------------------------------------------------------------------------------------------------------------------|------------|
| `token` | string | Código de autenticação enviado ao aprovador de movimentações da conta **obrigatório para TFA via SMS ou e-mail**                       | 6          |

## Response

STATUS 201

Response Body: Agendamento Aprovado

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "schedule_key": "f64b3fa7-d09d-4927-ad4f-b966df9fb153",
  "schedule_status": "scheduled",
  "schedule_date": "2024-12-31"
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                           | Descrição (eng)<br/>`description`                                                 | Descrição (ptbr)<br/>`translation`                                              |
|--------------------------|----------------------|----------------------------------------------|-----------------------------------------------------------------------------------|---------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                  | schema error description                                                          | Schema Inválido                                                                 |
| 404                      | TED000009            | Not Found                                    | Account not found for the given key: \{account_key\}                              | Conta não encontrada para a chave fornecida: \{account_key\}                    |
| 403                      | TED000018            | Unauthorized                                 | Provided account not owned by SELECTED_AGENT                                      | Conta fornecida não pertencente ao SELECTED_AGENT                               |
| 400                      | TED000082            | Number of token validation attempts exceeded | The maximum number of failed token validation attempts has been reached           | Número máximo de tentativas de validação de token atingida                      |
| 400                      | TED000083            | Token Expired                                | Token has expired. Resend token or recreate transfer                              | Token expirado. Reenvie token ou recrie a transferência                         |
| 400                      | TED000084            | Incorrect Token                              | Token sent does not match expected                                                | Token enviado não condiz com, o esperado                                        |
| 400                      | TED000085            | Error Validating Token                       | An error occurred while validating token and it is being investigated             | Um erro ocorreu ao validar token e está sendo investigado                       |
| 400                      | TED000086            | Invalid Status                               | Ted not in pending_2fa_approval status                                            | Ted não está pendente de aprovação por autenticação de dois fatores             |
| 404                      | TED000093            | TedSchedule not Found                        | TedSchedule was not found                                                         | TedSchedule não encontrada                                                      |
| 400                      | TED000096            | Bad Request                                  | Action cannot be taken place as there is currently a pending transfer in progress | A ação não pôde ser completada como há uma transferência pendente               |
| 400                      | TED000099            | Invalid Status                               | Ted Schedule not in pending_2fa_approval status                                   | Agendamento Ted não está pendente de aprovação por autenticação de dois fatores |
| 400                      | TED000100            | Invalid Schedule Date                        | Schedule must be approved before the scheduled date                               | Agendamento deve ser aprovado em data anterior à programada para transação      |

| 400                      | TED000110            | Token Required                               | A token is required for SMS or email validation.                                                         | Um token é necessário para validação via SMS ou email.                                                     |

---

# Introdução a Autenticação de Dois Fatores

URL: /documentation/baas/ted/schedule_2fa/introducao_a_agendamento_2fa

Neste tipo de agendamento, é necessário a confirmação da programação de pagamento via token enviado à pessoa com poderes
de aprovação de movimentação na conta credora.

A solicitação de agendamento Ted por parceiros integradores configurados para a utilização de autenticação de dois
fatores é realizada de forma similar ao descrito
em [solicitar agendamento de_transação_ted](/documentation/baas/ted/schedule/solicitacao_de_agendamento). A diferença
ocorre na adição do objeto `tfa_info`, contento informações sobre o aprovador da transferência e a forma de contato, e o
status de uma solicitação bem sucedida que será sempre **pending_2fa_approval**.

O mesmo vale para agendamentos em lote Ted descrito em [solicitar agendamento de_transação_ted em lote](/documentation/baas/ted/schedule_batch/solicitacao_de_agendamento_em_lote).

## Fluxo para um agendamento Ted com autorização

O agendamento Ted bem sucedido seguirá o seguinte fluxo de processos:
Realização da [solicitação de transação Ted](/documentation/baas/ted/schedule/solicitacao_de_agendamento_2fa) e recebimento de resposta de forma síncrona com status de **pending_2fa_approval** e valor da `schedule_key`.
O aprovador indicado receberá um `token` de 6 dígitos compostos por algarismos.
O requisitante realiza a [confirmação de transação ted](/documentation/baas/ted/schedule/aprovacao_de_agendamento_2fa) com a `schedule_key` e o `token`.
O agendamento será então atualizado para o status de **scheduled**.
## Observações
Cada agendamento possui um limite máximo de tentativas de validação do `token` de 5. Quando este limite é alcançado o agendamento será colocado em status de rejeitado (**rejected**) automaticamente.
Cada `token` possui duração máxima de 5 minutos.
Um agendamento pode ter seu `token` renovado e reenviado para o aprovador da transferência. Este processo reinica o tempo de 5 minutos e não reinicia o contador de tentativas inválidas. O `token` anterior torna-se inválido.
O evento de notificação para o envio de `token` ao aprovador é **baas.token_validation.ted.schedule.single**. É possível [personalizar](/documentation/notificacoes/template) a mensagem enviada.
As formas de envio (`contact_type`) de token implementadas são por **sms** e **email**.

---

# Solicitar Agendamento de Transação Ted com Autenticação de Dois Fatores

URL: /documentation/baas/ted/schedule_2fa/solicitacao_de_agendamento_2fa

## Request

ENDPOINT /account/ ACCOUNT_KEY /ted_schedule
MÉTODO POST

## Autenticação via Email e SMS

Request Body: Agendamento com TFA por SMS ou Email

```json
{
  "request_control_key": "0c3d2a3e-c121-464e-b5a4-8e69e0c17bbd",
  "target_account": {
    "account_branch": "0001",
    "account_number": "92796",
    "account_digit": "1",
    "owner_document_number": "23599885000192",
    "owner_name": "Titular da Conta",
    "ispb": "12345678",
    "account_type": "checking_account"
  },
  "transaction_amount": 8.86,
  "schedule_date": "2024-12-01",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  }
}
```

## Autenticação via Dispositivo

Além das formas já existentes de autenticação via **sms** e **email**, é possível autenticar a transação utilizando um dispositivo [previamente cadastrado](/documentation/baas/dispositivo/create/solicitacao_cadastro_dispositivo). Nesse caso, o `session_id` deve ser obtido na **Device Scan** e enviado no `tfa_info`.

Request Body: Agendamento com TFA por Dispositivo

```json
{
  "request_control_key": "0c3d2a3e-c121-464e-b5a4-8e69e0c17bbd",
  "target_account": {
    "account_branch": "0001",
    "account_number": "92796",
    "account_digit": "1",
    "owner_document_number": "23599885000192",
    "owner_name": "Titular da Conta",
    "ispb": "12345678",
    "account_type": "checking_account"
  },
  "transaction_amount": 8.86,
  "schedule_date": "2024-12-01",
  "tfa_info": {
    "approver_document_number": "98765432100",
    "session_id": "b2f18d3a-67c2-4a7f-98e5-1d3f5c6b8a72",
    "contact_type": "device"
  }
}
```

## Body Params

| Campo                   | Tipo   | Descrição                                                                          | Caracteres                                          |
|-------------------------|--------|------------------------------------------------------------------------------------|-----------------------------------------------------|
| `request_control_key` * | string | Chave única de identificação da request utilizada pelo cliente no formato uuid v4. | 36                                                  |
| `target_account` *      | object | Conta de destino                                                                   | **[Objeto target_account](#objeto-target_account)** | 
| `transaction_amount` *  | float  | Valor da transferência                                                             | 10                                                  |
| `schedule_date`*        | string | Data a ser realizada a transação.                                                  | 10                                                  |
| `tfa_info`*             | Object | Objeto contendo o documento da pessoa aprovadora da conta e a forma de contato.    | **[Objeto tfa_info](#objeto-tfa_info)**             |

## Objeto tfa_info

| Campo                       | Tipo   | Descrição                                                                                                                        | Caracteres |
|-----------------------------|--------|----------------------------------------------------------------------------------------------------------------------------------|------------|
| `approver_document_number`* | string | Número de documento da pessoa aprovadora da conta.                                                                               | 11         |
| `session_id`                | string | Chave única de identificação da sessão do dispositivo no formato UUID v4 (obrigatório para TFA via dispositivo).                 | 36         |
| `contact_type`*             | string | Forma de contato com a pessoa aprovadora da conta, podendo ser **sms**, **email** ou **device**                                  |            |

## Objeto target_account

| Campo                     | Tipo   | Descrição                                           | Caracteres                                              |
|---------------------------|--------|-----------------------------------------------------|---------------------------------------------------------|
| `account_branch` *        | string | Agência.                                            | 4                                                       |
| `account_digit` *         | string | Dígito da conta                                     | 1                                                       |
| `account_number` *        | string | Número da conta.                                    | 20                                                      |
| `owner_document_number` * | string | CPF ou CNPJ (apenas números) do titular da conta.   | 14                                                      |
| `owner_name` *            | string | Nome do titular da conta.                           | 50                                                      |
| `account_type`*           | string | Tipo da conta.                                      | **[Enumerador account_type](#enumerador-account_type)** |
| `ispb` *                  | string | Base no CNPJ da instituição financeira (8 dígitos). | 8                                                       |

## Enumerador account_type

| Enumerador             | Tradução              |
|------------------------|-----------------------|
| **checking_account**   | conta corrente        |
| **deposit_account**    | conta depósito        |
| **guaranteed_account** | conta de garantia     |
| **investment_account** | conta de investimento |
| **payment_account**    | conta de pagamento    |
| **saving_account**     | conta poupança        |

## Response

STATUS 202

Response Body: Agendamento Criado

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "schedule_key": "f64b3fa7-d09d-4927-ad4f-b966df9fb153",
  "schedule_status": "pending_2fa_approval",
  "schedule_date": "2024-12-31"
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                  | Descrição (eng)<br/>`description`                                                          | Descrição (ptbr)<br/>`translation`                                                 |
|--------------------------|----------------------|-----------------------------------------------------|--------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                         | schema error description                                                                   | Schema Inválido                                                                    |
| 404                      | TED000006            | Target account Not Found                            | Target account was not found for given parameters                                          | Conta destino não encontrada para os parâmetros informados                         |
| 404                      | TED000009            | Not Found                                           | Account not found for the given key: \{account_key\}                                       | Conta não encontrada para a chave fornecida: \{account_key\}                       |
| 403                      | TED000014            | Invalid target account                              | Invalid target account                                                                     | Conta destino inválida                                                             |
| 400                      | TED000015            | Bad Request                                         | Account blocked or closed can not perform this action                                      | A conta bloqueada ou fechada não pode executar esta ação                           |
| 400                      | TED000016            | Bad Request                                         | Hub account can not perform this action                                                    | A conta hub não pode executar esta ação                                            |
| 403                      | TED000018            | Unauthorized                                        | Provided account not owned by SELECTED_AGENT                                               | Conta fornecida não pertencente ao SELECTED_AGENT                                  |
| 400                      | TED000031            | Bad Request                                         | ISPB number \{ispb\} does not exist or is inactive                                         | ISPB \{ispb\} não existe ou está inativo                                           |
| 400                      | TED000044            | Invalid Timestamp Format sent                       | Given parameter is not in the correct format \{timestamp_format\}                          | Parametro enviado não está no formato correto \{timestamp_format\}                 |
| 400                      | TED000046            | Invalid uuid v4 string sent                         | \{key\} was not accepted for not being a valid uuid v4 string                              | \{key\} não foi aceito por não ser uma palavra uuid v4 válida                      |
| 400                      | TED000054            | Invalid Transaction Amount                          | Transaction Amount \{transaction_amount\} is invalid                                       | Valor de transação \{transaction_amount\} é inválido                               |
| 400                      | TED000057            | Invalid Document Number                             | Given \{document_number\} document number is invalid                                       | CPF/CNPJ \{document_number\} fornecido não é valido                                |
| 409                      | TED000064            | Bad Request                                         | request_control_key \{request_control_key\} already in use                                 | request_control_key \{request_control_key\} já utilizada                           |
| 400                      | TED000065            | Bad Request                                         | It has been identified by request_control_key that this request is already being processed | Foi identificado por request_control_key que está requisição está sendo processada |
| 403                      | TED000079            | No approver permission                              | Given document number does not belong to an approver for this account                      | Número de documento enviado não pertence a um aprovador da conta                   |
| 400                      | TED000080            | tfa_info is required                                | Client must send object tfa_info                                                           | Cliente deve enviar objeto tfa_info                                                |
| 400                      | TED000081            | Error occurred while sending token                  | An unexpected error occurred while sending token                                           | Um erro inexperado ocorreu ao tentar enviar token                                  |
| 400                      | TED000089            | Invalid Schedule Date                               | Schedule date must be after current date for UTC-3                                         | Data de agendamento deve ser após a data atual em UTC-3                            |
| 400                      | TED000090            | Invalid Schedule Date                               | Schedule date must be a workday                                                            | Data de agendamento deve ser um dia útil                                           |
| 400                      | TED000091            | Target Account and Source Account must be different | Target Account must not be the same as Source Account                                      | A conta de destino não pode ser a mesma da conta de origem                         |

---

# Solicitar reenvio de token para um agendamento

URL: /documentation/baas/ted/schedule_2fa/solicitacao_de_reenvio_de_token_para_agendamento_2fa

Um novo token será gerado e enviado para o aprovador do agendamento ted. Caso o número limite de tentativas de validação
do token tenha sido excedida, não será permitido o reenvio.

## Request

ENDPOINT /account/ ACCOUNT_KEY /ted_schedule/ SCHEDULE_KEY /resend_token
MÉTODO PATCH

### Path Params

| Campo          | Tipo   | Descrição                                    | Caracteres |
|----------------|--------|----------------------------------------------|------------|
| `account_key`  | uuidv4 | Chave única de identificação da conta.       | 36         |
| `schedule_key` | uuidv4 | Chave única de identificação do agendamento. | 36         |

## Body Params

| Campo          | Tipo       | Descrição                               | Caracteres                                              |
|----------------|------------|-----------------------------------------|---------------------------------------------------------|
| `contact_type` | enumerator | Forma de envio do token de autenticação | **[Enumerador contact_type](#enumerador-contact_type)** |

:::info Informação
Caso não seja enviado um `contact_type`, o token será enviado da forma solicitada originalmente.
:::

### Enumerador contact_type

| Enumerador | Descrição                                         |
|------------|---------------------------------------------------|
| **sms**    | Envio por Mensagem de Texto para telefone celular |
| **email**  | Envio por correio eletrônico                      |

## Response

STATUS 202

Response Body: Transação Solicitada

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "schedule_key": "f64b3fa7-d09d-4927-ad4f-b966df9fb153",
  "schedule_status": "pending_2fa_approval",
  "schedule_date": "2024-12-31"
}
```

STATUS 4xx

Response Body: Transferência Rejeitada

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                           | Descrição (eng)<br/>`description`                                                 | Descrição (ptbr)<br/>`translation`                                              |
|--------------------------|----------------------|----------------------------------------------|-----------------------------------------------------------------------------------|---------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                  | schema error description                                                          | Schema Inválido                                                                 |
| 404                      | TED000009            | Not Found                                    | Account not found for the given key: \{account_key\}                              | Conta não encontrada para a chave fornecida: \{account_key\}                    |
| 403                      | TED000018            | Unauthorized                                 | Provided account not owned by SELECTED_AGENT                                      | Conta fornecida não pertencente ao SELECTED_AGENT                               |
| 400                      | TED000082            | Number of token validation attempts exceeded | The maximum number of failed token validation attempts has been reached           | Número máximo de tentativas de validação de token atingida                      |
| 400                      | TED000086            | Invalid Status                               | Ted not in pending_2fa_approval status                                            | Ted não está pendente de aprovação por autenticação de dois fatores             |
| 400                      | TED000087            | Error Sending Token                          | An error occurred while resending token and its being investigated                | Um erro ocorreu ao reenviar token e está sendo investigado                      |
| 404                      | TED000093            | TedSchedule not Found                        | TedSchedule was not found                                                         | TedSchedule não encontrada                                                      |
| 400                      | TED000096            | Bad Request                                  | Action cannot be taken place as there is currently a pending transfer in progress | A ação não pôde ser completada como há uma transferência pendente               |
| 400                      | TED000099            | Invalid Status                               | Ted Schedule not in pending_2fa_approval status                                   | Agendamento Ted não está pendente de aprovação por autenticação de dois fatores |
| 400                      | TED000100            | Invalid Schedule Date                        | Schedule must be approved before the scheduled date                               | Agendamento deve ser aprovado em data anterior à programada para transação      |

---

# Aprovar Agendamento de Transação Ted em Lote com Autenticação de Dois Fatores

URL: /documentation/baas/ted/schedule_batch_2fa/aprovacao_de_agendamento_em_lote_2fa

## Request

ENDPOINT /account/ ACCOUNT_KEY /ted_schedule_batch/ SCHEDULE_BATCH_KEY /validate_token
MÉTODO PUT

### Path Params

| Campo                | Tipo   | Descrição                                            | Caracteres |
|----------------------|--------|------------------------------------------------------|------------|
| `account_key`        | uuidv4 | Chave única de identificação da conta.               | 36         |
| `schedule_batch_key` | uuidv4 | Chave única de identificação do agendamento em lote. | 36         |

## Autenticação via Email e SMS

Request Body

```json
{
  "token": "329123"
}
```

## Autenticação via Dispositivo

Para aprovar e finalizar a autenticação via dispositivo, a requisição deve ser enviada com um payload vazio. A validação ocorre internamente, sem necessidade de informações adicionais no corpo da requisição. É importante destacar que este endpoint só deve ser utilizado após a [solicitação de agendamento em lote](./solicitacao_de_agendamento_em_lote_2fa.md) ter sido iniciada.

Request Body

```json
{

}
```

## Body Params

| Campo   | Tipo   | Descrição                                                                                                                              | Caracteres |
|---------|--------|----------------------------------------------------------------------------------------------------------------------------------------|------------|
| `token` | string | Código de autenticação enviado ao aprovador de movimentações da conta **obrigatório para TFA via SMS ou e-mail**                       | 6          |

## Response

STATUS 201

Response Body: Agendamento en Lote Aprovado

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "schedule_batch_key": "f64b3fa7-d09d-4927-ad4f-b966df9fb153",
  "schedule_batch_status": "approved",
  "created_at": "2023-03-13T19:00:28.440Z"
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                           | Descrição (eng)<br/>`description`                                                                                    | Descrição (ptbr)<br/>`translation`                                                                                   |
|--------------------------|----------------------|----------------------------------------------|----------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                  | schema error description                                                                                             | Schema Inválido                                                                                                      |
| 404                      | TED000009            | Not Found                                    | Account not found for the given key: \{account_key\}                                                                 | Conta não encontrada para a chave fornecida: \{account_key\}                                                         |
| 403                      | TED000018            | Unauthorized                                 | Provided account not owned by SELECTED_AGENT                                                                         | Conta fornecida não pertencente ao SELECTED_AGENT                                                                    |
| 400                      | TED000082            | Number of token validation attempts exceeded | The maximum number of failed token validation attempts has been reached                                              | Número máximo de tentativas de validação de token atingida                                                           |
| 400                      | TED000083            | Token Expired                                | Token has expired. Resend token or recreate transfer                                                                 | Token expirado. Reenvie token ou recrie a transferência                                                              |
| 400                      | TED000084            | Incorrect Token                              | Token sent does not match expected                                                                                   | Token enviado não condiz com, o esperado                                                                             |
| 400                      | TED000085            | Error Validating Token                       | An error occurred while validating token and it is being investigated                                                | Um erro ocorreu ao validar token e está sendo investigado                                                            |
| 400                      | TED000102            | Invalid Status                               | Ted Batch not in pending_2fa_approval status                                                                         | Lote de Ted não está pendente de aprovação por autenticação de dois fatores                                          |
| 404                      | TED000103            | ScheduleBatch not Found                      | Ted Schedule Batch was not found                                                                                     | Agendamento de Ted em lote não encontrado                                                                            |
| 400                      | TED000106            | Invalid Status                               | ScheduleBatch not in pending_2fa_approval status                                                                     | Lote Agendamentos de Ted não está pendente de aprovação por autenticação de dois fatores                             |
| 400                      | TED000107            | Schedule Batch could not be approved         | ScheduleBatch could not be approved due to current date being equal or after earliest schedule date. Rejecting batch | ScheduleBatch não pode ser aprovada devido a data atual ser superior ou igual à menor schedule_date. Rejeitando lote |
| 400                      | TED000110            | Token Required                               | A token is required for SMS or email validation.                                                         | Um token é necessário para validação via SMS ou email.                                                     |

---

# Solicitar Agendamento de Transação Ted em Lote

URL: /documentation/baas/ted/schedule_batch_2fa/solicitacao_de_agendamento_em_lote_2fa

A QI Tech oferece a possibilidade de realizar várias transações agendadas ted com uma única chamada. Caso na chamada
inicial seja retornado um http status 4xx, nenhum dos agendamentos será realizado.

Neste tipo de agendamento, é necessário a confirmação da programação de pagamento via token enviado à pessoa com poderes
de aprovação de movimentação na conta credora.

A solicitação de agendamento Ted em lote por parceiros integradores configurados para a utilização de autenticação de
dois fatores é realizada de forma similar ao descrito
em [solicitar agendamento de_transação_ted_em_lote](/documentation/baas/ted/schedule/solicitacao_de_agendamento_em_lote).
A diferença ocorre na adição do objeto `tfa_info`, contento informações sobre o aprovador da transferência e a forma de
contato, e o status de uma solicitação bem sucedida que será sempre **pending_2fa_approval**.

O evento de notificação para o envio de `token` ao aprovador é **baas.token_validation.ted.schedule.batch**. É
possível [personalizar](/documentation/notificacoes/template) a mensagem enviada.

## Request

ENDPOINT /account/ ACCOUNT_KEY /ted_schedule_batch
MÉTODO POST

## Autenticação via Email e SMS

Request Body: Agendamento em Lote com TFA por SMS ou Email

```json
{
  "request_control_key": "6e4fc980-f8a1-4462-b6e2-d8a49f0ac055",
  "ted_schedules": [
    {
      "request_control_key": "0c3d2a3e-c121-464e-b5a4-8e69e0c17bbd",
      "target_account": {
        "account_branch": "0001",
        "account_number": "92796",
        "account_digit": "1",
        "owner_document_number": "23599885000192",
        "owner_name": "Titular da Conta",
        "ispb": "12345678",
        "account_type": "checking_account"
      },
      "transaction_amount": 8.86,
      "schedule_date": "2024-12-01"
    }
  ],
  "tfa_info": {
    "approver_document_number": "98765432100",
    "contact_type": "email"
  }
}
```

## Autenticação via Dispositivo

Além das formas já existentes de autenticação via **sms** e **email**, é possível autenticar a transação utilizando um dispositivo [previamente cadastrado](/documentation/baas/dispositivo/create/solicitacao_cadastro_dispositivo). Nesse caso, o `session_id` deve ser obtido na **Device Scan** e enviado no `tfa_info`.

Request Body: Agendamento em Lote com TFA por Dispositivo

```json
{
  "request_control_key": "6e4fc980-f8a1-4462-b6e2-d8a49f0ac055",
  "ted_schedules": [
    {
      "request_control_key": "0c3d2a3e-c121-464e-b5a4-8e69e0c17bbd",
      "target_account": {
        "account_branch": "0001",
        "account_number": "92796",
        "account_digit": "1",
        "owner_document_number": "23599885000192",
        "owner_name": "Titular da Conta",
        "ispb": "12345678",
        "account_type": "checking_account"
      },
      "transaction_amount": 8.86,
      "schedule_date": "2024-12-01"
    }
  ],
  "tfa_info": {
    "approver_document_number": "98765432100",
    "session_id": "b2f18d3a-67c2-4a7f-98e5-1d3f5c6b8a72",
    "contact_type": "device"
  }
}
```

## Path Params

| Campo         | Tipo   | Descrição                              | Caracteres |
|---------------|--------|----------------------------------------|------------|
| `account_key` | uuidv4 | Chave única de identificação da conta. | 36         |

## Body Params

| Campo                   | Tipo   | Descrição                                                                          | Caracteres                                               |
|-------------------------|--------|------------------------------------------------------------------------------------|----------------------------------------------------------|
| `request_control_key` * | uuidv4 | Chave única de identificação da request utilizada pelo cliente no formato uuid v4. | 36                                                       | 
| `ted_schedules` *       | array  | Lista de objetos ted_schedule vinculados ao lote.                                  | lista de **[Objeto ted_schedule](#objeto-ted_schedule)** |
| `tfa_info`*             | Object | Objeto contendo o documento da pessoa aprovadora da conta e a forma de contato.    | **[Objeto tfa_info](#objeto-tfa_info)**                  |

## Objeto tfa_info

| Campo                       | Tipo   | Descrição                                                                                                                        | Caracteres |
|-----------------------------|--------|----------------------------------------------------------------------------------------------------------------------------------|------------|
| `approver_document_number`* | string | Número de documento da pessoa aprovadora da conta.                                                                               | 11         |
| `session_id`                | string | Chave única de identificação da sessão do dispositivo no formato UUID v4 (obrigatório para TFA via dispositivo).                 | 36         |
| `contact_type`*             | string | Forma de contato com a pessoa aprovadora da conta, podendo ser **sms**, **email** ou **device**                                  |            |

## Objeto ted_schedule

| Campo                   | Tipo   | Descrição                                                                          | Caracteres                                          |
|-------------------------|--------|------------------------------------------------------------------------------------|-----------------------------------------------------|
| `request_control_key` * | string | Chave única de identificação da request utilizada pelo cliente no formato uuid v4. | 36                                                  |
| `target_account` *      | object | Conta de destino                                                                   | **[Objeto target_account](#objeto-target_account)** | 
| `transaction_amount` *  | float  | Valor da transferência                                                             | 10                                                  |
| `schedule_date`*        | string | Data a ser realizada a transação.                                                  | 10                                                  |

## Objeto target_account

| Campo                     | Tipo   | Descrição                                           | Caracteres                                              |
|---------------------------|--------|-----------------------------------------------------|---------------------------------------------------------|
| `account_branch` *        | string | Agência.                                            | 4                                                       |
| `account_digit` *         | string | Dígito da conta                                     | 1                                                       |
| `account_number` *        | string | Número da conta.                                    | 20                                                      |
| `owner_document_number` * | string | CPF ou CNPJ (apenas números) do titular da conta.   | 14                                                      |
| `owner_name` *            | string | Nome do titular da conta.                           | 50                                                      |
| `account_type`*           | string | Tipo da conta.                                      | **[Enumerador account_type](#enumerador-account_type)** |
| `ispb` *                  | string | Base no CNPJ da instituição financeira (8 dígitos). | 8                                                       |

## Enumerador account_type

| Enumerador             | Tradução              |
|------------------------|-----------------------|
| **checking_account**   | conta corrente        |
| **deposit_account**    | conta depósito        |
| **guaranteed_account** | conta de garantia     |
| **investment_account** | conta de investimento |
| **payment_account**    | conta de pagamento    |
| **saving_account**     | conta poupança        |

## Response

STATUS 202

Response Body: Agendamento em lote Requisitado

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "schedule_batch_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "schedule_batch_status": "pending_2fa_approval",
  "created_at": "2021-10-22T20:30:23.459Z"
}
```

### Enumerador schedule_batch_status

| Enumerador               | Descrição                                                                  |
|--------------------------|----------------------------------------------------------------------------|
| **created**              | Agendamento em lote criado                                                 |
| **approved**             | Agendamento em lote aprovado                                               |
| **rejected**             | Agendamento em lote rejeitado                                              |
| **pending_2fa_approval** | Agendamento em lote pendente de aprovação por autenticação de dois fatores |

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                  | Descrição (eng)<br/>`description`                                                          | Descrição (ptbr)<br/>`translation`                                                 |
|--------------------------|----------------------|-----------------------------------------------------|--------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                         | schema error description                                                                   | Schema Inválido                                                                    |
| 404                      | TED000006            | Target account Not Found                            | Target account was not found for given parameters                                          | Conta destino não encontrada para os parâmetros informados                         |
| 404                      | TED000009            | Not Found                                           | Account not found for the given key: \{account_key\}                                       | Conta não encontrada para a chave fornecida: \{account_key\}                       |
| 403                      | TED000014            | Invalid target account                              | Invalid target account                                                                     | Conta destino inválida                                                             |
| 400                      | TED000015            | Bad Request                                         | Account blocked or closed can not perform this action                                      | A conta bloqueada ou fechada não pode executar esta ação                           |
| 400                      | TED000016            | Bad Request                                         | Hub account can not perform this action                                                    | A conta hub não pode executar esta ação                                            |
| 403                      | TED000018            | Unauthorized                                        | Provided account not owned by SELECTED_AGENT                                               | Conta fornecida não pertencente ao SELECTED_AGENT                                  |
| 400                      | TED000031            | Bad Request                                         | ISPB number \{ispb\} does not exist or is inactive                                         | ISPB \{ispb\} não existe ou está inativo                                           |
| 400                      | TED000044            | Invalid Timestamp Format sent                       | Given parameter is not in the correct format \{timestamp_format\}                          | Parametro enviado não está no formato correto \{timestamp_format\}                 |
| 400                      | TED000045            | Search Params Error                                 | Invalid integer value for page or size querystring parameters                              | Valor inválido para parâmetros de página ou tamanho de página                      |
| 400                      | TED000046            | Invalid uuid v4 string sent                         | \{key\} was not accepted for not being a valid uuid v4 string                              | \{key\} não foi aceito por não ser uma palavra uuid v4 válida                      |
| 400                      | TED000054            | Invalid Transaction Amount                          | Transaction Amount \{transaction_amount\} is invalid                                       | Valor de transação \{transaction_amount\} é inválido                               |
| 400                      | TED000057            | Invalid Document Number                             | Given \{document_number\} document number is invalid                                       | CPF/CNPJ \{document_number\} fornecido não é valido                                |
| 409                      | TED000064            | Bad Request                                         | request_control_key \{request_control_key\} already in use                                 | request_control_key \{request_control_key\} já utilizada                           |
| 400                      | TED000065            | Bad Request                                         | It has been identified by request_control_key that this request is already being processed | Foi identificado por request_control_key que está requisição está sendo processada |
| 403                      | TED000079            | No approver permission                              | Given document number does not belong to an approver for this account                      | Número de documento enviado não pertence a um aprovador da conta                   |
| 400                      | TED000080            | tfa_info is required                                | Client must send object tfa_info                                                           | Cliente deve enviar objeto tfa_info                                                |
| 400                      | TED000081            | Error occurred while sending token                  | An unexpected error occurred while sending token                                           | Um erro inexperado ocorreu ao tentar enviar token                                  |
| 400                      | TED000089            | Invalid Schedule Date                               | Schedule date must be after current date for UTC-3                                         | Data de agendamento deve ser após a data atual em UTC-3                            |
| 400                      | TED000090            | Invalid Schedule Date                               | Schedule date must be a workday                                                            | Data de agendamento deve ser um dia útil                                           |
| 400                      | TED000091            | Target Account and Source Account must be different | Target Account must not be the same as Source Account                                      | A conta de destino não pode ser a mesma da conta de origem                         |

---

# Solicitar Reenvio de Token para um Agendamento de Transação Ted em Lote

URL: /documentation/baas/ted/schedule_batch_2fa/solicitacao_de_reenvio_de_token_para_agendamento_em_lote_2fa

Um novo token será gerado e enviado para o aprovador do agendamento ted. Caso o número limite de tentativas de validação
do token tenha sido excedida, não será permitido o reenvio.

## Request

ENDPOINT /account/ ACCOUNT_KEY /ted_schedule_batch/ SCHEDULE_BATCH_KEY /resend_token
MÉTODO PATCH

### Path Params

| Campo                | Tipo   | Descrição                                            | Caracteres |
|----------------------|--------|------------------------------------------------------|------------|
| `account_key`        | uuidv4 | Chave única de identificação da conta.               | 36         |
| `schedule_batch_key` | uuidv4 | Chave única de identificação do agendamento em lote. | 36         |

## Body Params

| Campo          | Tipo       | Descrição                               | Caracteres                                              |
|----------------|------------|-----------------------------------------|---------------------------------------------------------|
| `contact_type` | enumerator | Forma de envio do token de autenticação | **[Enumerador contact_type](#enumerador-contact_type)** |

:::info Informação
Caso não seja enviado um `contact_type`, o token será enviado da forma solicitada originalmente.
:::

### Enumerador contact_type

| Enumerador | Descrição                                         |
|------------|---------------------------------------------------|
| **sms**    | Envio por Mensagem de Texto para telefone celular |
| **email**  | Envio por correio eletrônico                      |

## Response

STATUS 202

Response Body: Agendamento em lote Solicitado

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "schedule_batch_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "schedule_batch_status": "pending_2fa_approval",
  "created_at": "2021-10-22T20:30:23.459Z"
} 
```

STATUS 4xx

Response Body: Transferência Rejeitada

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                   | Descrição (eng)<br/>`description`                                                                                    | Descrição (ptbr)<br/>`translation`                                                                                   |
|--------------------------|----------------------|--------------------------------------|----------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                          | schema error description                                                                                             | Schema Inválido                                                                                                      |
| 404                      | TED000009            | Not Found                            | Account not found for the given key: \{account_key\}                                                                 | Conta não encontrada para a chave fornecida: \{account_key\}                                                         |
| 403                      | TED000018            | Unauthorized                         | Provided account not owned by SELECTED_AGENT                                                                         | Conta fornecida não pertencente ao SELECTED_AGENT                                                                    |
| 400                      | TED000087            | Error Sending Token                  | An error occurred while resending token and its being investigated                                                   | Um erro ocorreu ao reenviar token e está sendo investigado                                                           |
| 404                      | TED000103            | ScheduleBatch not Found              | Ted Schedule Batch was not found                                                                                     | Agendamento de Ted em lote não encontrado                                                                            |
| 400                      | TED000106            | Invalid Status                       | ScheduleBatch not in pending_2fa_approval status                                                                     | Lote Agendamentos de Ted não está pendente de aprovação por autenticação de dois fatores                             |
| 400                      | TED000107            | Schedule Batch could not be approved | ScheduleBatch could not be approved due to current date being equal or after earliest schedule date. Rejecting batch | ScheduleBatch não pode ser aprovada devido a data atual ser superior ou igual à menor schedule_date. Rejeitando lote |

---

# Cancelar Agendamento de Transação Ted em Lote

URL: /documentation/baas/ted/schedule_batch/cancelamento_de_agendamento_em_lote

## Request

ENDPOINT /account/ ACCOUNT_KEY /ted_schedule_batch/ SCHEDULE_BATCH_KEY /cancel
MÉTODO PATCH

### Path Params

| Campo                | Tipo   | Descrição                                           | Caracteres |
|----------------------|--------|-----------------------------------------------------|------------|
| `account_key`        | uuidv4 | Chave única de identificação da conta.              | 36         |
| `schedule_batch_key` | uuidv4 | Chave única de identificação do lote de agendamento | 36         |

### Response

STATUS 200

Response Body: Agendamento Cancelado

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "schedule_batch_key": "f64b3fa7-d09d-4927-ad4f-b966df9fb153",
  "schedule_batch_status": "cancelled",
  "created_at": "2023-03-13T19:00:28.440Z"
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                    | Descrição (eng)<br/>`description`                                                                                                 | Descrição (ptbr)<br/>`translation`                                                                                                         |
|--------------------------|----------------------|---------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                           | schema error description                                                                                                          | Schema Inválido                                                                                                                            |
| 404                      | TED000009            | Not Found                             | Account not found for the given key: \{account_key\}                                                                              | Conta não encontrada para a chave fornecida: \{account_key\}                                                                               |
| 403                      | TED000018            | Unauthorized                          | Provided account not owned by SELECTED_AGENT                                                                                      | Conta fornecida não pertencente ao SELECTED_AGENT                                                                                          |
| 400                      | TED000096            | Bad Request                           | Action cannot be taken place as there is currently a pending transfer in progress                                                 | A ação não pôde ser completada como há uma transferência pendente                                                                          |
| 404                      | TED000101            | TedBatch not Found                    | TedBatch was not found                                                                                                            | TedBatch não encontrada                                                                                                                    |
| 404                      | TED000103            | ScheduleBatch not Found               | Ted Schedule Batch was not found                                                                                                  | Agendamento de Ted em lote não encontrado                                                                                                  |
| 400                      | TED000104            | Invalid Status                        | Schedule Batch cannot be cancelled in current status                                                                              | Lote de agendamento não pode ser cancelado no status atual                                                                                 |
| 400                      | TED000105            | Schedule Batch could not be cancelled | ScheduleBatch could not be cancelled due to current date being equal or after earliest schedule date. Cancel schedules one by one | ScheduleBatch não pode ser cancelada devido a data atual ser superior ou igual à menor schedule_date. Cancele agendamentos individualmente |

---

# Listar Agendamentos de um Lote de Agendamento

URL: /documentation/baas/ted/schedule_batch/listar_agendamentos_de_um_lote

## Request

ENDPOINT /account/ ACCOUNT_KEY /ted_schedule_batch/ SCHEDULE_BATCH_KEY /ted_schedules
MÉTODO GET

### Path Params

| Campo                | Tipo   | Descrição                                             | Caracteres |
|----------------------|--------|-------------------------------------------------------|------------|
| `account_key`        | uuidv4 | Chave única de identificação da conta.                | 36         |
| `schedule_batch_key` | uuidv4 | Chave única de identificação do lote de agendamentos. | 36         |

### Query Params

| Campo                 | Tipo    | Descrição                                                               | Caracteres                                                    |
|-----------------------|---------|-------------------------------------------------------------------------|---------------------------------------------------------------|
| `request_control_key` | uuidv4  | Chave única de identificação da request utilizada pelo cliente.         | 36                                                            |
| `schedule_status`     | string  | Status do agendamento. Pode ser enviado em forma de lista.              | **[Enumerador schedule_status](#enumerador-schedule_status)** |
| `start_date`          | string  | Data de início da consulta                                              | 10                                                            |
| `end_date`            | string  | Data de término da consulta                                             | 10                                                            |
| `page`                | integer | Número da página requisitada. 1 por padrão                              |                                                               |
| `page_size`           | integer | Tamanho da página requisitada na consulta. 30 por padrão e valor máximo | Valor máximo de 30                                            |

### Enumerador schedule_status

| Enumerador                 | Descrição                                                                                      |
|----------------------------|------------------------------------------------------------------------------------------------|
| **scheduled**              | Transação agendada                                                                             |
| **sent**                   | Agendamento concluído e enviado com sucesso. Estado final                                      |
| **rejected**               | Agendamento rejeitado durante criação ou execução. Estado final                                |
| **cancelled**              | Agendamento cancelado por solicitação de cliente. Estado final                                 |
| **pending_2fa_approval**   | Pendente de aprovação por autenticação de dois fatores                                         |
| **pending_creation**       | Agendamento em processo de criação (Estado transitório para agendamento em lote)               |
| **waiting_batch_approval** | Agendamento criado e vinculado a um lote aguardando aprovação por autenticação de dois fatores |

### Response

STATUS 200

Response Body

```json
{
  "data": [
    {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "schedule_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "schedule_status": "scheduled",
      "schedule_date": "2024-12-31",
      "created_at": "2023-03-13T19:00:28.440Z"
    },
    {
      "request_control_key": "bf6b0a4b-c7a5-446b-9dad-1ae10b25342a",
      "schedule_key": "2479a5cd-079e-4d72-bf4e-16a695bda45e",
      "schedule_status": "cancelled",
      "schedule_date": "2024-12-31",
      "created_at": "2023-03-13T19:00:28.440Z"
    },
    {
      "request_control_key": "9d36c03e-2db7-4c90-87ed-6c9ddb3c03c7",
      "schedule_key": "5d6b14b9-053f-408c-bcd7-61ecf9224f2c",
      "schedule_status": "rejected",
      "schedule_date": "2024-12-31",
      "created_at": "2023-03-13T19:00:28.440Z"
    }
  ],
  "pagination": {
    "current_page": 1,
    "next_page": null,
    "rows_per_page": 30
  }
}

```

---

# Listar Lotes de Agendamento de uma conta

URL: /documentation/baas/ted/schedule_batch/listar_agendamentos_em_lote_de_uma_conta

## Request

ENDPOINT /account/ ACCOUNT_KEY /ted_schedule_batches
MÉTODO GET

### Path Params

| Campo         | Tipo   | Descrição                              | Caracteres |
|---------------|--------|----------------------------------------|------------|
| `account_key` | uuidv4 | Chave única de identificação da conta. | 36         |

### Query Params

| Campo                   | Tipo    | Descrição                                                               | Caracteres                                                                |
|-------------------------|---------|-------------------------------------------------------------------------|---------------------------------------------------------------------------|
| `request_control_key`   | uuidv4  | Chave única de identificação da request utilizada pelo cliente.         | 36                                                                        |
| `schedule_batch_status` | string  | Status do lote de agendamento. Pode ser enviado em forma de lista.      | **[Enumerador schedule_batch_status](#enumerador-schedule_batch_status)** |
| `page`                  | integer | Número da página requisitada. 1 por padrão                              |                                                                           |
| `page_size`             | integer | Tamanho da página requisitada na consulta. 30 por padrão e valor máximo | Valor máximo de 30                                                        |

### Enumerador schedule_batch_status

| Enumerador               | Descrição                                                                  |
|--------------------------|----------------------------------------------------------------------------|
| **created**              | Agendamento em lote criado                                                 |
| **approved**             | Agendamento em lote aprovado                                               |
| **rejected**             | Agendamento em lote rejeitado                                              |
| **pending_2fa_approval** | Agendamento em lote pendente de aprovação por autenticação de dois fatores |

### Response

STATUS 200

Response Body

```json
{
  "data": [
    {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "schedule_batch_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "schedule_batch_status": "approved",
      "created_at": "2021-10-22T20:30:23.459Z"
    },
    {
      "request_control_key": "bf6b0a4b-c7a5-446b-9dad-1ae10b25342a",
      "schedule_batch_key": "2479a5cd-079e-4d72-bf4e-16a695bda45e",
      "schedule_batch_status": "cancelled",
      "created_at": "2021-10-22T20:30:23.459Z"
    },
    {
      "request_control_key": "9d36c03e-2db7-4c90-87ed-6c9ddb3c03c7",
      "schedule_batch_key": "5d6b14b9-053f-408c-bcd7-61ecf9224f2c",
      "schedule_batch_status": "rejected",
      "created_at": "2021-10-22T20:30:23.459Z"
    }
  ],
  "pagination": {
    "current_page": 1,
    "next_page": null,
    "rows_per_page": 30
  }
}

```

---

# Solicitar Agendamento de Transação Ted em Lote

URL: /documentation/baas/ted/schedule_batch/solicitacao_de_agendamento_em_lote

A QI Tech oferece a possibilidade de realizar várias transações agendadas ted com uma única chamada. Caso na chamada
inicial seja retornado um **http status 4xx**, nenhum dos agendamentos será realizado.

## Request

ENDPOINT /account/ ACCOUNT_KEY /ted_schedule_batch
MÉTODO POST

```json
{
  "request_control_key": "6e4fc980-f8a1-4462-b6e2-d8a49f0ac055",
  "ted_schedules": [
    {
      "request_control_key": "0c3d2a3e-c121-464e-b5a4-8e69e0c17bbd",
      "target_account": {
        "account_branch": "0001",
        "account_number": "92796",
        "account_digit": "1",
        "owner_document_number": "23599885000192",
        "owner_name": "Titular da Conta",
        "ispb": "12345678",
        "account_type": "checking_account"
      },
      "transaction_amount": 8.86,
      "schedule_date": "2024-12-01"
    }
  ]
}
```

## Path Params

| Campo         | Tipo   | Descrição                              | Caracteres |
|---------------|--------|----------------------------------------|------------|
| `account_key` | uuidv4 | Chave única de identificação da conta. | 36         |

## Body Params

| Campo                   | Tipo   | Descrição                                                                          | Caracteres                                               |
|-------------------------|--------|------------------------------------------------------------------------------------|----------------------------------------------------------|
| `request_control_key` * | uuidv4 | Chave única de identificação da request utilizada pelo cliente no formato uuid v4. | 36                                                       | 
| `ted_schedules` *       | array  | Lista de objetos ted_schedule vinculados ao lote.                                  | lista de **[Objeto ted_schedule](#objeto-ted_schedule)** |

## Objeto ted_schedule

| Campo                   | Tipo   | Descrição                                                                          | Caracteres                                          |
|-------------------------|--------|------------------------------------------------------------------------------------|-----------------------------------------------------|
| `request_control_key` * | string | Chave única de identificação da request utilizada pelo cliente no formato uuid v4. | 36                                                  |
| `target_account` *      | object | Conta de destino                                                                   | **[Objeto target_account](#objeto-target_account)** | 
| `transaction_amount` *  | float  | Valor da transferência                                                             | 10                                                  |
| `schedule_date`*        | string | Data a ser realizada a transação.                                                  | 10                                                  |

## Objeto target_account

| Campo                     | Tipo   | Descrição                                           | Caracteres                                              |
|---------------------------|--------|-----------------------------------------------------|---------------------------------------------------------|
| `account_branch` *        | string | Agência.                                            | 4                                                       |
| `account_digit` *         | string | Dígito da conta                                     | 1                                                       |
| `account_number` *        | string | Número da conta.                                    | 20                                                      |
| `owner_document_number` * | string | CPF ou CNPJ (apenas números) do titular da conta.   | 14                                                      |
| `owner_name` *            | string | Nome do titular da conta.                           | 50                                                      |
| `account_type`*           | string | Tipo da conta.                                      | **[Enumerador account_type](#enumerador-account_type)** |
| `ispb` *                  | string | Base no CNPJ da instituição financeira (8 dígitos). | 8                                                       |

## Enumerador account_type

| Enumerador             | Tradução              |
|------------------------|-----------------------|
| **checking_account**   | conta corrente        |
| **deposit_account**    | conta depósito        |
| **guaranteed_account** | conta de garantia     |
| **investment_account** | conta de investimento |
| **payment_account**    | conta de pagamento    |
| **saving_account**     | conta poupança        |

## Response

STATUS 201

Response Body: Agendamento em lote Aprovado

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "schedule_batch_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "schedule_batch_status": "approved",
  "created_at": "2021-10-22T20:30:23.459Z"
}
```

### Enumerador schedule_batch_status

| Enumerador               | Descrição                                                                  |
|--------------------------|----------------------------------------------------------------------------|
| **created**              | Agendamento em lote criado                                                 |
| **approved**             | Agendamento em lote aprovado                                               |
| **rejected**             | Agendamento em lote rejeitado                                              |
| **pending_2fa_approval** | Agendamento em lote pendente de aprovação por autenticação de dois fatores |

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                  | Descrição (eng)<br/>`description`                                                          | Descrição (ptbr)<br/>`translation`                                                 |
|--------------------------|----------------------|-----------------------------------------------------|--------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                         | schema error description                                                                   | Schema Inválido                                                                    |
| 404                      | TED000006            | Target account Not Found                            | Target account was not found for given parameters                                          | Conta destino não encontrada para os parâmetros informados                         |
| 404                      | TED000009            | Not Found                                           | Account not found for the given key: \{account_key\}                                       | Conta não encontrada para a chave fornecida: \{account_key\}                       |
| 403                      | TED000014            | Invalid target account                              | Invalid target account                                                                     | Conta destino inválida                                                             |
| 400                      | TED000015            | Bad Request                                         | Account blocked or closed can not perform this action                                      | A conta bloqueada ou fechada não pode executar esta ação                           |
| 400                      | TED000016            | Bad Request                                         | Hub account can not perform this action                                                    | A conta hub não pode executar esta ação                                            |
| 403                      | TED000018            | Unauthorized                                        | Provided account not owned by SELECTED_AGENT                                               | Conta fornecida não pertencente ao SELECTED_AGENT                                  |
| 400                      | TED000031            | Bad Request                                         | ISPB number \{ispb\} does not exist or is inactive                                         | ISPB \{ispb\} não existe ou está inativo                                           |
| 400                      | TED000044            | Invalid Timestamp Format sent                       | Given parameter is not in the correct format \{timestamp_format\}                          | Parametro enviado não está no formato correto \{timestamp_format\}                 |
| 400                      | TED000045            | Search Params Error                                 | Invalid integer value for page or size querystring parameters                              | Valor inválido para parâmetros de página ou tamanho de página                      |
| 400                      | TED000046            | Invalid uuid v4 string sent                         | \{key\} was not accepted for not being a valid uuid v4 string                              | \{key\} não foi aceito por não ser uma palavra uuid v4 válida                      |
| 400                      | TED000054            | Invalid Transaction Amount                          | Transaction Amount \{transaction_amount\} is invalid                                       | Valor de transação \{transaction_amount\} é inválido                               |
| 400                      | TED000057            | Invalid Document Number                             | Given \{document_number\} document number is invalid                                       | CPF/CNPJ \{document_number\} fornecido não é valido                                |
| 409                      | TED000064            | Bad Request                                         | request_control_key \{request_control_key\} already in use                                 | request_control_key \{request_control_key\} já utilizada                           |
| 400                      | TED000065            | Bad Request                                         | It has been identified by request_control_key that this request is already being processed | Foi identificado por request_control_key que está requisição está sendo processada |
| 400                      | TED000089            | Invalid Schedule Date                               | Schedule date must be after current date for UTC-3                                         | Data de agendamento deve ser após a data atual em UTC-3                            |
| 400                      | TED000090            | Invalid Schedule Date                               | Schedule date must be a workday                                                            | Data de agendamento deve ser um dia útil                                           |
| 400                      | TED000091            | Target Account and Source Account must be different | Target Account must not be the same as Source Account                                      | A conta de destino não pode ser a mesma da conta de origem                         |

---

# Cancelar Agendamento de Transação Ted

URL: /documentation/baas/ted/schedule/cancelamento_de_agendamento

## Request

ENDPOINT /account/ ACCOUNT_KEY /ted_schedule/ SCHEDULE_KEY /cancel
MÉTODO PATCH

### Path Params

| Campo          | Tipo   | Descrição                                   | Caracteres |
|----------------|--------|---------------------------------------------|------------|
| `account_key`  | uuidv4 | Chave única de identificação da conta.      | 36         |
| `schedule_key` | uuidv4 | Chave única de identificação do agendamento | 36         |

### Response

STATUS 200

Response Body: Agendamento Cancelado

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "schedule_key": "f64b3fa7-d09d-4927-ad4f-b966df9fb153",
  "schedule_status": "cancelled",
  "schedule_date": "2024-12-31"
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                   | Descrição (eng)<br/>`description`                                                 | Descrição (ptbr)<br/>`translation`                                                          |
|--------------------------|----------------------|--------------------------------------|-----------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                          | schema error description                                                          | Schema Inválido                                                                             |
| 404                      | TED000009            | Not Found                            | Account not found for the given key: \{account_key\}                              | Conta não encontrada para a chave fornecida: \{account_key\}                                |
| 403                      | TED000018            | Unauthorized                         | Provided account not owned by SELECTED_AGENT                                      | Conta fornecida não pertencente ao SELECTED_AGENT                                           |
| 400                      | TED000044            | Invalid Timestamp Format sent        | Given parameter is not in the correct format \{timestamp_format\}                 | Parametro enviado não está no formato correto \{timestamp_format\}                          |
| 400                      | TED000045            | Search Params Error                  | Invalid integer value for page or size querystring parameters                     | Valor inválido para parâmetros de página ou tamanho de página                               |
| 400                      | TED000046            | Invalid uuid v4 string sent          | \{key\} was not accepted for not being a valid uuid v4 string                     | \{key\} não foi aceito por não ser uma palavra uuid v4 válida                               |
| 404                      | TED000093            | TedSchedule not Found                | TedSchedule was not found                                                         | TedSchedule não encontrada                                                                  |
| 400                      | TED000094            | Bad Request                          | Ted Schedule cannot be cancelled in current status                                | Agendamento Ted não pode ser cancelado no status atual                                      |
| 400                      | TED000095            | Bad Request                          | The given Ted Schedule is tied to a batch. It cannot be individually cancelled    | O agendamento Ted enviado está ligado a um lote. Ela não pode ser individualmente cancelada |
| 400                      | TED000096            | Bad Request                          | Action cannot be taken place as there is currently a pending transfer in progress | A ação não pôde ser completada como há uma transferência pendente                           |
| 400                      | TED000108            | Number of transfer attempts exceeded | The maximum number of failed transfer attempts has been reached                   | Número máximo de tentativas de transferência foi atingida                                   |

---

# Consultar Agendamento de Transação Ted

URL: /documentation/baas/ted/schedule/consulta_de_agendamento

## Request

ENDPOINT /account/ ACCOUNT_KEY /ted_schedule/ SCHEDULE_KEY
MÉTODO GET

### Path Params

| Campo          | Tipo   | Descrição                                   | Caracteres |
|----------------|--------|---------------------------------------------|------------|
| `account_key`  | uuidv4 | Chave única de identificação da conta.      | 36         |
| `schedule_key` | uuidv4 | Chave única de identificação do agendamento | 36         |

### Response

STATUS 200

Response Body

```json
{
  "request_control_key": "b8eb663e-10fe-4729-9db5-8f8c93de5001",
  "schedule_key": "0c9091ab-079b-4a43-8b3d-d4ba36a23883",
  "schedule_batch_key": null,
  "schedule_status": "sent",
  "target_account": {
    "account_branch": "0001",
    "account_digit": "8",
    "account_number": "1234567",
    "owner_document_number": "***91111***",
    "owner_person_type": "natural",
    "owner_name": "Conta manual geral",
    "account_type": "checking_account",
    "ispb": "99999004"
  },
  "transaction_amount": 2.0,
  "rejection_info": null,
  "schedule_date": "2024-07-10",
  "updated_at": "2024-07-10T16:19:38Z",
  "created_at": "2024-06-10T11:17:28Z",
  "schedule_transfers": [
    {
      "request_control_key": "12723821-41d5-496b-b66c-fb7188f50fc1",
      "ted_key": "91028dfa-43a2-4665-adf2-0bd4571f6f0d",
      "created_at": "2024-07-10T16:19:38Z",
      "ted_status": "sent",
      "fee_amount": 2.00
    }
  ]
}
```

---

# Introdução

URL: /documentation/baas/ted/schedule/introducao

Por meio dos endpoints apresentados nesta sessão, o parceiro integrador pode solicitar o agendamento de transações do
tipo ted. Com esta funcionalidade será possível criar, listar e cancelar agendamentos de uma determinada conta.

## Observações

- A data de agendamento leva em consideração o horário de Brasília (BRT ou UTC/GMT -03:00)
- As transações serão tentadas a partir de 8h BRT
- As transações não podem ser agendadas para feriados ou fim de semana
- Transações que tenham falhado por falta de saldo serão retentadas em 1 hora com um limite de 3 tentativas
- Um webhook será enviado ao parceiro integrador informando o sucesso ou rejeição de um agendamento

## Ted Schedule Status

| Enumerador                 | Descrição                                                                                      |
|----------------------------|------------------------------------------------------------------------------------------------|
| **scheduled**              | Transação agendada                                                                             |
| **sent**                   | Agendamento concluído e enviado com sucesso. Estado final                                      |
| **rejected**               | Agendamento rejeitado durante criação ou execução. Estado final                                |
| **cancelled**              | Agendamento cancelado por solicitação de cliente. Estado final                                 |
| **pending_2fa_approval**   | Pendente de aprovação por autenticação de dois fatores                                         |
| **waiting_batch_approval** | Agendamento criado e vinculado a um lote aguardando aprovação por autenticação de dois fatores |

## Schedule Transfers

No dia do agendamento será tentada a transação ted. Neste momento é gerada uma **ted** e esta será adicionada à lista de
`schedule_transfers`. Serão tentadas um
máximo 3 transações ted.

---

# Listar Agendamentos de Transação Ted de uma conta

URL: /documentation/baas/ted/schedule/listar_agendamentos_de_uma_conta

## Request

ENDPOINT /account/ ACCOUNT_KEY /ted_schedules
MÉTODO GET

### Path Params

| Campo         | Tipo   | Descrição                              | Caracteres |
|---------------|--------|----------------------------------------|------------|
| `account_key` | uuidv4 | Chave única de identificação da conta. | 36         |

### Query Params

| Campo                 | Tipo    | Descrição                                                               | Caracteres                                                    |
|-----------------------|---------|-------------------------------------------------------------------------|---------------------------------------------------------------|
| `request_control_key` | uuidv4  | Chave única de identificação da request utilizada pelo cliente.         | 36                                                            |
| `schedule_status`     | string  | Status do agendamento. Pode ser enviado em forma de lista.              | **[Enumerador schedule_status](#enumerador-schedule_status)** |
| `page`                | integer | Número da página requisitada. 1 por padrão                              |                                                               |
| `page_size`           | integer | Tamanho da página requisitada na consulta. 30 por padrão e valor máximo | Valor máximo de 30                                            |

### Enumerador schedule_status

| Enumerador                 | Descrição                                                                                      |
|----------------------------|------------------------------------------------------------------------------------------------|
| **scheduled**              | Transação agendada                                                                             |
| **sent**                   | Agendamento concluído e enviado com sucesso. Estado final                                      |
| **rejected**               | Agendamento rejeitado durante criação ou execução. Estado final                                |
| **cancelled**              | Agendamento cancelado por solicitação de cliente. Estado final                                 |
| **pending_2fa_approval**   | Pendente de aprovação por autenticação de dois fatores                                         |
| **pending_creation**       | Agendamento em processo de criação (Estado transitório para agendamento em lote)               |
| **waiting_batch_approval** | Agendamento criado e vinculado a um lote aguardando aprovação por autenticação de dois fatores |

### Response

STATUS 200

Response Body

```json
{
  "data": [
    {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "schedule_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "schedule_status": "scheduled",
      "schedule_date": "2024-12-31",
      "created_at": "2023-03-13T19:00:28.440Z"
    },
    {
      "request_control_key": "bf6b0a4b-c7a5-446b-9dad-1ae10b25342a",
      "schedule_key": "2479a5cd-079e-4d72-bf4e-16a695bda45e",
      "schedule_status": "cancelled",
      "schedule_date": "2024-12-31",
      "created_at": "2023-03-13T19:00:28.440Z"
    },
    {
      "request_control_key": "9d36c03e-2db7-4c90-87ed-6c9ddb3c03c7",
      "schedule_key": "5d6b14b9-053f-408c-bcd7-61ecf9224f2c",
      "schedule_status": "rejected",
      "schedule_date": "2024-12-31",
      "created_at": "2023-03-13T19:00:28.440Z"
    }
  ],
  "pagination": {
    "current_page": 1,
    "next_page": null,
    "rows_per_page": 30
  }
}

```

---

# Solicitar Agendamento de Transação Ted

URL: /documentation/baas/ted/schedule/solicitacao_de_agendamento

## Request

ENDPOINT /account/ ACCOUNT_KEY /ted_schedule
MÉTODO POST

Request Body

```json
{
  "request_control_key": "0c3d2a3e-c121-464e-b5a4-8e69e0c17bbd",
  "target_account": {
    "account_branch": "0001",
    "account_number": "92796",
    "account_digit": "1",
    "owner_document_number": "23599885000192",
    "owner_name": "Titular da Conta",
    "ispb": "12345678",
    "account_type": "checking_account"
  },
  "transaction_amount": 8.86,
  "schedule_date": "2024-12-01"
}
```

### Path Params

| Campo         | Tipo   | Descrição                              | Caracteres |
|---------------|--------|----------------------------------------|------------|
| `account_key` | uuidv4 | Chave única de identificação da conta. | 36         |

## Body Params

| Campo                   | Tipo   | Descrição                                                                          | Caracteres                                          |
|-------------------------|--------|------------------------------------------------------------------------------------|-----------------------------------------------------|
| `request_control_key` * | string | Chave única de identificação da request utilizada pelo cliente no formato uuid v4. | 36                                                  |
| `target_account` *      | object | Conta de destino                                                                   | **[Objeto target_account](#objeto-target_account)** | 
| `transaction_amount` *  | float  | Valor da transferência                                                             | 10                                                  |
| `schedule_date`*        | string | Data a ser realizada a transação.                                                  | 10                                                  |

## Objeto target_account

| Campo                     | Tipo   | Descrição                                           | Caracteres                                              |
|---------------------------|--------|-----------------------------------------------------|---------------------------------------------------------|
| `account_branch` *        | string | Agência.                                            | 4                                                       |
| `account_digit` *         | string | Dígito da conta                                     | 1                                                       |
| `account_number` *        | string | Número da conta.                                    | 20                                                      |
| `owner_document_number` * | string | CPF ou CNPJ (apenas números) do titular da conta.   | 14                                                      |
| `owner_name` *            | string | Nome do titular da conta.                           | 50                                                      |
| `account_type`*           | string | Tipo da conta.                                      | **[Enumerador account_type](#enumerador-account_type)** |
| `ispb` *                  | string | Base no CNPJ da instituição financeira (8 dígitos). | 8                                                       |

## Enumerador account_type

| Enumerador             | Tradução              |
|------------------------|-----------------------|
| **checking_account**   | conta corrente        |
| **deposit_account**    | conta depósito        |
| **guaranteed_account** | conta de garantia     |
| **investment_account** | conta de investimento |
| **payment_account**    | conta de pagamento    |
| **saving_account**     | conta poupança        |

## Response

STATUS 201

Response Body: Agendamento Criado

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "schedule_key": "f64b3fa7-d09d-4927-ad4f-b966df9fb153",
  "schedule_status": "scheduled",
  "schedule_date": "2024-12-31"
}
```

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                  | Descrição (eng)<br/>`description`                                                          | Descrição (ptbr)<br/>`translation`                                                 |
|--------------------------|----------------------|-----------------------------------------------------|--------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                         | schema error description                                                                   | Schema Inválido                                                                    |
| 404                      | TED000006            | Target account Not Found                            | Target account was not found for given parameters                                          | Conta destino não encontrada para os parâmetros informados                         |
| 404                      | TED000009            | Not Found                                           | Account not found for the given key: \{account_key\}                                       | Conta não encontrada para a chave fornecida: \{account_key\}                       |
| 403                      | TED000014            | Invalid target account                              | Invalid target account                                                                     | Conta destino inválida                                                             |
| 400                      | TED000015            | Bad Request                                         | Account blocked or closed can not perform this action                                      | A conta bloqueada ou fechada não pode executar esta ação                           |
| 400                      | TED000016            | Bad Request                                         | Hub account can not perform this action                                                    | A conta hub não pode executar esta ação                                            |
| 403                      | TED000018            | Unauthorized                                        | Provided account not owned by SELECTED_AGENT                                               | Conta fornecida não pertencente ao SELECTED_AGENT                                  |
| 400                      | TED000031            | Bad Request                                         | ISPB number \{ispb\} does not exist or is inactive                                         | ISPB \{ispb\} não existe ou está inativo                                           |
| 400                      | TED000044            | Invalid Timestamp Format sent                       | Given parameter is not in the correct format \{timestamp_format\}                          | Parametro enviado não está no formato correto \{timestamp_format\}                 |
| 400                      | TED000046            | Invalid uuid v4 string sent                         | \{key\} was not accepted for not being a valid uuid v4 string                              | \{key\} não foi aceito por não ser uma palavra uuid v4 válida                      |
| 400                      | TED000054            | Invalid Transaction Amount                          | Transaction Amount \{transaction_amount\} is invalid                                       | Valor de transação \{transaction_amount\} é inválido                               |
| 400                      | TED000057            | Invalid Document Number                             | Given \{document_number\} document number is invalid                                       | CPF/CNPJ \{document_number\} fornecido não é valido                                |
| 409                      | TED000064            | Bad Request                                         | request_control_key \{request_control_key\} already in use                                 | request_control_key \{request_control_key\} já utilizada                           |
| 400                      | TED000065            | Bad Request                                         | It has been identified by request_control_key that this request is already being processed | Foi identificado por request_control_key que está requisição está sendo processada |
| 400                      | TED000089            | Invalid Schedule Date                               | Schedule date must be after current date for UTC-3                                         | Data de agendamento deve ser após a data atual em UTC-3                            |
| 400                      | TED000090            | Invalid Schedule Date                               | Schedule date must be a workday                                                            | Data de agendamento deve ser um dia útil                                           |
| 400                      | TED000091            | Target Account and Source Account must be different | Target Account must not be the same as Source Account                                      | A conta de destino não pode ser a mesma da conta de origem                         |

---

# Webhook de conclusão de Agendamento Ted

URL: /documentation/baas/ted/schedule/webhook_de_conclusao_de_agendamento

Após a conclusão de um agendamento Ted, um webhook será enviado ao parceiro integrador com o resultado.

:::danger Atenção!
Os webhooks da QI Tech não devem ser mapeados de forma restrita. Campos adicionais podem ser incluídos aos payloads dos
webhooks retornados em nossas APIs.
:::

### Webhook Request Body

Request Body: Agendamento Concluído e Enviado

```json
{
  "webhook_type": "baas.ted.ted_schedule.completed",
  "webhook_datetime": "2021-10-22T20:30:23.459Z",
  "data": {
    "request_control_key": "b8eb663e-10fe-4729-9db5-8f8c93de5001",
    "schedule_key": "0c9091ab-079b-4a43-8b3d-d4ba36a23883",
    "schedule_batch_key": null,
    "schedule_status": "sent",
    "target_account": {
      "account_branch": "0001",
      "account_digit": "8",
      "account_number": "1234567",
      "owner_document_number": "***91111***",
      "owner_person_type": "natural",
      "owner_name": "Conta manual geral",
      "account_type": "checking_account",
      "ispb": "99999004"
    },
    "transaction_amount": 2.0,
    "rejection_info": null,
    "schedule_date": "2024-07-10",
    "updated_at": "2024-07-10T16:19:38Z",
    "created_at": "2024-06-10T11:17:28Z",
    "schedule_transfers": [
      {
        "request_control_key": "12723821-41d5-496b-b66c-fb7188f50fc1",
        "ted_key": "91028dfa-43a2-4665-adf2-0bd4571f6f0d",
        "created_at": "2024-07-10T16:19:38Z",
        "ted_status": "sent",
        "fee_amount": 2.00
      }
    ]
  }
}
```

Request Body: Agendamento Concluído e Rejeitado

```json
{
  "webhook_type": "baas.ted.ted_schedule.completed",
  "webhook_datetime": "2021-10-22T20:30:23.459Z",
  "data": {
    "request_control_key": "b8eb663e-10fe-4729-9db5-8f8c93de5001",
    "schedule_key": "0c9091ab-079b-4a43-8b3d-d4ba36a23883",
    "schedule_batch_key": null,
    "schedule_status": "sent",
    "target_account": {
      "account_branch": "0001",
      "account_digit": "8",
      "account_number": "1234567",
      "owner_document_number": "***91111***",
      "owner_person_type": "natural",
      "owner_name": "Conta manual geral",
      "account_type": "checking_account",
      "ispb": "99999004"
    },
    "transaction_amount": 2.0,
    "rejection_info": {
      "error_code": "TED000103",
      "error_description": "The maximum number of failed transfer attempts has been reached",
      "error_translation": "Número máximo de tentativas de transferência foi atingida",
      "rejection_reason": "max_tries_exceeded"
    },
    "schedule_date": "2024-07-10",
    "updated_at": "2024-07-10T16:19:38Z",
    "created_at": "2024-06-10T11:17:28Z",
    "schedule_transfers": [
      {
        "ted_key": "907e38c5-5700-492f-a181-8f651317458b",
        "created_at": "2024-07-10T16:19:38Z",
        "ted_status": "rejected",
        "fee_amount": 2.00
      },
      {
        "ted_key": "356f8855-8f8d-4aaa-8e8c-1287e363d143",
        "created_at": "2024-07-10T17:19:38Z",
        "ted_status": "rejected",
        "fee_amount": 2.00
      },
      {
        "ted_key": "c51cc7ee-d966-4bbb-8405-4850b90b43f8",
        "created_at": "2024-07-10T18:19:38Z",
        "ted_status": "rejected",
        "fee_amount": 2.00
      }
    ]
  }
}
```

### Webhook Body Param

| Campo                 | Tipo   | Descrição                                                                          | Max. Caracteres                                                    |
|-----------------------|--------|------------------------------------------------------------------------------------|--------------------------------------------------------------------|
| `webhook_type`        | string | Um enumerador que define o tipo de evento sendo reportado                          | 23                                                                 |
| `webhook_datetime`    | string | Data e hora do envio do webhook                                                    | 20                                                                 |
| `request_control_key` | uuidv4 | Chave única de identificação da request utilizada pelo cliente no formato uuid v4. | 36                                                                 |                                                                  |
| `schedule_key`        | string | Chave única de identificação do agendamento                                        | 36                                                                 |
| `schedule_batch_key`  | string | Chave única de identificação do lote de agendamento                                | 36                                                                 |
| `schedule_status`     | string | Status do agendamento                                                              | **[Enumerador schedule_status](#ted-schedule-status)**             |
| `target_account`      | object | Conta destino do agendamento                                                       | **[Objeto target_account](#objeto-target_account)**                |
| `transaction_amount`  | number | Valor da transferencia                                                             | 10                                                                 |
| `schedule_transfers`  | array  | Lista de tentativas de transferências realizadas pelo agendamento                  | lista de **[Objeto schedule_transfer](#objeto-schedule-transfer)** |
| `schedule_date`       | string | Data a ser realizada a transação.                                                  | 10                                                                 |
| `rejection_info`      | object | Objeto com informaçôes sobre o evento de rejeição                                  |                                                                    |
| `updated_at`          | string | Data e hora da última atualização do agendamento.                                  | 20                                                                 |
| `created_at`          | string | Data e hora de criação do agendamento.                                             | 20                                                                 |

## Ted Schedule Status

| Enumerador                 | Descrição                                                                                      |
|----------------------------|------------------------------------------------------------------------------------------------|
| **scheduled**              | Transação agendada                                                                             |
| **sent**                   | Agendamento concluído e enviado com sucesso. Estado final                                      |
| **rejected**               | Agendamento rejeitado durante criação ou execução. Estado final                                |
| **cancelled**              | Agendamento cancelado por solicitação de cliente. Estado final                                 |
| **pending_2fa_approval**   | Pendente de aprovação por autenticação de dois fatores                                         |
| **waiting_batch_approval** | Agendamento criado e vinculado a um lote aguardando aprovação por autenticação de dois fatores |

### Objeto Schedule Transfer

| Campo        | Tipo   | Descrição                                                        | Caracteres                                        |
|--------------|--------|------------------------------------------------------------------|---------------------------------------------------|
| `ted_key`    | uuidv4 | Chave única de identificação da transferência Ted no sistema QI. | 36                                                |
| `ted_status` | string | Status da transação.                                             | [Enumeradores ted_status](#enumerador-ted-status) |
| `fee_amount` | number | Valor da transferencia                                           | 10                                                |
| `created_at` | string | Data e hora de criação da transação                              | 20                                                |

### Enumerador Ted Status

| Enumerador   | Descrição                                           |
|--------------|-----------------------------------------------------|
| **sent**     | Transação enviada com sucesso. Estado final         |
| **rejected** | Transação rejeitada durante execução. Estado final  |
| **pending**  | Transação pendente de conclusão. Estado Transitório |

### Objeto target_account

| Campo                   | Tipo       | Descrição                                                                                               | Caracteres                                                        |
|-------------------------|------------|---------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|
| `account_branch`        | string     | Agência da conta                                                                                        | 6                                                                 |
| `account_digit`         | string     | Dígito da conta                                                                                         | 1                                                                 |
| `account_number`        | string     | Número da conta                                                                                         | 20                                                                |
| `owner_document_number` | string     | CPF ou CNPJ (apenas números) do titular da conta                                                        | 14                                                                |
| `owner_name`            | string     | Nome do titular da conta                                                                                | 150                                                               |
| `owner_person_type`     | enumerator | Identificador de que o dono da conta enviada é uma pessoa física ou jurídica                            | **[Enumerador owner_person_type](#enumerador-owner_person_type)** |                                                    |
| `owner_name`            | string     | Nome do titular da conta                                                                                | 150                                                               |
| `account_type`          | enumerator | Tipo da conta                                                                                           | **[Enumerador account_type](#enumerador-account_type)**           |
| `ispb`                  | string     | Código de oito dígitos que identifica os bancos no sistema de transferência de reserva do Banco Central | 8                                                                 |

### Enumerador owner_person_type

| Enum        | Description     |
|-------------|-----------------|
| **natural** | Pessoa física   |
| **legal**   | Pessoa jurídica |

## Enumerador account_type

| Enumerador             | Tradução              |
|------------------------|-----------------------|
| **checking_account**   | conta corrente        |
| **deposit_account**    | conta depósito        |
| **guaranteed_account** | conta de garantia     |
| **investment_account** | conta de investimento |
| **payment_account**    | conta de pagamento    |
| **saving_account**     | conta poupança        |

---

# Webhook após finalização de envio de TED

URL: /documentation/baas/ted/webhooks

Webhook informará caso uma transação TED tenha sido devolvida.

## Webhook Request Body

**Webhook Body: TED Rejeitada**

```json
{
  "webhook_type": "baas.ted.outgoing_ted",
  "webhook_datetime": "2021-10-22T20:30:23.459Z",
  "data": {
    "request_control_key": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3",
    "ted_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "account_key": "fc6862c4-2b20-4057-8063-b8809866e494",
    "created_at": "2021-10-22T20:30:23.459Z",
    "ted_status": "sent",
    "transaction_amount": 126.97,
    "fee_amount": 0.0,
    "target_account": {
      "account_branch": "0001",
      "account_digit": "6",
      "account_number": "78340",
      "ispb": "12345678",
      "owner_document_number": "32402502000135",
      "owner_name": "QI Tech"
    },
    "refusal_reason": {
      "refusal_code": 1,
      "enumerator": "conta_destinatario_encerrada",
      "description": "Conta Destinatária do Crédito Encerrada"
    }
  }
}
```

**Webhook Body: TED Confirmada**

```json
{
  "webhook_type": "baas.ted.outgoing_ted",
  "webhook_datetime": "2021-10-22T20:30:23.459Z",
  "data": {
    "request_control_key": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3",
    "ted_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "account_key": "fc6862c4-2b20-4057-8063-b8809866e494",
    "created_at": "2021-10-22T20:30:23.459Z",
    "ted_status": "confirmed",
    "transaction_amount": 126.97,
    "fee_amount": 0.0,
    "target_account": {
      "account_branch": "0001",
      "account_digit": "6",
      "account_number": "78340",
      "ispb": "12345678",
      "owner_document_number": "32402502000135",
      "owner_name": "QI Tech"
    },
    "refusal_reason": null
  }
}
```

## Webhook Body Param

| Campo                 | Tipo   | Descrição                                                                         | Max. Caracteres                                     |
|-----------------------|--------|-----------------------------------------------------------------------------------|-----------------------------------------------------|
| `webhook_type`        | string | Um enumerador que define o tipo de evento sendo reportado                         | 23                                                  |
| `webhook_datetime`    | string | Data e hora do envio do webhook                                                   | 20                                                  |
| `request_control_key` | string | Chave única de identificação da request utilizada pelo cliente no formato uuid v4 | 36                                                  | 
| `ted_key`             | string | Chave única de identificação da transferência TED                                 | 36                                                  |
| `created_at`          | string | Data e hora de criação da transação                                               | 24                                                  |
| `ted_status`          | string | Status da transação TED                                                           | **[Enumerador ted_status](#enumerador-ted_status)** |
| `transaction_amount`  | number | Valor da transferência                                                            | 10                                                  |
| `fee_amount`          | number | Valor da taxa cobrada pela transferencia                                         | 35                                                  |
| `target_account`      | Object | Conta destino - Só deve ser enviada em transações do tipo "manual"                | **[Objeto target_account](#objeto-target_account)** |
| `refusal_reason`      | Object | Motivo da recusa de acordo com o padrão do Banco Central                          | **[Objeto refusal_reason](#objeto-refusal_reason)** |

## Enumerador ted_status

| Enumerador    | Descrição                                |
|---------------|------------------------------------------|
| **sent**      | Transferência TED enviada com sucesso.   |
| **confirmed** | Transferência TED realizada com sucesso. |
| **pending**   | Transferência TED pendente.              |
| **rejected**  | Transferência TED rejeitada.             |
| **returned**  | Transferência TED devolvida.             |

## Objeto target_account

| Campo                     | Tipo   | Descrição                                           | Caracteres                                              |
|---------------------------|--------|-----------------------------------------------------|---------------------------------------------------------|
| `account_branch` *        | string | Agência.                                            | 4                                                       |
| `account_digit` *         | string | Dígito da conta                                     | 1                                                       |
| `account_number` *        | string | Número da conta.                                    | 20                                                      |
| `owner_document_number` * | string | CPF ou CNPJ (apenas números) do titular da conta.   | 14                                                      |
| `owner_name` *            | string | Nome do titular da conta.                           | 50                                                      |
| `account_type`*           | string | Tipo da conta.                                      | **[Enumerador account_type](#enumerador-account_type)** |
| `ispb` *                  | string | Base no CNPJ da instituição financeira (8 dígitos). | 8                                                       |

## Objeto refusal_reason

| Campo           | Tipo   | Descrição                  | Caracteres |
|-----------------|--------|----------------------------|------------|
| `bacen_code` *  | string | Código de recusa Bacen     | 3          |
| `enumerator` *  | string | Enumerador da recusa Bacen | 100        |
| `description` * | string | Descrição da recusa Bacen  | 100        |

## Enumerador account_type

| Enumerador         | Tradução              |
|--------------------|-----------------------|
| checking_account   | conta corrente        |
| deposit_account    | conta depósito        |
| guaranteed_account | conta de garantia     |
| investment_account | conta de investimento |
| payment_account    | conta de pagamento    |
| saving_account     | conta poupança        |

## Webhook após o recebimento de TED

Webhook informará sobre o status final da transação TED.

## Webhook Request Body

**Request Body: TED Recebida**

```json
{
  "webhook_type": "baas.ted.incoming_ted",
  "webhook_datetime": "2021-10-22T20:30:23.459Z",
  "data": {
    "request_control_key": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3",
    "ted_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "account_key": "fc6862c4-2b20-4057-8063-b8809866e494",
    "created_at": "2021-10-22T20:30:23.459Z",
    "ted_status": "received",
    "transaction_amount": 126.97,
    "fee_amount": 0.0,
    "source_account": {
      "account_branch": "0001",
      "account_digit": "6",
      "account_number": "78340",
      "ispb": "12345678",
      "owner_document_number": "32402502000135",
      "owner_name": "QI Tech"
    },
    "refusal_reason": {}
  }
}
```

## Webhook Body Param

| Campo                 | Tipo   | Descrição                                                                         | Max. Caracteres                                     |
|-----------------------|--------|-----------------------------------------------------------------------------------|-----------------------------------------------------|
| `webhook_type`        | string | Um enumerador que define o tipo de evento sendo reportado                         | 23                                                  |
| `webhook_datetime`    | string | Data e hora do envio do webhook                                                   | 20                                                  |
| `ted_key`             | string | Chave única de identificação da transferência TED                                 | 36                                                  |
| `created_at`          | string | Data e hora de criação da transação                                               | 100                                                 |
| `ted_status`          | string | Status da transação TED                                                           | **[Enumerador ted_status](#enumerador-ted_status)** |
| `transaction_amount`  | number | Valor da transferência                                                            | 10                                                  |
| `fee_amount`          | number | Valor da taxa cobrada pela transferencia                                         | 35                                                  |
| `target_account`      | Object | Conta destino - Só deve ser enviada em transações do tipo "manual"                | **[Objeto target_account](#objeto-target_account)** |
| `refusal_reason`      | Object | Motivo da recusa de acordo com o padrão do Banco Central                          | **[Objeto refusal_reason](#objeto-refusal_reason)** |

## Enumerador ted_status

| Enumerador   | Descrição                                |
|--------------|------------------------------------------|
| **received** | Transferência TED recebida com sucesso.  |
| **pending**  | Transferência TED pendente.              |
| **rejected** | Transferência TED rejeitada.             |

## Objeto target_account

| Campo                     | Tipo   | Descrição                                           | Caracteres                                              |
|---------------------------|--------|-----------------------------------------------------|---------------------------------------------------------|
| `account_branch` *        | string | Agência.                                            | 10                                                      |
| `account_digit` *         | string | Dígito da conta                                     | 10                                                      |
| `account_number` *        | string | Número da conta.                                    | 10                                                      |
| `owner_document_number` * | string | CPF ou CNPJ (apenas números) do titular da conta.   | 14                                                      |
| `owner_name` *            | string | Nome do titular da conta.                           | 50                                                      |
| `account_type`*           | string | Tipo da conta.                                      | **[Enumerador account_type](#enumerador-account_type)** |
| `ispb` *                  | string | Base no CNPJ da instituição financeira (8 dígitos). | 8                                                       |

## Objeto refusal_reason

| Campo           | Tipo   | Descrição                  | Caracteres |
|-----------------|--------|----------------------------|------------|
| `bacen_code` *  | string | Código de recusa Bacen     | 3          |
| `enumerator` *  | string | Enumerador da recusa Bacen | 100        |
| `description` * | string | Descrição da recusa Bacen  | 100        |

## Enumerador account_type

| Enumerador         | Tradução              |
|--------------------|-----------------------|
| checking_account   | conta corrente        |
| deposit_account    | conta depósito        |
| guaranteed_account | conta de garantia     |
| investment_account | conta de investimento |
| payment_account    | conta de pagamento    |
| saving_account     | conta poupança        |

---

# baas_consulta_documents

URL: /documentation/baas/upload_de_documentos/baas_consulta_documents



---

# baas_upload_de_documentos

URL: /documentation/baas/upload_de_documentos/



---

# Criar carteira

URL: /documentation/boletos/carteira/criar_carteira

:::danger Importante
Para registrar bolePix, é necessário que exista uma chave Pix aleatória ativa na conta em que os boletos serão registrados.
:::

As carteiras de boleto possuem um código de identificação único (`requester_profile_code`) e configurações padrão específicas de pagamento, baixa, protesto etc. do boleto. Uma mesma conta pode ter várias carteiras de boleto, o que permite ao usuário criar várias carteiras com configurações padrão diferente. Tal dinâmica facilita a geração de boletos, com diferentes configurações, de maneira mais ágil e automática.

:::info Informação
Para todas as contas, é criada uma carteira de boletos com as configurações padrão do cliente. Esse padrão de configurações pode ser alterado entrando em contato com nosso suporte (suporte.baas@qitech.com.br). Após a criação da conta, é possível alterar também as tarifas da conta utilizando o [**endpoint de configuração de tarifas**](/documentation/contas/consulta_de_tarifas).
:::

:::caution Atenção!
A criação de carteiras de boletos é um fluxo assíncrono. Após a aprovação/rejeição da criação da carteira pela CIP/Nuclea, o solicitante será notificado via [**webhook**](/documentation/boletos/v2/webhooks/carteira) sobre o resultado de tal solicitação.
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile
MÉTODO POST

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |

Request Body

```json
{
  "request_control_key": "0868a24b-4a69-4138-ac4d-ecaeddf0005f",
  "configuration_data": {
    "max_payment_days": 1,
    "protest_settings": {
      "days_to_protest": 0
    },
    "bankruptcy_protest_settings": {
      "days_to_bankruptcy_protest": 0
    },
    "write_off_settings": {
      "days_to_write_off": 0
    },
    "fine_settings": {
      "fine_type": "absolute",
      "fine_amount": 10,
      "days_to_fine": 0
    },
    "interest_settings": {
      "interest_type": "workdays_daily_amount",
      "interest_amount": 10,
      "days_to_interest": 0
    },
    "qr_code_settings": {
      "pix_key": "5df7a433-bd61-4f98-9515-df9aedc2980c",
      "qr_code_on_discharge_enabled": false
    },
    "cnab_settings": {
      "default_bank": "qi_scd",
      "preferred_layout": "400"
    }
  }
}
```

### Request Body Params

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|------------|
| `request_control_key` *    | uuidv4  | Chave única de identificação da request utilizada pelo cliente no formato uuid v4  | 36         |
| `configuration_data` *     | object  | Configurações padrão da carteira  | **[Objeto configuration_data](#objeto-configuration_data)** |

### Objeto configuration_data

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|------------|
| `max_payment_days` *      | integer | Máximo de dias corridos que o boleto ficará disponível para pagamento, após o vencimento (pode ser no máximo 365) | -          |
| `write_off_settings`       | object  | Configuração padrão de baixa      | **[Objeto write_off_settings](#objeto-write_off_settings)** |
| `protest_settings`         | object  | Configuração padrão de protesto       | **[Objeto protest_settings](#objeto-protest_settings)** |
| `bankruptcy_protest_settings` | object  | Configuração padrão de protesto falimentar | **[Objeto bankruptcy_protest_settings](#objeto-bankruptcy_protest_settings)** |
| `fine_settings`            | object  | Configuração padrão de multa                 | **[Objeto fine_setings](#objeto-fine_settings)** |
| `interest_settings`        | object  | Configuração padrão de juros        | **[Objeto interest_settings](#objeto-interest_settings)** |
| `qr_code_settings`         | object  | Configuração padrão de QR Code PIX (para bolePix) | **[Objeto qr_code_settings](#objeto-qr_code_settings)** |
| `cnab_settings`            | object  | Configuração padrão de arquivos CNAB | **[Objeto cnab_settings](#objeto-cnab_settings)** |

### Objeto write_off_settings

| Campo                     | Tipo    | Descrição                                                                   | Caracteres |
|---------------------------|---------|-----------------------------------------------------------------------------|------------|
| `days_to_write_off` *     | integer | Dias, após o vencimento, para que o boleto seja baixado automaticamente     | -          |

### Objeto protest_settings
| Campo                     | Tipo    | Descrição                                                                   | Caracteres |
|---------------------------|---------|-----------------------------------------------------------------------------|------------|
| `days_to_protest` *       | integer | Dias, após o vencimento, para que o boleto seja protestado automaticamente  | -          |

### Objeto bankruptcy_protest_settings

| Campo                          | Tipo    | Descrição                                                                   | Caracteres  |
|--------------------------------|---------|-----------------------------------------------------------------------------|-------------|
| `days_to_bankruptcy_protest` * | integer | Dias, após o vencimento, para que seja iniciado um processo de protesto falimentar automaticamente  | -           |

### Objeto fine_settings

Opção 1: multa em valor absoluto (`fine_type=absolute`)

| Campo                     | Tipo    | Descrição                                               | Caracteres                |
|---------------------------|---------|---------------------------------------------------------|-------------------------------------------------------------------------|
| `fine_type` *             | string  | Tipo da multa                                                       | **[Enumeradores fine_type](#enumeradores-fine_type)**                                              |
| `fine_amount` *           | float   | Valor absoluto da multa                                             | -                                                                        |
| `days_to_fine` *          | integer | Dias, após o vencimento, para que a multa seja cobrada              | -                                                                        |

Opção 2: multa em valor percentual (`fine_type=percentage`)

| Campo                     | Tipo    | Descrição                                                 | Caracteres                             |
|---------------------------|---------|-----------------------------------------------------------|---------------------------------------|
| `fine_type` *             | string  | Tipo da multa                                             | **[Enumeradores fine_type](#enumeradores-fine_type)** |
| `fine_percentage` *       | integer | Valor percentual da multa, de 1 a 100                     | -                                      |
| `days_to_fine` *          | integer | Dias, após o vencimento, para que a multa seja cobrada    | -                                      |

### Enumeradores fine_type

| Enumerador         | Descrição             |
|--------------------|-----------------------|
| absolute           | valor absoluto        |
| percentage         | valor percentual      |

### Objeto interest_settings

Opção 1: juros utilizando valores absolutos (`interest_type=calendar_days_daily_amount` ou `interest_type=workdays_daily_amount`)

| Campo                     | Tipo    | Descrição                                                                     | Caracteres                                                                                      |
|---------------------------|---------|-------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|
| `interest_type` *         | string  | Tipo de juros       | **[Enumeradores interest_type](#enumeradores-interest_type)** |
| `interest_amount` *       | float   | Valor a ser cobrado por unidade de tempo determinada (dias úteis ou corridos) | -                                                                                               |
| `days_to_interest` *      | integer | Dias, após o vencimento, para que comece a cobrar os juros                    | -                                                                                               |

Opção 2: juros utilizando valores percentuais (`interest_type=calendar_days_monthly_percentage`)

| Campo                    | Tipo    | Descrição                                                                             | Caracteres                                                                                          |
|--------------------------|---------|---------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|
| `interest_type` *        | string  | Tipo de juros       | **[Enumeradores interest_type](#enumeradores-interest_type)** |
| `interest_percentage` *  | integer | Porcentagem a ser cobrada por unidade de tempo determinada (dias úteis ou corridos)                                                                      | -                                                                           |
| `days_to_interest` *     | integer | Dias, após o vencimento, para que comece a cobrar os juros                             | -                                                                                                   |

### Enumeradores interest_type

| Enumerador                       | Descrição                                                            |
|----------------------------------|----------------------------------------------------------------------|
| calendar_days_daily_amount       | Valor diário sobre dias corridos                                     |
| workdays_daily_amount            | Valor diário sobre dias úteis                                        |
| calendar_days_monthly_percentage | Porcentagem de juros cobrados mensalmente, com base em dias corridos |

### Objeto qr_code_settings

| Campo                            | Tipo    | Descrição                                                                   | Caracteres  |
|----------------------------------|---------|-----------------------------------------------------------------------------|-------------|
| `pix_key` *                      | uuidv4  | Chave Pix do tipo aleatória                                                 | 36          |
| `qr_code_on_discharge_enabled` * | boolean | Determina se as informações do QR Code constarão no arquivo retorno (CNAB)  | -           |

:::info Informação
O PIX copia e cola será retornado no arquivo CNAB na posição 029 a 105.
:::

:::caution Atenção!
Caso o objeto `qr_code_settings` seja enviado na request, essa carteira terá como configuração padrão a geração de bolePix. BolePix são boletos cujo pagamento é vinculado a um QR Code Pix. Sendo assim, o pagador pode realizar o pagamento dos boletos tanto utilizando as linhas digitáveis dos mesmos, quanto através da leitura dos QR Codes Pix vinculados. Caso o pagamento seja feito via QR Code, a liquidação financeira se dá instantaneamente. Já em relação às notificações, são enviados dois webhooks: um no ato da transferência PIX (aviso de pagamento, boleto vai para o status `payment_notice`); e outro alguns segundos ou minutos depois, após a confirmação da baixa na CIP/Nuclea (pago, boleto vai para o status `paid`).
:::

### Objeto cnab_settings

| Campo                            | Tipo    | Descrição                                                                   | Caracteres  |
|----------------------------------|---------|-----------------------------------------------------------------------------|-------------|
| `default_bank`                   | string  | Layout do banco padrão para processamento de arquivos CNAB                            | **[Enumeradores default_bank](#enumeradores-default_bank)** |
| `preferred_layout`               | string  | Layout preferido para arquivos CNAB                                         | **[Enumeradores preferred_layout](#enumeradores-preferred_layout)** |

### Enumeradores default_bank

| Enumerador         | Descrição             |
|--------------------|-----------------------|
| santander          | Banco Santander       |
| itau               | Banco Itaú            |
| bradesco           | Banco Bradesco        |
| qi_scd             | QI SCD                |

### Enumeradores preferred_layout

| Enumerador         | Descrição             |
|--------------------|-----------------------|
| 400                | Layout CNAB 400       |
| 240                | Layout CNAB 240       |

## Response

STATUS 202

Response Body

```json
{
  "requester_profile_key": "fd86d9b1-2a5e-4e03-9a59-a043c7632c97",
  "requester_profile_code": "329-04-2338-2625918",
  "request_control_key": "0868a24b-4a69-4138-ac4d-ecaeddf0005f",
  "account_key": "0494902f-b21c-4ae6-b37e-854cfe883402",
  "requester_profile_status": "pending",
  "configuration_data": {
    "max_payment_days": 1,
    "protest_settings": {
      "days_to_protest": 0
    },
    "bankruptcy_protest_settings": {
      "days_to_bankruptcy_protest": 0
    },
    "write_off_settings": {
      "days_to_write_off": 0
    },
    "fine_settings": {
      "fine_type": "absolute",
      "fine_amount": 10,
      "days_to_fine": 0
    },
    "interest_settings": {
      "interest_type": "workdays_daily_amount",
      "interest_amount": 10,
      "days_to_interest": 0
    },
    "qr_code_settings": {
      "pix_key": "5df7a433-bd61-4f98-9515-df9aedc2980c",
      "qr_code_on_discharge_enabled": false
    },
    "cnab_settings": {
      "default_bank": "qi_scd",
      "preferred_layout": "400"
    }
  }
}

```

### Response Body Params

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------------------|
| `requester_profile_key` *  | uuidv4  | Chave única de identificação da carteira no formato uuid v4  | 36      |
| `requester_profile_code` * | string  | Código único de identificação da carteira                    | 19      |
| `request_control_key` *    | uuidv4  | Chave única de identificação da request utilizada pelo cliente no formato uuid v4 | 36 |
| `account_key` *            | uuidv4  | Chave única de identificação da conta no formato uuid v4 | 36 |
| `requester_profile_status` * | string | Status da carteira | **[Enumeradores requester_profile_status](#enumeradores-requester_profile_status)** |
| `configuration_data` * | object | Configurações padrão da carteira | **[Objeto configuration_data](#objeto-configuration_data)** |

### Enumeradores profile_status

| Enumerador                       | Descrição                                                            |
|----------------------------------|----------------------------------------------------------------------|
| pending                          | Carteira aceita e pendente de confirmação                            |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | BKS000001            | Not Found | Person not found with key: {`person_key`}`                                               | Pessoa não encontrada com a chave: {`person_key`}`                                               |
| 404                      | BKS000004            | Not Found | Pix key not found: `{pix_key}`                                               | Chave pix não encontrada: `{pix_key}`                                               |
| 403                      | BKS000005            | Forbidden                         | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 403                      | BKS000010            | Forbidden                                 | The pix key owner does not match the account owner.                                                                                     | O proprietário da chave pix não corresponde ao proprietário da conta.                                                             |
| 409                      | BKS000014            | Conflict           | Request control key already sent or duplicated sent: `{request_control_key}`                                                              | Chave de controle da requisição já utilizada ou enviada duplicada: `{request_control_key}`                                                                        |
| 400                      | BKS000047            | Bad Request             | It was not possible to consult the sent pix key at this time. Please try again in a few minutes.          | Não foi possível consultar a chave pix enviada no momento. Por favor, tente novamente em alguns minutos.                                                           |

---

# Editar carteira

URL: /documentation/boletos/carteira/editar_carteira

A edição de carteira sobrepõe as configurações padrão (`configuration_data`) da carteira de boletos e todos os seus objetos filhos.

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY
MÉTODO PUT

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |

Request Body

```json
{
  "max_payment_days": 1,
  "protest_settings": {
    "days_to_protest": 0
  },
  "bankruptcy_protest_settings": {
    "days_to_bankruptcy_protest": 0
  },
  "write_off_settings": {
    "days_to_write_off": 0
  },
  "fine_settings": {
    "fine_type": "absolute",
    "fine_amount": 10,
    "days_to_fine": 0
  },
  "interest_settings": {
    "interest_type": "workdays_daily_amount",
    "interest_amount": 10,
    "days_to_interest": 0
  },
  "qr_code_settings": {
    "pix_key": "248ebea3-9bdd-44b3-a8b9-7f2bd34cd7bf",
    "qr_code_on_discharge_enabled": false
  },
  "cnab_settings": {
    "default_bank": "qi_scd",
    "preferred_layout": "400"
  }
}
```

### Request Body Params

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|------------|
| `max_payment_days` *      | integer | Máximo de dias corridos que o boleto ficará disponível para pagamento, após o vencimento (pode ser no máximo 365) | -          |
| `write_off_settings`       | object  | Configuração padrão de baixa      | **[Objeto write_off_settings](#objeto-write_off_settings)** |
| `protest_settings`         | object  | Configuração padrão de protesto       | **[Objeto protest_settings](#objeto-protest_settings)** |
| `bankruptcy_protest_settings` | object  | Configuração padrão de protesto falimentar | **[Objeto bankruptcy_protest_settings](#objeto-bankruptcy_protest_settings)** |
| `fine_settings`            | object  | Configuração padrão de multa                 | **[Objeto fine_setings](#objeto-fine_settings)** |
| `interest_settings`        | object  | Configuração padrão de juros        | **[Objeto interest_settings](#objeto-interest_settings)** |
| `qr_code_settings`         | object  | Configuração padrão de QR Code PIX (para bolePix) | **[Objeto qr_code_settings](#objeto-qr_code_settings)** |
| `cnab_settings`            | object  | Configuração padrão de arquivos CNAB | **[Objeto cnab_settings](#objeto-cnab_settings)** |

### Objeto write_off_settings

| Campo                     | Tipo    | Descrição                                                                   | Caracteres |
|---------------------------|---------|-----------------------------------------------------------------------------|------------|
| `days_to_write_off` *     | integer | Dias, após o vencimento, para que o boleto seja baixado automaticamente     | -          |

### Objeto protest_settings
| Campo                     | Tipo    | Descrição                                                                   | Caracteres |
|---------------------------|---------|-----------------------------------------------------------------------------|------------|
| `days_to_protest` *       | integer | Dias, após o vencimento, para que o boleto seja protestado automaticamente  | -          |

### Objeto bankruptcy_protest_settings

| Campo                          | Tipo    | Descrição                                                                   | Caracteres  |
|--------------------------------|---------|-----------------------------------------------------------------------------|-------------|
| `days_to_bankruptcy_protest` * | integer | Dias, após o vencimento, para que seja iniciado um processo de protesto falimentar automaticamente  | -           |

### Objeto fine_settings

Opção 1: multa em valor absoluto (`fine_type=absolute`)

| Campo                     | Tipo    | Descrição                                               | Caracteres                |
|---------------------------|---------|---------------------------------------------------------|-------------------------------------------------------------------------|
| `fine_type` *             | string  | Tipo da multa                                                       | **[Enumeradores fine_type](#enumeradores-fine_type)**                                              |
| `fine_amount` *           | float   | Valor absoluto da multa                                             | -                                                                        |
| `days_to_fine` *          | integer | Dias, após o vencimento, para que a multa seja cobrada              | -                                                                        |

Opção 2: multa em valor percentual (`fine_type=percentage`)

| Campo                     | Tipo    | Descrição                                                 | Caracteres                             |
|---------------------------|---------|-----------------------------------------------------------|---------------------------------------|
| `fine_type` *             | string  | Tipo da multa                                             | **[Enumeradores fine_type](#enumeradores-fine_type)** |
| `fine_percentage` *       | integer | Valor percentual da multa, de 1 a 100                     | -                                      |
| `days_to_fine` *          | integer | Dias, após o vencimento, para que a multa seja cobrada    | -                                      |

### Enumeradores fine_type

| Enumerador         | Descrição             |
|--------------------|-----------------------|
| absolute           | valor absoluto        |
| percentage         | valor percentual      |

### Objeto interest_settings

Opção 1: juros utilizando valores absolutos (`interest_type=calendar_days_daily_amount` ou `interest_type=workdays_daily_amount`)

| Campo                     | Tipo    | Descrição                                                                     | Caracteres                                                                                      |
|---------------------------|---------|-------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|
| `interest_type` *         | string  | Tipo de juros       | **[Enumeradores interest_type](#enumeradores-interest_type)** |
| `interest_amount` *       | float   | Valor a ser cobrado por unidade de tempo determinada (dias úteis ou corridos) | -                                                                                               |
| `days_to_interest` *      | integer | Dias, após o vencimento, para que comece a cobrar os juros                    | -                                                                                               |

Opção 2: juros utilizando valores percentuais (`interest_type=calendar_days_monthly_percentage`)

| Campo                    | Tipo    | Descrição                                                                             | Caracteres                                                                                          |
|--------------------------|---------|---------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|
| `interest_type` *        | string  | Tipo de juros       | **[Enumeradores interest_type](#enumeradores-interest_type)** |
| `interest_percentage` *  | integer | Porcentagem a ser cobrada por unidade de tempo determinada (dias úteis ou corridos)                                                                      | -                                                                           |
| `days_to_interest` *     | integer | Dias, após o vencimento, para que comece a cobrar os juros                             | -                                                                                                   |

### Enumeradores interest_type

| Enumerador                       | Descrição                                                            |
|----------------------------------|----------------------------------------------------------------------|
| calendar_days_daily_amount       | Valor diário sobre dias corridos                                     |
| workdays_daily_amount            | Valor diário sobre dias úteis                                        |
| calendar_days_monthly_percentage | Porcentagem de juros cobrados mensalmente, com base em dias corridos |

### Objeto qr_code_settings

| Campo                            | Tipo    | Descrição                                                                   | Caracteres  |
|----------------------------------|---------|-----------------------------------------------------------------------------|-------------|
| `pix_key` *                      | uuidv4  | Chave Pix do tipo aleatória                                                 | 36          |
| `qr_code_on_discharge_enabled` * | boolean | Determina se as informações do QR Code constarão no arquivo retorno (CNAB)  | -           |

:::info Informação
O PIX copia e cola será retornado no arquivo CNAB na posição 029 a 105.
:::

:::caution Atenção!
Caso o objeto `qr_code_settings` seja enviado na request, essa carteira terá como configuração padrão a geração de bolePix. BolePix são boletos cujo pagamento é vinculado a um QR Code Pix. Sendo assim, o pagador pode realizar o pagamento dos boletos tanto utilizando as linhas digitáveis dos mesmos, quanto através da leitura dos QR Codes Pix vinculados. Caso o pagamento seja feito via QR Code, a liquidação financeira se dá instantaneamente. Já em relação às notificações, são enviados dois webhooks: um no ato da transferência PIX (aviso de pagamento, boleto vai para o status `payment_notice`); e outro alguns segundos ou minutos depois, após a confirmação da baixa na CIP/Nuclea (pago, boleto vai para o status `paid`).
:::

### Objeto cnab_settings

| Campo                            | Tipo    | Descrição                                                                   | Caracteres  |
|----------------------------------|---------|-----------------------------------------------------------------------------|-------------|
| `default_bank`                   | string  | Layout do banco padrão para processamento de arquivos CNAB                            | **[Enumeradores default_bank](#enumeradores-default_bank)** |
| `preferred_layout`               | string  | Layout preferido para arquivos CNAB                                         | **[Enumeradores preferred_layout](#enumeradores-preferred_layout)** |

### Enumeradores default_bank

| Enumerador         | Descrição             |
|--------------------|-----------------------|
| santander          | Banco Santander       |
| itau               | Banco Itaú            |
| bradesco           | Banco Bradesco        |
| qi_scd             | QI SCD                |

### Enumeradores preferred_layout

| Enumerador         | Descrição             |
|--------------------|-----------------------|
| 400                | Layout CNAB 400       |
| 240                | Layout CNAB 240       |

## Response

STATUS 200

Response Body

```json
{
  "requester_profile_key": "c92e8666-e310-4a72-b15e-753525684ae2",
  "requester_profile_code": "329-48-2628-2625918",
  "request_control_key": "727a5f00-1f86-4a7a-9aa5-c45cf8a2394c",
  "account_key": "e0089187-ab08-42c0-82f2-259d40726117",
  "requester_profile_status": "pending",
  "configuration_data": {
    "max_payment_days": 1,
    "protest_settings": {
      "days_to_protest": 0
    },
    "bankruptcy_protest_settings": {
      "days_to_bankruptcy_protest": 0
    },
    "write_off_settings": {
      "days_to_write_off": 0
    },
    "fine_settings": {
      "fine_type": "absolute",
      "fine_amount": 10,
      "days_to_fine": 0
    },
    "interest_settings": {
      "interest_type": "workdays_daily_amount",
      "interest_amount": 10,
      "days_to_interest": 0
    },
    "qr_code_settings": {
      "pix_key": "248ebea3-9bdd-44b3-a8b9-7f2bd34cd7bf",
      "qr_code_on_discharge_enabled": false
    },
    "cnab_settings": {
      "default_bank": "qi_scd",
      "preferred_layout": "400"
    }
  }
}
```

### Response Body Params

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------------------|
| `requester_profile_key` *  | uuidv4  | Chave única de identificação da carteira no formato uuid v4  | 36      |
| `requester_profile_code` * | string  | Código único de identificação da carteira                    | 19      |
| `request_control_key` *    | uuidv4  | Chave única de identificação da request utilizada pelo cliente no formato uuid v4 | 36 |
| `account_key` *            | uuidv4  | Chave única de identificação da conta no formato uuid v4 | 36 |
| `requester_profile_status` * | string | Status da carteira | **[Enumeradores requester_profile_status](#enumeradores-requester_profile_status)** |
| `configuration_data` * | object | Configurações padrão da carteira | **[Objeto configuration_data](#objeto-configuration_data)** |

### Enumeradores profile_status

| Enumerador                       | Descrição                                                            |
|----------------------------------|----------------------------------------------------------------------|
| pending                          | Carteira aceita e pendente de confirmação                            |
| opened                           | Carteira aberta                                                      |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | BKS000001            | Not Found | Person not found with key: {`person_key`}`                                               | Pessoa não encontrada com a chave: {`person_key`}`                                               |
| 404                      | BKS000004            | Not Found | Pix key not found: `{pix_key}`                                               | Chave pix não encontrada: `{pix_key}`                                               |
| 403                      | BKS000005            | Forbidden                         | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 403                      | BKS000010            | Forbidden                                 | The pix key owner does not match the account owner.                                                                                     | O proprietário da chave pix não corresponde ao proprietário da conta.                                                             |
| 409                      | BKS000014            | Conflict           | Request control key already sent or duplicated sent: `{request_control_key}`                                                              | Chave de controle da requisição já utilizada ou enviada duplicada: `{request_control_key}`                                                                        |
| 400                      | BKS000047            | Bad Request             | It was not possible to consult the sent pix key at this time. Please try again in a few minutes.          | Não foi possível consultar a chave pix enviada no momento. Por favor, tente novamente em alguns minutos.                                                           |

---

# Listar carteiras da conta

URL: /documentation/boletos/carteira/listar_carteiras

A listagem de carteiras retornará todas as carteiras de boletos da conta que se enquadrarem nos query parameters enviados na request.

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profiles
MÉTODO GET

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |

### Query parameters

| Campo                    | Tipo   | Descrição                                                                 | Caracteres |
|--------------------------|--------|---------------------------------------------------------------------------|------------|
| `request_control_key`    | uuidv4 | Chave única de identificação da request, no formato uuid v4               | 36         |
| `requester_profile_key`  | uuidv4 | Chave única de identificação da carteira de boletos, no formato uuid v4   | 36         |
| `requester_profile_code` | string | Código único de identificação da carteira                                 | 19         |
| `page`                   | integer| Número da página                                                          | -          |
| `page_size`              | integer| Tamanho da página                                                         | -          |

## Response

STATUS 200

Response Body

```json
{
  "data": [
    {
      "requester_profile_key": "fd86d9b1-2a5e-4e03-9a59-a043c7632c97",
      "requester_profile_code": "329-04-2338-2625918",
      "request_control_key": "0868a24b-4a69-4138-ac4d-ecaeddf0005f",
      "account_key": "0494902f-b21c-4ae6-b37e-854cfe883402",
      "requester_profile_status": "pending",
      "configuration_data": {
        "max_payment_days": 1,
        "protest_settings": {
          "days_to_protest": 0
        },
        "bankruptcy_protest_settings": {
          "days_to_bankruptcy_protest": 0
        },
        "write_off_settings": {
          "days_to_write_off": 0
        },
        "fine_settings": {
          "fine_type": "absolute",
          "fine_amount": 10,
          "days_to_fine": 0
        },
        "interest_settings": {
          "interest_type": "workdays_daily_amount",
          "interest_amount": 10,
          "days_to_interest": 0
        },
        "qr_code_settings": {
          "pix_key": "5df7a433-bd61-4f98-9515-df9aedc2980c",
          "qr_code_on_discharge_enabled": false
        },
        "cnab_settings": {
          "default_bank": "qi_scd",
          "preferred_layout": "400"
        }
      }
    }
  ],
  "pagination": {
    "current_page": 1,
    "rows_per_page": 100
  }
}
```

### Response Body Parameters

| Campo          | Tipo         | Descrição                         | Caracteres                                                |
|----------------|--------------|-----------------------------------|-----------------------------------------------------------|
| `data` *       | object array | Carteiras de boletos              | **[Objeto requester_profile](#objeto-requester_profile)** |
| `pagination` * | object       | Informações de paginação          | **[Objeto pagination](#objeto-pagination)**               |

### Objeto requester_profile

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------------------|
| `requester_profile_key` *  | uuidv4  | Chave única de identificação da carteira no formato uuid v4  | 36      |
| `requester_profile_code` * | string  | Código único de identificação da carteira                    | 19      |
| `request_control_key` *    | uuidv4  | Chave única de identificação da request utilizada pelo cliente no formato uuid v4 | 36 |
| `account_key` *            | uuidv4  | Chave única de identificação da conta no formato uuid v4 | 36 |
| `requester_profile_status` * | string | Status da carteira | **[Enumeradores requester_profile_status](#enumeradores-requester_profile_status)** |
| `configuration_data` * | object | Configurações padrão da carteira | **[Objeto configuration_data](#objeto-configuration_data)** |

### Enumeradores requester_profile_status

| Enumerador                       | Descrição                                                            |
|----------------------------------|----------------------------------------------------------------------|
| pending                          | Carteira aceita e pendente de confirmação                            |
| opened                           | Carteira aberta                                                      |

### Objeto pagination

| Campo                      | Tipo    | Descrição                                                    | Caracteres |
|----------------------------|---------|--------------------------------------------------------------|------------|
| `current_page` *           | integer | Página atual                                                 | -          |
| `rows_per_page` *          | integer | Itens por página                                             | -          |

### Objeto configuration_data

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|------------|
| `max_payment_days` *      | integer | Máximo de dias corridos que o boleto ficará disponível para pagamento, após o vencimento (pode ser no máximo 365) | -          |
| `write_off_settings`       | object  | Configuração padrão de baixa      | **[Objeto write_off_settings](#objeto-write_off_settings)** |
| `protest_settings`         | object  | Configuração padrão de protesto       | **[Objeto protest_settings](#objeto-protest_settings)** |
| `bankruptcy_protest_settings` | object  | Configuração padrão de protesto falimentar | **[Objeto bankruptcy_protest_settings](#objeto-bankruptcy_protest_settings)** |
| `fine_settings`            | object  | Configuração padrão de multa                 | **[Objeto fine_setings](#objeto-fine_settings)** |
| `interest_settings`        | object  | Configuração padrão de juros        | **[Objeto interest_settings](#objeto-interest_settings)** |
| `qr_code_settings`         | object  | Configuração padrão de QR Code PIX (para bolePix) | **[Objeto qr_code_settings](#objeto-qr_code_settings)** |
| `cnab_settings`            | object  | Configuração padrão de arquivos CNAB | **[Objeto cnab_settings](#objeto-cnab_settings)** |

### Objeto write_off_settings

| Campo                     | Tipo    | Descrição                                                                   | Caracteres |
|---------------------------|---------|-----------------------------------------------------------------------------|------------|
| `days_to_write_off` *     | integer | Dias, após o vencimento, para que o boleto seja baixado automaticamente     | -          |

### Objeto protest_settings
| Campo                     | Tipo    | Descrição                                                                   | Caracteres |
|---------------------------|---------|-----------------------------------------------------------------------------|------------|
| `days_to_protest` *       | integer | Dias, após o vencimento, para que o boleto seja protestado automaticamente  | -          |

### Objeto bankruptcy_protest_settings

| Campo                          | Tipo    | Descrição                                                                   | Caracteres  |
|--------------------------------|---------|-----------------------------------------------------------------------------|-------------|
| `days_to_bankruptcy_protest` * | integer | Dias, após o vencimento, para que seja iniciado um processo de protesto falimentar automaticamente  | -           |

### Objeto fine_settings

Opção 1: multa em valor absoluto (`fine_type=absolute`)

| Campo                     | Tipo    | Descrição                                               | Caracteres                |
|---------------------------|---------|---------------------------------------------------------|-------------------------------------------------------------------------|
| `fine_type` *             | string  | Tipo da multa                                                       | **[Enumeradores fine_type](#enumeradores-fine_type)**                                              |
| `fine_amount` *           | float   | Valor absoluto da multa                                             | -                                                                        |
| `days_to_fine` *          | integer | Dias, após o vencimento, para que a multa seja cobrada              | -                                                                        |

Opção 2: multa em valor percentual (`fine_type=percentage`)

| Campo                     | Tipo    | Descrição                                                 | Caracteres                             |
|---------------------------|---------|-----------------------------------------------------------|---------------------------------------|
| `fine_type` *             | string  | Tipo da multa                                             | **[Enumeradores fine_type](#enumeradores-fine_type)** |
| `fine_percentage` *       | integer | Valor percentual da multa, de 1 a 100                     | -                                      |
| `days_to_fine` *          | integer | Dias, após o vencimento, para que a multa seja cobrada    | -                                      |

### Enumeradores fine_type

| Enumerador         | Descrição             |
|--------------------|-----------------------|
| absolute           | valor absoluto        |
| percentage         | valor percentual      |

### Objeto interest_settings

Opção 1: juros utilizando valores absolutos (`interest_type=calendar_days_daily_amount` ou `interest_type=workdays_daily_amount`)

| Campo                     | Tipo    | Descrição                                                                     | Caracteres                                                                                      |
|---------------------------|---------|-------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|
| `interest_type` *         | string  | Tipo de juros       | **[Enumeradores interest_type](#enumeradores-interest_type)** |
| `interest_amount` *       | float   | Valor a ser cobrado por unidade de tempo determinada (dias úteis ou corridos) | -                                                                                               |
| `days_to_interest` *      | integer | Dias, após o vencimento, para que comece a cobrar os juros                    | -                                                                                               |

Opção 2: juros utilizando valores percentuais (`interest_type=calendar_days_monthly_percentage`)

| Campo                    | Tipo    | Descrição                                                                             | Caracteres                                                                                          |
|--------------------------|---------|---------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|
| `interest_type` *        | string  | Tipo de juros       | **[Enumeradores interest_type](#enumeradores-interest_type)** |
| `interest_percentage` *  | integer | Porcentagem a ser cobrada por unidade de tempo determinada (dias úteis ou corridos)                                                                      | -                                                                           |
| `days_to_interest` *     | integer | Dias, após o vencimento, para que comece a cobrar os juros                             | -                                                                                                   |

### Enumeradores interest_type

| Enumerador                       | Descrição                                                            |
|----------------------------------|----------------------------------------------------------------------|
| calendar_days_daily_amount       | Valor diário sobre dias corridos                                     |
| workdays_daily_amount            | Valor diário sobre dias úteis                                        |
| calendar_days_monthly_percentage | Porcentagem de juros cobrados mensalmente, com base em dias corridos |

### Objeto qr_code_settings

| Campo                            | Tipo    | Descrição                                                                   | Caracteres  |
|----------------------------------|---------|-----------------------------------------------------------------------------|-------------|
| `pix_key` *                      | uuidv4  | Chave Pix do tipo aleatória                                                 | 36          |
| `qr_code_on_discharge_enabled` * | boolean | Determina se as informações do QR Code constarão no arquivo retorno (CNAB)  | -           |

### Objeto cnab_settings

| Campo                            | Tipo    | Descrição                                                                   | Caracteres  |
|----------------------------------|---------|-----------------------------------------------------------------------------|-------------|
| `default_bank`                   | string  | Layout do banco padrão para processamento de arquivos CNAB                            | **[Enumeradores default_bank](#enumeradores-default_bank)** |
| `preferred_layout`               | string  | Layout preferido para arquivos CNAB                                         | **[Enumeradores preferred_layout](#enumeradores-preferred_layout)** |

### Enumeradores default_bank

| Enumerador         | Descrição             |
|--------------------|-----------------------|
| santander          | Banco Santander       |
| itau               | Banco Itaú            |
| bradesco           | Banco Bradesco        |
| qi_scd             | QI SCD                |

### Enumeradores preferred_layout

| Enumerador         | Descrição             |
|--------------------|-----------------------|
| 400                | Layout CNAB 400       |
| 240                | Layout CNAB 240       |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (ptbr)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 400                      | BKS000012            | Bad Request | Invalid integer value for page or size query string parameters. | Valor inválido para parâmetros de página ou tamanho de página. |
| 404                      | BKS000013            | Not Found | Requester profile not found         |               Carteira não encontrada                                                                 |
| 400                      | BKS000025            | Bad Request | Invalid bank slip status.      | Status de boleto inválido.                          |

---

# Consultar arquivo temporário

URL: /documentation/boletos/cnab/consulta_por_chave

A consulta de um arquivo CNAB temporário, utilizando sua chave, retorna informações detalhadas sobre o mesmo, como, por exemplo, a quantidade de ocorrências que já foram processadas e possíveis erros encontrados no arquivo.

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /temporary_cnab_file/ TEMPORARY_CNAB_FILE_KEY
MÉTODO GET

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |
| `temporary_cnab_file_key` | uuidv4 | Chave única de identificação do arquivo CNAB temporário, no formato uuid v4 | 36         |

## Response

STATUS 200

Response Body: Arquivo aceito (sem erros)

```json
{
  "temporary_cnab_file_key": "fa4f094d-8475-4828-9105-99756914e14f",
  "temporary_cnab_file_name": "240827463_t.REM",
  "temporary_cnab_file_status": "read",
  "occurrence_quantity": 6,
  "total_processed_occurrences": 6,
  "created_at": "2024-08-28T15:09:30Z"
}
```

Response Body: Arquivo rejeitado (com erros)

```json
{
  "temporary_cnab_file_key": "c16baa13-0969-46a7-a85f-6f975d266d9f",
  "temporary_cnab_file_name": "240905623.REM",
  "temporary_cnab_file_status": "rejected",
  "occurrence_quantity": 0,
  "total_processed_occurrences": 0,
  "created_at": "2024-09-10T15:59:25Z",
  "error_data": [
    {
      "code": "BKS000063",
      "title": "Bad Request",
      "description": "Invalid file code.",
      "translation": "Codigo de arquivo invalido.",
      "extra_fields": {
        "details": "Invalid file code. Expected: '1'. Got: '0'.",
        "file_line": 1,
        "details_pt_br": "Código de arquivo inválido. Esperado: '1'. Recebido: '0'.",
        "cnab_file_name": "240905623.REM",
        "cnab_inline_end_position": 2,
        "cnab_inline_start_position": 2
      }
    },
    {
      "code": "BKS000069",
      "title": "Bad Request",
      "description": "Invalid beneficiary account: beneficiary account is not the one that the requester profiles belongs to.",
      "translation": "Conta do beneficiario invalida: a conta do beneficiario nao e aquela a qual a carteira de boletos pertence.",
      "extra_fields": {
        "details": "Invalid beneficiary account header on header. Expected: '1927400'. Got: '3;53179'.",
        "file_line": 1,
        "details_pt_br": "Conta do beneficiário inválida no header. Esperado: '1927400'. Recebido: '3;53179'.",
        "cnab_file_name": "240905623.REM",
        "cnab_inline_end_position": 46,
        "cnab_inline_start_position": 40
      }
    },
    {
      "code": "BKS000064",
      "title": "Bad Request",
      "description": "Invalid bank code (014).",
      "translation": "Codigo do banco invalido (014).",
      "extra_fields": {
        "details": "Invalid bank code. Expected: '329'. Got: '014'",
        "bank_code": "014",
        "details_pt_br": "Código do banco inválido. Esperado: '329'. Recebido: '014'",
        "cnab_file_name": "240905623.REM"
      }
    },
    {
      "code": "BKS000056",
      "title": "Bad Request",
      "description": "Invalid record sequence.",
      "translation": "Sequencia invalida de registros.",
      "extra_fields": {
        "cnab_line": 1,
        "cnab_file_name": "240905623.REM"
      }
    },
    {
      "code": "BKS000056",
      "title": "Bad Request",
      "description": "Invalid record sequence.",
      "translation": "Sequencia invalida de registros.",
      "extra_fields": {
        "cnab_line": 2,
        "cnab_file_name": "240905623.REM"
      }
    },
    {
      "code": "BKS000086",
      "title": "Bad Request",
      "description": "File missing trailler record.",
      "translation": "Arquivo sem registro trailler.",
      "extra_fields": {
        "file_line": 3,
        "cnab_file_name": "240905623.REM"
      }
    }
  ]
}
```

### Response Body Params

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------|
| `temporary_cnab_file_key` *| uuidv4  | Chave única de identificação do arquivo CNAB temporário no formato uuid v4         | 36                                                |
| `temporary_cnab_file_name` *| uuidv4  | Nome do arquivo                                                                   | 100                                               |
| `temporary_cnab_file_status` *| string | Status do arquivo CNAB temporário | **[Enumeradores temporary_cnab_file_status](#enumeradores-temporary_cnab_file_status)** |
| `occurrence_quantity` *        | integer  | Quantidade de ocorrências no arquivo                                          | -                                                 |
| `total_processed_occurrences` *| integer  | Quantidade de ocorrências já processadas                                      | -                                                 |
| `error_data`                   | object array | Objetos, em JSON, dos erros encontrados no arquivo, no mesmo padrão retornado pelas APIs | **[Objeto error_data](#objeto-error_data)**                                                |
| `created_at` *                 | string   | Timestamp do horário de criação do arquivo na base de dados, no formato ISO Zulu | 20                                         |

### Enumeradores temporary_cnab_file_status

| Enumerador                   | Descrição                                                                    |
|------------------------------|------------------------------------------------------------------------------|
| uploaded                     | upload feito com sucesso, mas arquivo ainda não começou a ser processado     |
| processing                   | arquivo sendo lido                                                           |
| read                         | arquivo lido e aceito                                                        |
| rejected                     | arquivo lido e rejeitado por erro sintático                                  |

### Objeto error_data

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------|
| `code` *         | string  | Código do erro         | 9                                                |
| `title` *        | string  | Título do erro                                                                   | 100                                               |
| `description` *  | string  | Descrição do erro, em inglês | 100 |
| `translation` *  | integer | Tradução da descrição do erro                                          | 100                                               |
| `extra_fields`                 | object   | Informações adicionais sobre o erro | -                                         |

:::danger Importante
Os campos retornados no objeto `extra_fields` servem para fornecer informações adicionais sobre o erro e podem variar. Portanto, não devem ser mapeados de maneira restrita.
:::

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (ptbr)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 404                      | BKS000013            | Not Found | Requester profile not found         |               Carteira não encontrada                                                                 |
| 404                      | BKS000054            | Not Found | Remittance not found with key: `{temporary_cnab_file_key}`        |               Remessa não encontrada com a chave: `{temporary_cnab_file_key}`                                                                 |

---

# Arquivos remessa (CNAB) - Introdução

URL: /documentation/boletos/cnab/introducao

:::info
O arquivo transmitido nesta chamada deve seguir o padrão de Layout de Arquivo de Cobrança com 400 posições da QI Tech.
Segue link para download do manual: [Layout de Cobrança - QI Tech versão 2.1.](https://storage.googleapis.com/live-doc-api/public_samples/Layout%20de%20Cobran%C3%A7a%20-%20QI%20Tech%20v2.1.pdf)
:::

Os arquivos remessa (CNAB) oferecem a possibilidade de enviar várias instruções de registros de boleto, juntamente com outros tipos de instrução (extensão, abatimento, baixa etc.), para diferentes boletos, em um único arquivo. Ao enviar instruções como as mencionadas (extensão, abatimento etc.), para boletos já existentes, o boleto é identificado pelo código da carteira (`requester_profile_code`) e pelo nosso número (`our_number`).

Ao fazer o upload de um arquivo CNAB, caso a requisição tenha sucesso (código de resposta `202`), será criado um arquivo CNAB temporário (`TemporaryCNABFile`). É possível consultar o status de processamento do arquivo --- bem como possíveis erros, tanto no próprio arquivo quanto em suas ocorrências ---, utilizando os endpoints de [**consulta de arquivo CNAB temporário**](/documentation/boletos/cnab/consulta_por_chave) e [**suas ocorrências**](/documentation/boletos/cnab/listar_ocorrencias_temporarias).

O arquivo será rejeitado caso seja encontrado qualquer erro sintático. No entanto, ele é lido integralmente, ou até que sejam encontrados um limite de 100 erros, para que todos os erros possam ser retornados e corrigidos de maneira mais prática e eficiente.

Enquanto o arquivo é lido, são criadas ocorrências temporárias , que só serão processadas caso ele seja aceito. Ou seja, se o arquivo for rejeitado (status `rejected`), todas as suas ocorrências também serão . Ademais, se o arquivo for rejeitado, não são mais criadas ocorrências temporárias para o mesmo. Portanto, é comum que as entradas de arquivos rejeitados possuam menos ocorrências do que a quantidade de ocorrências enviada no arquivo.

Por outro lado, no momento em que o arquivo é totalmente lido e aceito (status `read`), inicia-se a criação das ocorrências definitivas, que serão as instruções que valerão de fato. Se uma ocorrência temporária apresenta o status `rejected` (rejeitada), significa que foi encontrado algum erro semântico na mesma --- ou seja, algum erro no seu conteúdo. Nesse caso, haverá um objeto `error_data` junto a mesma, que fornece detalhes acerca do motivo de rejeição. Em contrapartida, se apresentar o status `processed`, significa que a ocorrência definitiva já foi criada e enviada para a CIP/Nuclea. Maiores detalhes a respeito de cada uma dessas entidades são fornecidos nas páginas subsequentes, de consulta de arquivos e ocorrências temporárias.

:::tip Rateio de Crédito via CNAB
Para informar [**rateio de crédito**](/documentation/boletos/instrucoes/rateio_de_credito) (split de pagamento) em arquivos CNAB:

- **QI SCD (CNAB400 - layout QI Tech v2.1):** registro de detalhe com `identificacao_registro = 3`. Detalhes completos no **[Layout de Cobrança - QI Tech v2.1](https://storage.googleapis.com/live-doc-api/public_samples/Layout%20de%20Cobran%C3%A7a%20-%20QI%20Tech%20v2.1.pdf)**.
- **Bradesco (CNAB400 e CNAB240):** registro de detalhe tipo `3`.
- **Itaú (CNAB400 e CNAB240):** registro de detalhe tipo `4`.
- **Santander:** não suporta rateio de crédito via CNAB. Use o endpoint REST [**Atualização de Rateio de Crédito**](/documentation/boletos/instrucoes/rateio_de_credito) ou inclua `split_payment_data` na emissão via API.

**Como mapear N rateados:** Cada registro de rateio comporta até **3 contas adicionais** (número da conta + dígito + percentual). Para mais de 3 rateados, adicione **múltiplos registros de rateio em sequência** após o registro principal do boleto — eles são acumulados na mesma ocorrência. Exemplo: 7 contas = 3 registros (3 + 3 + 1).

**Restrições (todos os bancos):**
- Apenas o cálculo por **percentual** é suportado (`código de cálculo = 2`).
- A soma dos percentuais (beneficiário + rateios) deve ser exatamente **100**.
- Limite total de rateados respeita o mesmo da API REST (até 10 contas adicionais).
- O campo `beneficiary_max_amount` (rateio com valor máximo do beneficiário e excedente para a primeira regra) é **exclusivo da API REST**. Não é suportado via CNAB. Para esse cenário, use o endpoint REST de [**emissão**](/documentation/boletos/emissao/emissao_boleto_unico_padrao) ou de [**atualização de rateio de crédito**](/documentation/boletos/instrucoes/rateio_de_credito).
:::

---

# Listar arquivos remessa temporários

URL: /documentation/boletos/cnab/listar_arquivos_temporarios

A listagem de arquivos CNAB temporários retornará todos os arquivos CNAB temporários da carteira que se enquadrarem nos query parameters enviados na request.

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /temporary_cnab_file
MÉTODO GET

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |

### Query parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres              |
|-------------------------|--------|--------------------------------------------------------------|-------------------------|
| `temporary_cnab_file_status` | string | Status do arquivo CNAB temporário | **[Enumeradores temporary_cnab_file_status](#enumeradores-temporary_cnab_file_status)** |
| `page`                  | integer| Número da página                                             | -                       |
| `page_size`             | integer| Tamanho da página                                            | -                       |

### Enumeradores temporary_cnab_file_status

| Enumerador                   | Descrição                                                                    |
|------------------------------|------------------------------------------------------------------------------|
| uploaded                     | upload feito com sucesso, mas arquivo ainda não começou a ser processado     |
| processing                   | arquivo sendo lido                                                           |
| read                         | arquivo lido e aceito                                                        |
| rejected                     | arquivo lido e rejeitado por erro sintático                                  |

## Response

STATUS 200

Response Body

```json
{
  "data": [
    {
      "temporary_cnab_file_key": "a6db5f8b-1ed7-4d13-9cbf-f3c4275e3ca3",
      "temporary_cnab_file_name": "240903573.REM",
      "temporary_cnab_file_status": "processing",
      "occurrence_quantity": null,
      "created_at": "2024-09-07T15:44:01Z"
    },
    {
      "temporary_cnab_file_key": "2351c4ae-9a01-4675-86e4-099a30dafa42",
      "temporary_cnab_file_name": "240904603.REM",
      "temporary_cnab_file_status": "rejected",
      "occurrence_quantity": 0,
      "created_at": "2024-09-06T12:35:50Z"
    },
    {
      "temporary_cnab_file_key": "fa4f094d-8475-4828-9105-99756914e14f",
      "temporary_cnab_file_name": "240827463_t.REM",
      "temporary_cnab_file_status": "read",
      "occurrence_quantity": 10424,
      "created_at": "2024-08-28T15:09:30Z"
    },
    {
      "temporary_cnab_file_key": "e99cea6d-0d1c-4ec3-a2c6-bc603aede7c6",
      "temporary_cnab_file_name": "240827443_t.REM",
      "temporary_cnab_file_status": "read",
      "occurrence_quantity": 542,
      "created_at": "2024-08-27T20:07:11Z"
    },
    {
      "temporary_cnab_file_key": "2351c4ae-9a01-4675-86e4-099a30dafa42",
      "temporary_cnab_file_name": "240812604.REM",
      "temporary_cnab_file_status": "rejected",
      "occurrence_quantity": 0,
      "created_at": "2024-08-12T12:52:13Z"
    }
  ],
  "pagination": {
    "current_page": 1,
    "rows_per_page": 100
  }
}
```

### Response Body Params

| Campo            | Tipo         | Descrição                             | Caracteres                                  |
|------------------|--------------|---------------------------------------|---------------------------------------------|
| `data` *         | object array | Arquivos CNAB temporários             | **[Objeto temporary_cnab_file](#objeto-temporary_cnab_file)**   |
| `pagination` *   | object       | Informações de paginação              | **[Objeto pagination](#objeto-pagination)** |

### Objeto temporary_cnab_file

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------|
| `temporary_cnab_file_key` *| uuidv4  | Chave única de identificação do arquivo CNAB temporário no formato uuid v4         | 36                                                |
| `temporary_cnab_file_name` *| uuidv4  | Nome do arquivo                                                                   | 100                                               |
| `temporary_cnab_file_status` *| string | Status do arquivo CNAB temporário | **[Enumeradores temporary_cnab_file_status](#enumeradores-temporary_cnab_file_status)** |
| `occurrence_quantity` *        | integer  | Quantidade de ocorrências no arquivo                                          | -                                                 |
| `created_at` *                 | string   | Timestamp do horário de criação do arquivo na base de dados, no formato ISO Zulu | 20                                         |

### Objeto pagination

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------------------|
| `current_page` *           | integer | Página atual                                                 | -      |
| `rows_per_page` *          | integer | Itens por página                                             | -      |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 403                      | BKS000005            | Forbidden                         | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 400                      | BKS000012            | Bad Request | Invalid integer value for page or size query string parameters. | Valor inválido para parâmetros de página ou tamanho de página. |
| 404                      | BKS000013            | Not Found | Requester profile not found         |               Carteira não encontrada                                                                 |

---

# Listar ocorrências temporárias

URL: /documentation/boletos/cnab/listar_ocorrencias_temporarias

A listagem de ocorrências temporárias retornará todas as ocorrências temporárias de um dado arquivo CNAB.

:::info
Quando no momento em que um arquivo CNAB é rejeitado por erro sintático, não são mais criadas ocorrências temporárias referentes ao mesmo, visto que todas seriam rejeitadas porque o arquivo foi rejeitado. Portanto, quando o arquivo é rejeitado, é possível que o número de ocorrências temporárias relacionadas ao arquivo seja menor que o número de ocorrências enviadas no mesmo.
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /temporary_cnab_file / TEMPORARY_CNAB_FILE_KEY /occurrences
MÉTODO GET

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |

### Query parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres              |
|-------------------------|--------|--------------------------------------------------------------|-------------------------|
| `occurrence_status`     | string | Status da ocorrência temporária                              | **[Enumeradores occurrence_status](#enumeradores-temporary_cnab_file_status)** |
| `occurrence_type`       | string | Tipo da ocorrência temporária                                | **[Enumeradores occurrence_type](#enumeradores-temporary_cnab_file_type)** |
| `page`                  | integer| Número da página                                             | -                       |
| `page_size`             | integer| Tamanho da página                                            | -                       |

### Enumeradores occurrence_status

| Enumerador                   | Descrição                                                                    |
|------------------------------|------------------------------------------------------------------------------|
| pending                      | ocorrência ainda não foi processada                                          |
| processed                    | ocorrência processada com sucesso                                            |
| rejected                     | ocorrência processada e rejeitada por erro semântico                         |

### Enumeradores occurrence_type

| Enumerador                           | Descrição                                                                    |
|--------------------------------------|------------------------------------------------------------------------------|
| registration                         | registro de boleto                                                           |
| write_off                            | baixa de boleto                                                              |
| rebate                               | abatimento de valor do boleto                                                |
| cancel_rebate                        | cancelamento de abatimento                                                   |
| extension                            | prorrogação da data de pagamento                                             |
| protest_request                      | pedido de protesto                                                           |
| bankruptcy_protest_request           | pedido de protesto falimentar                                                |
| protest_cancel_and_write_off_request | cancelamento de pedido de protesto e baixa do boleto                         |
| protest_cancel_request               | cancelamento de pedido de protesto                                           |
| bank_slip_edit                       | edição de demais dados do boleto                                             |

## Response

STATUS 200

Response Body

```json
{
    "data": [
        {
            "occurrence_key": "191f2220-1465-47d7-8c81-67d8f59f5af2",
            "occurrence_status": "rejected",
            "occurrence_type": "registration",
            "occurrence_our_number": 12455,
            "error_data": {
                "code": "BKS000069",
                "title": "Bad Request",
                "description": "Invalid beneficiary account: beneficiary account is not the one that the requester profiles belongs to.",
                "translation": "Conta do beneficiario invalida: a conta do beneficiario nao e aquela a qual a carteira de boletos pertence.",
                "extra_fields": {
                    "account_digit": "4",
                    "account_branch": "0001",
                    "account_number": "1927400"
                }
            }
        },
        {
            "occurrence_key": "adc0ce54-9e69-45ec-9220-fbfe0e3ba103",
            "occurrence_status": "rejected",
            "occurrence_type": "registration",
            "occurrence_our_number": 12453,
            "error_data": {
                "code": "BKS000069",
                "title": "Bad Request",
                "description": "Invalid beneficiary account: beneficiary account is not the one that the requester profiles belongs to.",
                "translation": "Conta do beneficiario invalida: a conta do beneficiario nao e aquela a qual a carteira de boletos pertence.",
                "extra_fields": {
                    "account_digit": "4",
                    "account_branch": "0001",
                    "account_number": "1927400"
                }
            }
        },
        {
            "occurrence_key": "0521c4db-b243-4599-af2f-c288a299948a",
            "occurrence_status": "rejected",
            "occurrence_type": "registration",
            "occurrence_our_number": 12452,
            "error_data": {
                "code": "BKS000069",
                "title": "Bad Request",
                "description": "Invalid beneficiary account: beneficiary account is not the one that the requester profiles belongs to.",
                "translation": "Conta do beneficiario invalida: a conta do beneficiario nao e aquela a qual a carteira de boletos pertence.",
                "extra_fields": {
                    "account_digit": "4",
                    "account_branch": "0001",
                    "account_number": "1927400"
                }
            }
        },
        {
            "occurrence_key": "f0875275-dea0-4e93-a665-a24e921d0a95",
            "occurrence_status": "rejected",
            "occurrence_type": "registration",
            "occurrence_our_number": 12451,
            "error_data": {
                "code": "BKS000069",
                "title": "Bad Request",
                "description": "Invalid beneficiary account: beneficiary account is not the one that the requester profiles belongs to.",
                "translation": "Conta do beneficiario invalida: a conta do beneficiario nao e aquela a qual a carteira de boletos pertence.",
                "extra_fields": {
                    "account_digit": "4",
                    "account_branch": "0001",
                    "account_number": "1927400"
                }
            }
        },
        {
            "occurrence_key": "98ac54d9-0b3c-45a6-86e1-4b79d25f6364",
            "occurrence_status": "rejected",
            "occurrence_type": "registration",
            "occurrence_our_number": 12450,
            "error_data": {
                "code": "BKS000069",
                "title": "Bad Request",
                "description": "Invalid beneficiary account: beneficiary account is not the one that the requester profiles belongs to.",
                "translation": "Conta do beneficiario invalida: a conta do beneficiario nao e aquela a qual a carteira de boletos pertence.",
                "extra_fields": {
                    "account_digit": "4",
                    "account_branch": "0001",
                    "account_number": "1927400"
                }
            }
        },
        {
            "occurrence_key": "dd2c8d76-d663-4dbb-9c8b-84a627156147",
            "occurrence_status": "rejected",
            "occurrence_type": "registration",
            "occurrence_our_number": 12449,
            "error_data": {
                "code": "BKS000069",
                "title": "Bad Request",
                "description": "Invalid beneficiary account: beneficiary account is not the one that the requester profiles belongs to.",
                "translation": "Conta do beneficiario invalida: a conta do beneficiario nao e aquela a qual a carteira de boletos pertence.",
                "extra_fields": {
                    "account_digit": "4",
                    "account_branch": "0001",
                    "account_number": "1927400"
                }
            }
        }
    ],
    "pagination": {
        "current_page": 1,
        "rows_per_page": 100
    }
}
```

### Response Body Params

| Campo            | Tipo         | Descrição                             | Caracteres                                  |
|------------------|--------------|---------------------------------------|---------------------------------------------|
| `data` *         | object array | Ocorrências temporárias               | **[Objeto temporary_occurrence](#objeto-temporary_occurrence)**   |
| `pagination` *   | object       | Informações de paginação              | **[Objeto pagination](#objeto-pagination)** |

### Objeto temporary_cnab_file

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------|
| `occurrence_key` *| uuidv4  | Chave única de identificação da ocorrência temporária no formato uuid v4         | 36                                                |
| `occurrence_status` * | string  | Status da ocorrência temporária                                                                   | **[Enumeradores temporary_occurrence_status](#enumeradores-temporary_occurrence_status)** |
| `occurrence_type` *   | string  | Tipo da ocorrência temporária | **[Enumeradores occurrence_type](#enumeradores-occurrence_type)** |
| `occurrence_our_number` *       | integer  | Quantidade de ocorrências no arquivo                                          | -                                                 |
| `error_data`                   | object | Objetos, em JSON, dos erros encontrados no arquivo, no mesmo padrão retornado pelas APIs | **[Objeto error_data](#objeto-error_data)**                                                |

### Objeto pagination

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------------------|
| `current_page` *           | integer | Página atual                                                 | -      |
| `rows_per_page` *          | integer | Itens por página                                             | -      |

### Objeto error_data

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------|
| `code` *         | string  | Código do erro         | 9                                                |
| `title` *        | string  | Título do erro                                                                   | 100                                               |
| `description` *  | string  | Descrição do erro, em inglês | 100 |
| `translation` *  | integer | Tradução da descrição do erro                                          | 100                                               |
| `extra_fields`                 | object   | Informações adicionais sobre o erro | -                                         |

:::danger Importante
Os campos retornados no objeto `extra_fields` servem para fornecer informações adicionais sobre o erro e podem variar. Portanto, não devem ser mapeados de maneira restrita.
:::

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 403                      | BKS000005            | Forbidden                         | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 400                      | BKS000012            | Bad Request | Invalid integer value for page or size query string parameters. | Valor inválido para parâmetros de página ou tamanho de página. |
| 404                      | BKS000013            | Not Found | Requester profile not found         |               Carteira não encontrada                                                                 |
| 404                      | BKS000054            | Not Found | Remittance not found with key: `{temporary_cnab_file_key}`        |               Remessa não encontrada com a chave: `{temporary_cnab_file_key}`                                                                 |

---

# Upload de arquivo remessa (CNAB)

URL: /documentation/boletos/cnab/upload_de_arquivo_remessa

:::caution Atenção!
A chamada deve ser autenticada seguindo o padrão descrito na seção de [**Upload de documentos**](/documentation/upload_de_documentos).
:::

Os arquivos remessa (CNAB) oferecem a possibilidade de enviar várias instruções de registros de boleto, juntamente com outros tipos de instrução (extensão, abatimento, baixa etc.), para diferentes boletos, em um único arquivo. Ao enviar instruções como as mencionadas (extensão, abatimento etc.), para boletos já existentes, o boleto é identificado pelo código da carteira (`requester_profile_code`) e pelo nosso número (`our_number`).

:::info
Ao fazer o upload de um arquivo CNAB, caso a requisição tenha sucesso (código de resposta `202`), será criado um arquivo CNAB temporário (`TemporaryCNABFile`). É possível consultar o status de processamento do arquivo --- bem como possíveis erros, tanto no próprio arquivo quanto em suas ocorrências ---, utilizando os endpoints de [**consulta de arquivo CNAB temporário**](/documentation/boletos/cnab/consulta_por_chave) e [**suas ocorrências**](/documentation/boletos/cnab/listar_ocorrencias_temporarias).
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /cnab_file
MÉTODO POST

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |

## Request Body Params

Deverão ser enviados os seguintes dados, como form-data , no body da request:

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `file` *                | file   | Arquivo CNAB no padrão estipulado pela QI Tech               | -          |

## Response

STATUS 202

Response Body

```json
{
  "temporary_cnab_file_key": "f14e9bac-94ed-4eb1-87b4-7fd7b7a2d280",
  "temporary_cnab_file_status": "accepted"
}
```

### Response Body Params

| Campo                          | Tipo    | Descrição                                                       | Caracteres                 |
|--------------------------------|---------|-----------------------------------------------------------------|----------------------------|
| `temporary_cnab_file_key` *    | uuidv4  | Chave única de identificação do arquivo CNAB no formato uuid v4 | 36                         |
| `temporary_cnab_file_status` * | string  | Status do arquivo CNAB | **[Enumeradores temporary_cnab_file_status](#enumeradores-cnab_file_status)** |

### Enumeradores temporary_cnab_file_status

| Enumerador | Descrição                                                                 |
|------------|---------------------------------------------------------------------------|
| uploaded   | Upload feito com sucesso, mas arquivo ainda não começou a ser processado  |
| processing | Arquivo sendo lido                                                        |
| read       | Arquivo lido e aceito                                                     |
| rejected   | Arquivo lido e rejeitado (todas as ocorrências do arquivo são rejeitadas) |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (ptbr)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 404                      | BKS000013            | Not Found | Requester profile not found         |               Carteira não encontrada                                                                 |
| 400                      | BKS000022            | Bad Request                                        | Requester profile is not opened.                                                              | Carteira não está aberta.                          |
| 409                      | BKS000053            | Conflict                                           | CNAB file already received: '`<file_name>`'                                                   | Arquivo CNAB já recebido: '`<file_name>`'                          |

---

# Consulta de boleto por chave

URL: /documentation/boletos/consulta/consulta_por_chave

A consulta de um boleto, utilizando sua chave, retorna informações detalhadas sobre o mesmo, como, por exemplo, todas as instruções referentes àquele boleto.

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /bank_slip/ BANK_SLIP_KEY
MÉTODO GET

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |
| `bank_slip_key`         | uuidv4 | Chave única de identificação do boleto, no formato uuid v4   | 36         |

## Response

STATUS 200

Response Body

```json
{
  "bank_slip_key": "4c2fa514-a44d-40f2-8d57-c0caf1b9165a",
  "request_control_key": "0dcb3182-4d7e-4526-8f92-c15cdbc51bad",
  "our_number": 26652176735,
  "document_number": "DOC4561237",
  "amount": "5000.00",
  "rebate_amount": "0.00",
  "expiration": "2024-07-12",
  "barcode": "32994978900005000000001546128483498231955340",
  "digitable_line": "32990001524612848349582319553408497890000500000",
  "bank_teller_instructions": "Confirm payment",
  "protest_data": {
    "days_to_protest": 7
  },
  "bankruptcy_protest_data": {
    "days_to_bankruptcy_protest": 14
  },
  "max_payment_days": 45,
  "fine_data": {
    "fine_type": "absolute",
    "fine_amount": 100.0,
    "days_to_fine": 10
  },
  "interest_data": {
    "interest_type": "workdays_daily_amount",
    "interest_amount": 10.0,
    "days_to_interest": 2
  },
  "discounts_data": [
    {
      "discount_type": "absolute",
      "discount_amount": 50.0,
      "discount_number": 1,
      "discount_limit_date": "2024-07-12"
    }
  ],
  "payer_data": {
    "name": "Global Tech",
    "address": {
      "city": "Innovation City",
      "state": "SP",
      "number": "202",
      "street": "101 High St.",
      "complement": "Building A",
      "postal_code": "57099999",
      "neighborhood": "Tech Park"
    },
    "person_type": "legal",
    "document_number": "12345678000195"
  },
  "guarantor_data": {
    "name": "Jane Doe",
    "address": {
      "city": "Peaceful Town",
      "state": "RJ",
      "number": "303",
      "street": "202 Elm St.",
      "complement": "House 1",
      "postal_code": "57099999",
      "neighborhood": "Quiet Neighborhood"
    },
    "person_type": "natural",
    "document_number": "23456789012"
  },
  "qr_code_data": {
    "qr_code_key": "58bd3558-f214-4e83-9c88-1ac4c93db214",
    "pix_key": "f9b05a58-9dcf-49cb-bc7f-99c5b3f1fdcb",
    "receiver_conciliation_id": "a3861b53f5414b0ba6c9f800d7374474",
    "url": "00020126890014br.gov.bcb.pix2567qrcode-h.dev.qitech.app/bacen/cobv/a3861b53f5414b0ba6c9f800d73744745204000053039865802BR5922BeatrizCoutodeCarvalho6012SAOJOSEDORIO61081501410062070503***6304ED95",
    "image": "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"
  },
  "payment_notice_data": {
    "payment_method": "account_debit",
    "payment_origin": "internet",
    "payment_notice_date": "2024-07-01"
  },
  "payment_data": {
    "paid_amount": 850.0,
    "paid_rebate_amount": 200.0,
    "paid_discount_amount": 0.0,
    "paid_fine_amount": 0.0,
    "paid_interest_amount": 50.0,
    "payment_method": "account_debit",
    "payment_origin": "internet",
    "payment_credit_date": "2024-07-02",
    "payment_date": "2024-07-01",
    "payment_bank": {
      "code": "341",
      "ispb": 60701190,
      "name": "ITAU UNIBANCO S.A."
    },
    "payment_branch": "0216"
  },
  "bank_slip_status": "registered",
  "occurrences": [
    {
      "request_control_key": "0dcb3182-4d7e-4526-8f92-c15cdbc51bad",
      "occurrence_key": "ec67408c-a149-418a-b89b-b9c9d3b6c403",
      "occurrence_type": "registration",
      "occurrence_status": "confirmed",
      "created_at": "2024-06-23T09:15:32Z"
    },
    {
      "request_control_key": "9618c632-7f4d-490b-8817-2bb72ec1e84a",
      "occurrence_key": "70d3e632-644d-499f-baac-f65f21fb8574",
      "occurrence_type": "rebate",
      "occurrence_status": "confirmed",
      "created_at": "2024-06-26T12:36:04Z"
    },
    {
      "request_control_key": "c2b2ba59-9c37-488d-823d-2c3bfc1e9108",
      "occurrence_key": "dbdd513c-e918-4d17-b194-b5ae3d979988",
      "occurrence_type": "cancel_rebate",
      "occurrence_status": "confirmed",
      "created_at": "2024-06-26T12:53:47Z"
    }
  ]
}
```

### Response Body Params

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------|
| `bank_slip_key      ` *    | uuidv4  | Chave única de identificação do boleto no formato uuid v4                          | 36                                                |
| `request_control_key` *    | uuidv4  | Chave única de identificação da request utilizada pelo cliente no formato uuid v4  | 36                                                |
| `our_number` *             | integer | Número único de identificação do boleto junto à carteira                           | 11                                                |
| `bank_slip_status` *       | string | Status do boleto                                                                    | **[Enumeradores bank_slip_status](#enumeradores-bank_slip_status)** |
| `protest_status` *         | string | Status de protesto, em cartório, do boleto                                          | **[Enumeradores protest_status](#enumeradores-protest_status)** |
| `document_number` *        | string  | Número de identificação do boleto                                                  | 10                                                |
| `amount` *                 | float   | Valor base do boleto                                                               | -                                                 |
| `expiration` *             | string  | Data de vencimento                                                                 | 10                                                |
| `barcode` *               | string  | Código de barras do boleto                                                         | 44                                                |
| `digitable_line` *         | string  | Linha digitável do boleto                                                          | 47                                                |
| `bank_teller_instructions` | string  | Instruções adicionais de registro, que constarão no PDF do boleto                  | 320                                               |
| `rebate_amount`            | float   | Valor de abatimento do boleto, que será aplicado em cima do valor base             | -                                                 |
| `max_payment_days` *      | integer | Máximo de dias corridos que o boleto ficará disponível para pagamento, após o vencimento (pode ser no máximo 365) | -          |
| `write_off_data`       | object  | Configuração de baixa      | **[Objeto write_off_data](#objeto-write_off_settings)** |
| `protest_data`         | object  | Configuração de protesto       | **[Objeto protest_data](#objeto-protest_settings)** |
| `bankruptcy_protest_data` | object  | Configuração de protesto falimentar | **[Objeto bankruptcy_protest_data](#objeto-bankruptcy_protest_settings)** |
| `fine_data`            | object  | Configuração de multa                 | **[Objeto fine_data](#objeto-fine_settings)** |
| `interest_data`        | object  | Configuração de juros        | **[Objeto interest_data](#objeto-interest_settings)** |
| `discounts_data`           | object array | Descontos           | **[Objeto discount](#objeto-discounts_data)** |
| `payer_data` *             | object  | Dados do pagador                                                                   | **[Objeto payer_data](#objetos-payer_data-e-guarantor_data)** |
| `guarantor_data` *         | object  | Dados do sacador avalista                                                          | **[Objeto guarantor_data](#objetos-payer_data-e-guarantor_data)** |
| `qr_code_data`             | object  | Dados do QR Code                                                         | **[Objeto qr_code_data](#objeto-qr_code_data)** |
| `payment_notice_data`             | object ou array  | Dados do aviso de pagamento                                                         | **[Objeto ou array payment_notice_data](#objeto-ou-array-payment_notice_data)** |
| `payment_data`             | object ou array  | Dados do pagamento                                                         | **[Objeto ou array payment_data](#objeto-ou-array-payment_data)** |
| `guarantor_data`           | object  | Dados do sacador avalista                                                          | **[Objeto guarantor_data](#objetos-payer_data-e-guarantor_data)** |
| `occurrences`              | object array | Instruções referentes ao boleto                                               | **[Objeto bank_slip_occurrence](#objeto-bank_slip_occurrence)** |

:::info Informação
O campo `amount` é o valor base do boleto, ou seja, não considera o valor da multa (fine), juros (interest), abatimento (rebate) e descontos (discounts).
:::

### Enumeradores bank_slip_status

| Enumerador                   | Descrição                                                                      |
|------------------------------|--------------------------------------------------------------------------------|
| accepted                     | Aceito e enviado para a Nuclea/CIP para análise                                |
| rejected                     | Registro rejeitado pela Nuclea/CIP                                             |
| payment_notice               | Aviso de pagamento (boleto pago mas pagamento ainda não liquidado)             |
| notary_office_payment_notice | Aviso de pagamento em cartório (boleto pago mas pagamento ainda não liquidado) |
| registered                   | Registro confirmado pela Nuclea/CIP                                            |
| payment_blocked              | Bloqueado para pagamento (em fluxo de protesto)                                |
| paid                         | Pago                                                                           |
| written_off                  | Baixado                                                                        |

### Enumeradores protest_status

| Enumerador                   | Descrição                                                                      |
|------------------------------|--------------------------------------------------------------------------------|
| not_protested                | Boleto sem fluxo de protesto iniciado                                          |
| protest_requested            | Protesto em cartório solicitado                                                |
| notary_office_entry          | Boleto no cartório, em período de tríduo                                       |
| protest_cancel_requested     | Desistência do protesto solicitada                                             |
| notary_office_exit           | Boleto saiu do cartório                                                        |
| protested                    | Boleto protestado                                                              |
| paid_at_notary_office        | Pago no cartório                                                               |
| judicially_suspended         | Protesto suspenso judicialmente                                                |
| protest_remove_requested     | Remoção do protesto solicitada                                                 |

### Objeto write_off_data

| Campo                     | Tipo    | Descrição                                                                   | Caracteres |
|---------------------------|---------|-----------------------------------------------------------------------------|------------|
| `days_to_write_off` *     | integer | Dias, após o vencimento, para que o boleto seja baixado automaticamente     | -          |

### Objeto protest_data

| Campo                     | Tipo    | Descrição                                                                   | Caracteres |
|---------------------------|---------|-----------------------------------------------------------------------------|------------|
| `days_to_protest` *       | integer | Dias, após o vencimento, para que o boleto seja protestado automaticamente  | -          |

### Objeto bankruptcy_protest_data

| Campo                          | Tipo    | Descrição                                                                   | Caracteres  |
|--------------------------------|---------|-----------------------------------------------------------------------------|------------|
| `days_to_bankruptcy_protest` * | integer | Dias, após o vencimento, para que o boleto seja protestado automaticamente  | -           |

### Objeto fine_data

Opção 1: multa em valor absoluto (`fine_type=absolute`)

| Campo                     | Tipo    | Descrição                                               | Caracteres                |
|---------------------------|---------|---------------------------------------------------------|-------------------------------------------------------------------------|
| `fine_type` *             | string  | Tipo da multa                                                       | **[Enumeradores fine_type](#enumeradores-fine_type)**                                              |
| `fine_amount` *           | float   | Valor absoluto da multa                                             | -                                                                        |
| `days_to_fine` *          | integer | Dias, após o vencimento, para que a multa seja cobrada              | -                                                                        |

Opção 2: multa em valor percentual (`fine_type=percentage`)

| Campo                     | Tipo    | Descrição                                                 | Caracteres                             |
|---------------------------|---------|-----------------------------------------------------------|---------------------------------------|
| `fine_type` *             | string  | Tipo da multa                                             | **[Enumeradores fine_type](#enumeradores-fine_type)** |
| `fine_percentage` *       | integer | Valor percentual da multa, de 1 a 100                     | -                                      |
| `days_to_fine` *          | integer | Dias, após o vencimento, para que a multa seja cobrada    | -                                      |

### Enumeradores fine_type

| Enumerador         | Descrição             |
|--------------------|-----------------------|
| absolute           | valor absoluto        |
| percentage         | valor percentual      |

### Objeto interest_data

Opção 1: juros utilizando valores absolutos (`interest_type=calendar_days_daily_amount` ou `interest_type=workdays_daily_amount`)

| Campo                     | Tipo    | Descrição                                                                     | Caracteres                                                                                      |
|---------------------------|---------|-------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|
| `interest_type` *         | string  | Tipo de juros       | **[Enumeradores interest_type](#enumeradores-interest_type)** |
| `interest_amount` *       | float   | Valor a ser cobrado por unidade de tempo determinada (dias úteis ou corridos) | -                                                                                               |
| `days_to_interest` *      | integer | Dias, após o vencimento, para que comece a cobrar os juros                    | -                                                                                               |

Opção 2: juros utilizando valores percentuais (`interest_type=calendar_days_monthly_percentage`)

| Campo                    | Tipo    | Descrição                                                                             | Caracteres                                                                                          |
|--------------------------|---------|---------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|
| `interest_type` *        | string  | Tipo de juros       | **[Enumeradores interest_type](#enumeradores-interest_type)** |
| `interest_percentage` *  | integer | Porcentagem a ser cobrada por unidade de tempo determinada (dias úteis ou corridos)                                                                      | -                                                                           |
| `days_to_interest` *     | integer | Dias, após o vencimento, para que comece a cobrar os juros                             | -                                                                                                   |

### Enumeradores interest_type

| Enumerador                       | Descrição                                                            |
|----------------------------------|----------------------------------------------------------------------|
| calendar_days_daily_amount       | Valor diário sobre dias corridos                                     |
| workdays_daily_amount            | Valor diário sobre dias úteis                                        |
| calendar_days_monthly_percentage | Porcentagem de juros cobrados mensalmente, com base em dias corridos |

### Objeto discount

Opção 1: descontos utilizando valores absolutos (`discount_type in ["absolute", "anticipation_calendar_days_daily_amount", "anticipation_workdays_daily_amount"]`)

| Campo                     | Tipo    | Descrição                                           | Caracteres                                                |
|---------------------------|---------|-----------------------------------------------------|-----------------------------------------------------------|
| `discount_amount` *       | float   | Valor absoluto de desconto por unidade de tempo                                            | -                                                          |
| `discount_number` *       | integer | Número do desconto                                     | -                                                         |
| `discount_type` *         | string  | Configuração do desconto em valores absolutos                                    | **[Enumerador discount_type](#enumeradores-discount_type)** |                                                       |
| `discount_limit_date` *   | string  | Data limite para aplicação do desconto   | 10                                                        |

Opção 2: descontos utilizando valores percentuais (`discount_type in ["percentage", "anticipation_calendar_days_daily_percentage", "anticipation_workdays_daily_percentage"]`)

| Campo                     | Tipo    | Descrição                                           | Caracteres                                                |
|---------------------------|---------|-----------------------------------------------------|-----------------------------------------------------------|
| `discount_percentage` *   | float   | Valor percentual de desconto por unidade de tempo                                            | -                                                          |
| `discount_number` *       | integer | Número do desconto                                     | -                                                         |
| `discount_type` *         | string  | Configuração do desconto em valores percentuais                                    | **[Enumerador discount_type](#enumeradores-discount_type)** |                                                       |
| `discount_limit_date` *   | string  | Data limite para aplicação do desconto   | 10                                                        |

:::caution Atenção!
O boleto pode ter até três descontos, sendo que os descontos devem ser todos do mesmo tipo , isto é, devem ter o mesmo `discount_type`. Os descontos devem ser numerados de 1 a 3, de maneira crescente e começando necessariamente em 1. Ou seja, caso sejam enviados dois descontos na requisição, devem necessariamente ser numerados com 1 e 2.
:::

### Enumeradores discount_type

| Enumerador                                  | Descrição                                                                |
|---------------------------------------------|--------------------------------------------------------------------------|
| absolute                                    | Valor fixo                                                               |
| anticipation_calendar_days_daily_amount     | Valor diário de desconto de antecipação, sobre dias corridos             |
| anticipation_workdays_daily_amount          | Valor diário de desconto de antecipação, sobre dias úteis                |
| percentage                                  | Porcentagem fixa                                                         |
| anticipation_calendar_days_daily_percentage | Porcentagem mensal de desconto de antecipação, com base em dias corridos |
| anticipation_workdays_daily_percentage      | Porcentagem anual de desconto de antecipação, com base em dias úteis     |

### Objetos payer_data e guarantor_data

| Campo                     | Tipo   | Descrição                                                  | Caracteres|
|---------------------------|--------|-------------------------------------|-----------------------------------------------------------|
| `name` *                  | string | Nome completo                       | 100                                                       |
| `document_number` *       | string | Número do documento (CPF/CNPJ)      | 11 ou 14                                                  |
| `person_type` *           | string | Tipo da pessoa (física ou jurídica) | **[Enumeradores person_type](#enumeradores-person_type)** |
| `contact`                 | object | Informações de contato              | **[Objeto contact](#objeto-contact)**                     |
| `address`                 | object | Endereço                            | **[Objeto address](#objeto-address)**                     |

### Enumeradores person_type

| Enumerador         | Descrição             |
|--------------------|-----------------------|
| natural            | pessoa física         |
| legal              | pessoa jurídica       |

### Objeto contact

| Campo                     | Tipo   | Descrição                         | Caracteres                         |
|---------------------------|--------|-----------------------------------|------------------------------------|
| `email`                   | string | E-mail de contato                 | 320                                |
| `phone`                   | object | Telefone de contato               | **[Objeto phone](#objeto-phone)**  |

### Objeto phone

| Campo                           | Tipo   | Descrição                                    | Caracteres |
|---------------------------------|--------|----------------------------------------------|------------|
| `international_dial_code` *     | string | Código DDI (Discagem Direta Internacional)   | 3          |
| `area_code` *                   | string | Código DDD (Discagem Direta à Distância)     | 2          |
| `number` *                      | string | Complemento                                  | 9          |

### Objeto address

| Campo                     | Tipo   | Descrição                                    | Caracteres |
|---------------------------|--------|----------------------------------------------|------------|
| `street` *                | string | Logradouro                                   | 500        |
| `number` *                | string | Número                                       | 6          |
| `complement`              | string | Complemento                                  | 500        |
| `neighborhood` *          | string | Bairro                                       | 100        |
| `postal_code` *           | string | CEP                                          | 8          |
| `city` *                  | string | Cidade                                       | 100        |
| `state` *                 | string | Estado (UF) | **[Enumerador state](#enumeradores-state)** |

### Enumeradores state

| Enumerador         | Descrição             |
|--------------------|-----------------------|
| AC                 | Acre                  |
| AL                 | Alagoas               |
| AM                 | Amazonas              |
| AP                 | Amapá                 |
| BA                 | Bahia                 |
| CE                 | Ceará                 |
| DF                 | Distrito federal      |
| ES                 | Espírito Santo        |
| GO                 | Goiás                 |
| MA                 | Maranhão              |
| MG                 | Minas Gerais          |
| MS                 | Mato Grosso do Sul    |
| MT                 | Mato Grosso           |
| PA                 | Pará                  |
| PB                 | Paraíba               |
| PE                 | Pernambuco            |
| PI                 | Piauí                 |
| PR                 | Paraná                |
| RJ                 | Rio de Janeiro        |
| RN                 | Rio Grande do Norte   |
| RO                 | Rondônia              |
| RR                 | Roraima               |
| RS                 | Rio Grande do Sul     |
| SC                 | Santa Catarina        |
| SE                 | Sergipe               |
| SP                 | São Paulo             |
| TO                 | Tocantins             |
| EX                 | Exceção               |

### Objeto qr_code_data
| Campo                      | Tipo   | Descrição                                             | Caracteres              |
|----------------------------|--------|-------------------------------------------------------|-------------------------|
| `qr_code_key`              | uuidv4 | Chave única de identificação do QR Code               | 36                      |
| `pix_key`                  | uuidv4 | Chave PIX vinculada ao QR Code                        | 36                      |
| `receiver_conciliation_id` | uuidv4 | Identificador de conciliação do QR Code               | 36                      |
| `url`                      | string | URL (Pix Copia e Cola) do QR Code                     | -                       |
| `image`                    | string | base64 da URL (Pix Copia e Cola) do QR Code           | -                       |

### Objeto ou array payment_notice_data

:::caution Atenção!
O campo `payment_notice_data` será retornado como um **objeto** para boletos sem configuração de pagamento parcial. Para boletos com configuração de pagamento parcial, será retornado como um **array de objetos**, já que pode haver múltiplos pagamentos.
Além disso, caso o boleto seja pago via **QR Code**, esse campo não será retornado, dado que a liquidação ocorre no dia do pagamento.
:::

| Campo                     | Tipo    | Descrição                                                                     | Caracteres                                                                                      |
|---------------------------|---------|-------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|
| `payment_method`      | string  | Método de pagamento  | **[Enumeradores payment_method](#enumeradores-payment_method)** |
| `payment_origin`      | string  | Origem de pagamento       | **[Enumeradores payment_origin](#enumeradores-payment_origin)** |
| `payment_notice_date`      | string | Data do aviso do pagamento | 10

### Objeto ou array payment_data

:::caution Atenção!
O campo `payment_data` será retornado como um **objeto** para boletos sem configuração de pagamento parcial. Para boletos com configuração de pagamento parcial, será retornado como um **array de objetos**, já que pode haver múltiplos pagamentos.
:::

| Campo                     | Tipo    | Descrição                                                                     | Caracteres                                                                                      |
|---------------------------|---------|-------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|
| `paid_amount`         | float  | Valor do pagamento       | - |
| `paid_rebate_amount`       | float   | Valor pago de abatimento | -                                                                                               |
| `paid_discount_amount`      | float | Valor pago de desconto                    | -                                                                                               |
| `paid_fine_amount`      | float | Valor pago de multa                    | -
| `paid_interest_amount`      | float | Valor pago de juros                    | -
| `payment_method`      | string  | Método de pagamento  | **[Enumeradores payment_method](#enumeradores-payment_method)** |
| `payment_origin`      | string  | Origem de pagamento       | **[Enumeradores payment_origin](#enumeradores-payment_origin)** |
| `payment_credit_date`      | string | Data do crédito do pagamento | 10
| `payment_bank`      | object | Banco em que o boleto foi pago. Retornado somente após o pagamento do boleto | **[Objeto payment_bank](#objeto-payment_bank)** |
| `payment_branch`      | string | Agência em que o boleto foi pago. Retornado somente após o pagamento do boleto | -

:::info Informação
Os campos `payment_bank` e `payment_branch` só são retornados quando o boleto já foi pago, ou seja, quando existe uma ocorrência de pagamento confirmada. Enquanto o boleto não for pago, esses campos não estarão presentes na resposta.
:::

### Objeto payment_bank

| Campo  | Tipo    | Descrição                                  | Caracteres |
|--------|---------|--------------------------------------------|------------|
| `code` | string  | Código de compensação do banco (3 dígitos) | 3          |
| `ispb` | integer | ISPB do banco                              | 8          |
| `name` | string  | Nome do banco                              | -          |

### Enumeradores payment_method

| Enumerador         | Descrição                               |
|--------------------|-----------------------------------------|
| cash       | Espécie                  |
| account_debit             | Débito em conta                |
| credit_card      | Cartão de crédito |
| check          | Cheque                  |

### Enumeradores payment_origin

| Enumerador         | Descrição                               |
|--------------------|-----------------------------------------|
| cash       | Espécie                  |
| account_debit             | Débito em conta                |
| credit_card      | Cartão de crédito |
| check          | Cheque                  |

### Enumeradores payment_origin

| Enumerador           | Descrição                                |
|----------------------|------------------------------------------|
| phisical_cashier     | Agências - Postos tradicionais           |
| taa                  | Terminal de Auto-atendimento             |
| internet             | Internet (home/office bank)              |
| corban               | Correspondente bancário                  |
| call_center          | Central de atendimento (call center)     |
| eletronic_file       | Arquivo eletrônico                       |
| dda                  | DDA                                      |
| digital_correspondent| Correspondente Digital                   |
| qr_code              | Pagamento via Pix QR Code                |

### Objeto bank_slip_occurrence

| Campo                   | Tipo   | Descrição                                                                         | Caracteres |
|-------------------------|--------|-----------------------------------------------------------------------------------|------------|
| `request_control_key` * | uuidv4 | Chave única de identificação da request utilizada pelo cliente no formato uuid v4 | 36         |
| `occurrence_key` *      | uuidv4 | Chave única de identificação do boleto no formato uuid v4                         | 36         |
| `occurrence_type` *     | string | Tipo da ocorrência                                                                    | **[Enumerador occurrence_type](#enumeradores-occurrence_type)** |
| `occurrence_status` *   | string | Status da ocorrência                                                                  | **[Enumerador occurrence_status](#enumeradores-occurrence_status)** |
| `created_at` *          | string | Data, no formato ISO (UTC - "YYYY-MM-DDTHH:MM:SSZ"), da criação da ocorrência     | 20         |

### Enumeradores occurrence_type

| Enumerador         | Descrição                               |
|--------------------|-----------------------------------------|
| registration       | Ocorrência de registro                  |
| write_off          | Ocorrência de pedido de baixa           |
| rebate             | Ocorrência de adição de abatimento      |
| cancel_rebate      | Ocorrência de cancelamento de abatimento|
| discount           | Ocorrência de alteração de descontos    |
| fine               | Ocorrência de alteração de multa        |
| interest           | Ocorrência de alteração de juros        |
| extension          | Ocorrência de extensão                  |
| bank_slip_edit     | Ocorrência de alteração de outros dados do boleto |
| payment_notice     | Ocorrência de aviso de pagamento        |
| payment            | Ocorrência de liquidação do pagamento   |
| protest_request    | Ocorrência de pedido de protesto        |
| protest_request    | Ocorrência de pedido de protesto falimentar |

### Enumeradores occurrence_status

| Enumerador         | Descrição                               |
|--------------------|-----------------------------------------|
| pending            | Enviada para a Nuclea/CIP para análise  |
| rejected           | Rejeitada                               |
| confirmed          | Confirmada                              |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (ptbr)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 404                      | BKS000013            | Not Found | Requester profile not found         |               Carteira não encontrada                                                                 |
| 400                      | BKS000022            | Bad Request                                        | Requester profile is not opened.                                                              | Carteira não está aberta.                          |
| 404                      | BKS000029            | Not Found                                        | Bank slip not found for the given key (`{bank_slip_key}`).                                                              | Boleto não encontrado para a chave fornecida (`{bank_slip_key}`).                          |

---

# Listar boletos

URL: /documentation/boletos/consulta/listar_boletos

A listagem de boletos retornará todos os boletos da carteira que se enquadrarem nos query parameters enviados na request.

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /bank_slips
MÉTODO GET

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |

### Query parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres              |
|-------------------------|--------|--------------------------------------------------------------|-------------------------|
| `request_control_key`   | uuidv4 | Chave única de identificação da request, no formato uuid v4  | 36                      |
| `bank_slip_key`         | uuidv4 | Chave única de identificação do boleto, no formato uuid v4   | 36                      |
| `bank_slip_status`      | string | Status do boleto | **[Enumeradores bank_slip_status](#enumeradores-bank_slip_status)** |
| `page`                  | integer| Número da página                                             | -                       |
| `page_size`             | integer| Tamanho da página                                            | -                       |
| `from_date`             | string | Data de registro inicial (formato "AAAA-MM-DD")              | 10                      |
| `to_date`               | string | Data de registro final (formato "AAAA-MM-DD")                | 10                      |

### Enumeradores bank_slip_status

| Enumerador                   | Descrição                                                                      |
|------------------------------|--------------------------------------------------------------------------------|
| accepted                     | Aceito e enviado para a Nuclea/CIP para análise                                |
| rejected                     | Registro rejeitado pela Nuclea/CIP                                             |
| payment_notice               | Aviso de pagamento (boleto pago mas pagamento ainda não liquidado)             |
| notary_office_payment_notice | Aviso de pagamento em cartório (boleto pago mas pagamento ainda não liquidado) |
| registered                   | Registro confirmado pela Nuclea/CIP                                            |
| payment_blocked              | Bloqueado para pagamento (em fluxo de protesto)                                |
| paid                         | Pago                                                                           |
| written_off                  | Baixado                                                                        |

## Response

STATUS 200

Response Body

```json
{
  "data": [
    {
      "bank_slip_key": "b58ce415-5428-45c4-8e33-b2df0d3ab6e8",
      "request_control_key": "53529224-330d-44b5-9f4d-59d55bc3cb8c",
      "our_number": 24384760943,
      "document_number": "DOC4561237",
      "amount": "8000.00",
      "rebate_amount": "200.00",
      "expiration": "2024-07-13",
      "barcode": "32994978900005000000001594438621284040114400",
      "digitable_line": "32990001529443862128940401144007497890000500000",
      "bank_teller_instructions": "Confirm payment",
      "protest_data": {
        "days_to_protest": 7
      },
      "bankruptcy_protest_data": {
        "days_to_bankruptcy_protest": 14
      },
      "max_payment_days": 45,
      "fine_data": {
        "fine_type": "absolute",
        "fine_amount": 100.0,
        "days_to_fine": 10
      },
      "interest_data": {
        "interest_type": "workdays_daily_amount",
        "interest_amount": 5.0,
        "days_to_interest": 10
      },
      "discounts_data": [
        {
          "discount_type": "anticipation_workdays_daily_percentage",
          "discount_number": 1,
          "discount_limit_date": "2024-07-13",
          "discount_percentage": 10
        }
      ],
      "payer_data": {
        "name": "Country Tech",
        "address": {
          "city": "Innovation City",
          "state": "RS",
          "number": "202",
          "street": "101 High St.",
          "complement": "Building A",
          "postal_code": "57099999",
          "neighborhood": "Tech Park"
        },
        "person_type": "legal",
        "document_number": "12345678000195"
      },
      "guarantor_data": {
        "name": "Jamie Doe",
        "address": {
          "city": "Peaceful Town",
          "state": "MG",
          "number": "303",
          "street": "202 Elm St.",
          "complement": "House 1",
          "postal_code": "57099999",
          "neighborhood": "Quiet Neighborhood"
        },
        "person_type": "natural",
        "document_number": "98765432100"
      },
      "bank_slip_status": "paid",
      "payment_data": {
        "paid_amount": 8000.0,
        "payment_credit_date": "2024-07-15",
        "payment_date": "2024-07-14"
      }
    }
  ],
  "pagination": {
    "current_page": 1,
    "rows_per_page": 100
  }
}
```

### Response Body Params

| Campo            | Tipo         | Descrição                             | Caracteres                                  |
|------------------|--------------|---------------------------------------|---------------------------------------------|
| `data` *         | object array | Boletos                               | **[Objeto bank_slip](#objeto-bank_slip)**   |
| `pagination` *   | object       | Informações de paginação              | **[Objeto pagination](#objeto-pagination)** |

### Objeto bank_slip

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------|
| `bank_slip_key      ` *    | uuidv4  | Chave única de identificação do boleto no formato uuid v4                          | 36                                                |
| `request_control_key` *    | uuidv4  | Chave única de identificação da request utilizada pelo cliente no formato uuid v4  | 36                                                |
| `our_number` *             | integer | Número único de identificação do boleto junto à carteira                           | 11                                                |
| `bank_slip_status` *       | string | Status do boleto                                                                    | **[Enumeradores bank_slip_status](#enumeradores-bank_slip_status)** |
| `protest_status` *         | string | Status de protesto, em cartório, do boleto                                          | **[Enumeradores protest_status](#enumeradores-protest_status)** |
| `document_number` *        | string  | Número de identificação do boleto                                                  | 10                                                |
| `amount` *                 | float   | Valor base do boleto                                                               | -                                                 |
| `expiration` *             | string  | Data de vencimento                                                                 | 10                                                |
| `barcode` *               | string  | Código de barras do boleto                                                         | 44                                                |
| `digitable_line` *         | string  | Linha digitável do boleto                                                          | 47                                                |
| `bank_teller_instructions` | string  | Instruções adicionais de registro, que constarão no PDF do boleto                  | 320                                               |
| `rebate_amount`            | float   | Valor de abatimento do boleto, que será aplicado em cima do valor base             | -                                                 |
| `max_payment_days` *      | integer | Máximo de dias corridos que o boleto ficará disponível para pagamento, após o vencimento (pode ser no máximo 365) | -          |
| `write_off_data`       | object  | Configuração de baixa      | **[Objeto write_off_data](#objeto-write_off_settings)** |
| `protest_data`         | object  | Configuração de protesto       | **[Objeto protest_data](#objeto-protest_settings)** |
| `bankruptcy_protest_data` | object  | Configuração de protesto falimentar | **[Objeto bankruptcy_protest_data](#objeto-bankruptcy_protest_settings)** |
| `fine_data`            | object  | Configuração de multa                 | **[Objeto fine_data](#objeto-fine_settings)** |
| `interest_data`        | object  | Configuração de juros        | **[Objeto interest_data](#objeto-interest_settings)** |
| `discounts_data`           | object array | Descontos           | **[Objeto discount](#objeto-discounts_data)** |
| `payer_data` *             | object  | Dados do pagador                                                                   | **[Objeto payer_data](#objetos-payer_data-e-guarantor_data)** |
| `guarantor_data` *         | object  | Dados do sacador avalista                                                          | **[Objeto guarantor_data](#objetos-payer_data-e-guarantor_data)** |

### Objeto pagination

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------------------|
| `current_page` *           | integer | Página atual                                                 | -      |
| `rows_per_page` *          | integer | Itens por página                                             | -      |

### Enumeradores protest_status

| Enumerador                   | Descrição                                                                      |
|------------------------------|--------------------------------------------------------------------------------|
| not_protested                | Boleto sem fluxo de protesto iniciado                                          |
| protest_requested            | Protesto em cartório solicitado                                                |
| notary_office_entry          | Boleto no cartório, em período de tríduo                                       |
| protest_cancel_requested     | Desistência do protesto solicitada                                             |
| notary_office_exit           | Boleto saiu do cartório                                                        |
| protested                    | Boleto protestado                                                              |
| paid_at_notary_office        | Pago no cartório                                                               |
| judicially_suspended         | Protesto suspenso judicialmente                                                |
| protest_remove_requested     | Remoção do protesto solicitada                                                 |

### Objeto write_off_data

| Campo                     | Tipo    | Descrição                                                                   | Caracteres |
|---------------------------|---------|-----------------------------------------------------------------------------|------------|
| `days_to_write_off` *     | integer | Dias, após o vencimento, para que o boleto seja baixado automaticamente     | -          |

### Objeto protest_data

| Campo                     | Tipo    | Descrição                                                                   | Caracteres |
|---------------------------|---------|-----------------------------------------------------------------------------|------------|
| `days_to_protest` *       | integer | Dias, após o vencimento, para que o boleto seja protestado automaticamente  | -          |

### Objeto bankruptcy_protest_data

| Campo                          | Tipo    | Descrição                                                                   | Caracteres  |
|--------------------------------|---------|-----------------------------------------------------------------------------|------------|
| `days_to_bankruptcy_protest` * | integer | Dias, após o vencimento, para que o boleto seja protestado automaticamente  | -           |

### Objeto fine_data

Opção 1: multa em valor absoluto (`fine_type=absolute`)

| Campo                     | Tipo    | Descrição                                               | Caracteres                |
|---------------------------|---------|---------------------------------------------------------|-------------------------------------------------------------------------|
| `fine_type` *             | string  | Tipo da multa                                                       | **[Enumeradores fine_type](#enumeradores-fine_type)**                                              |
| `fine_amount` *           | float   | Valor absoluto da multa                                             | -                                                                        |
| `days_to_fine` *          | integer | Dias, após o vencimento, para que a multa seja cobrada              | -                                                                        |

Opção 2: multa em valor percentual (`fine_type=percentage`)

| Campo                     | Tipo    | Descrição                                                 | Caracteres                             |
|---------------------------|---------|-----------------------------------------------------------|---------------------------------------|
| `fine_type` *             | string  | Tipo da multa                                             | **[Enumeradores fine_type](#enumeradores-fine_type)** |
| `fine_percentage` *       | integer | Valor percentual da multa, de 1 a 100                     | -                                      |
| `days_to_fine` *          | integer | Dias, após o vencimento, para que a multa seja cobrada    | -                                      |

### Enumeradores fine_type

| Enumerador         | Descrição             |
|--------------------|-----------------------|
| absolute           | valor absoluto        |
| percentage         | valor percentual      |

### Objeto interest_data

Opção 1: juros utilizando valores absolutos (`interest_type=calendar_days_daily_amount` ou `interest_type=workdays_daily_amount`)

| Campo                     | Tipo    | Descrição                                                                     | Caracteres                                                                                      |
|---------------------------|---------|-------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|
| `interest_type` *         | string  | Tipo de juros       | **[Enumeradores interest_type](#enumeradores-interest_type)** |
| `interest_amount` *       | float   | Valor a ser cobrado por unidade de tempo determinada (dias úteis ou corridos) | -                                                                                               |
| `days_to_interest` *      | integer | Dias, após o vencimento, para que comece a cobrar os juros                    | -                                                                                               |

Opção 2: juros utilizando valores percentuais (`interest_type=calendar_days_monthly_percentage`)

| Campo                    | Tipo    | Descrição                                                                             | Caracteres                                                                                          |
|--------------------------|---------|---------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|
| `interest_type` *        | string  | Tipo de juros       | **[Enumeradores interest_type](#enumeradores-interest_type)** |
| `interest_percentage` *  | integer | Porcentagem a ser cobrada por unidade de tempo determinada (dias úteis ou corridos)                                                                      | -                                                                           |
| `days_to_interest` *     | integer | Dias, após o vencimento, para que comece a cobrar os juros                             | -                                                                                                   |

### Enumeradores interest_type

| Enumerador                       | Descrição                                                            |
|----------------------------------|----------------------------------------------------------------------|
| calendar_days_daily_amount       | Valor diário sobre dias corridos                                     |
| workdays_daily_amount            | Valor diário sobre dias úteis                                        |
| calendar_days_monthly_percentage | Porcentagem de juros cobrados mensalmente, com base em dias corridos |

### Objeto discount

Opção 1: descontos utilizando valores absolutos (`discount_type in ["absolute", "anticipation_calendar_days_daily_amount", "anticipation_workdays_daily_amount"]`)

| Campo                     | Tipo    | Descrição                                           | Caracteres                                                |
|---------------------------|---------|-----------------------------------------------------|-----------------------------------------------------------|
| `discount_amount` *       | float   | Valor absoluto de desconto por unidade de tempo                                            | -                                                          |
| `discount_number` *       | integer | Número do desconto                                     | -                                                         |
| `discount_type` *         | string  | Configuração do desconto em valores absolutos                                    | **[Enumerador discount_type](#enumeradores-discount_type)** |                                                       |
| `discount_limit_date` *   | string  | Data limite para aplicação do desconto   | 10                                                        |

Opção 2: descontos utilizando valores percentuais (`discount_type in ["percentage", "anticipation_calendar_days_daily_percentage", "anticipation_workdays_daily_percentage"]`)

| Campo                     | Tipo    | Descrição                                           | Caracteres                                                |
|---------------------------|---------|-----------------------------------------------------|-----------------------------------------------------------|
| `discount_percentage` *   | float   | Valor percentual de desconto por unidade de tempo                                            | -                                                          |
| `discount_number` *       | integer | Número do desconto                                     | -                                                         |
| `discount_type` *         | string  | Configuração do desconto em valores percentuais                                    | **[Enumerador discount_type](#enumeradores-discount_type)** |                                                       |
| `discount_limit_date` *   | string  | Data limite para aplicação do desconto   | 10                                                        |

:::caution Atenção!
O boleto pode ter até três descontos, sendo que os descontos devem ser todos do mesmo tipo , isto é, devem ter o mesmo `discount_type`. Os descontos devem ser numerados de 1 a 3, de maneira crescente e começando necessariamente em 1. Ou seja, caso sejam enviados dois descontos na requisição, devem necessariamente ser numerados com 1 e 2.
:::

### Enumeradores discount_type

| Enumerador                                  | Descrição                                                                |
|---------------------------------------------|--------------------------------------------------------------------------|
| absolute                                    | Valor fixo                                                               |
| anticipation_calendar_days_daily_amount     | Valor diário de desconto de antecipação, sobre dias corridos             |
| anticipation_workdays_daily_amount          | Valor diário de desconto de antecipação, sobre dias úteis                |
| percentage                                  | Porcentagem fixa                                                         |
| anticipation_calendar_days_daily_percentage | Porcentagem mensal de desconto de antecipação, com base em dias corridos |
| anticipation_workdays_daily_percentage      | Porcentagem anual de desconto de antecipação, com base em dias úteis     |

### Objetos payer_data e guarantor_data

| Campo                     | Tipo   | Descrição                                                  | Caracteres|
|---------------------------|--------|-------------------------------------|-----------------------------------------------------------|
| `name` *                  | string | Nome completo                       | 100                                                       |
| `document_number` *       | string | Número do documento (CPF/CNPJ)      | 11 ou 14                                                  |
| `person_type` *           | string | Tipo da pessoa (física ou jurídica) | **[Enumeradores person_type](#enumeradores-person_type)** |
| `contact`                 | object | Informações de contato              | **[Objeto contact](#objeto-contact)**                     |
| `address`                 | object | Endereço                            | **[Objeto address](#objeto-address)**                     |

### Enumeradores person_type

| Enumerador         | Descrição             |
|--------------------|-----------------------|
| natural            | pessoa física         |
| legal              | pessoa jurídica       |

### Objeto contact

| Campo                     | Tipo   | Descrição                         | Caracteres                         |
|---------------------------|--------|-----------------------------------|------------------------------------|
| `email`                   | string | E-mail de contato                 | 320                                |
| `phone`                   | object | Telefone de contato               | **[Objeto phone](#objeto-phone)**  |

### Objeto phone

| Campo                           | Tipo   | Descrição                                    | Caracteres |
|---------------------------------|--------|----------------------------------------------|------------|
| `international_dial_code` *     | string | Código DDI (Discagem Direta Internacional)   | 3          |
| `area_code` *                   | string | Código DDD (Discagem Direta à Distância)     | 2          |
| `number` *                      | string | Complemento                                  | 9          |

### Objeto address

| Campo                     | Tipo   | Descrição                                    | Caracteres |
|---------------------------|--------|----------------------------------------------|------------|
| `street` *                | string | Logradouro                                   | 500        |
| `number` *                | string | Número                                       | 6          |
| `complement`              | string | Complemento                                  | 500        |
| `neighborhood` *          | string | Bairro                                       | 100        |
| `postal_code` *           | string | CEP                                          | 8          |
| `city` *                  | string | Cidade                                       | 100        |
| `state` *                 | string | Estado (UF) | **[Enumerador state](#enumeradores-state)** |

### Enumeradores state

| Enumerador         | Descrição             |
|--------------------|-----------------------|
| AC                 | Acre                  |
| AL                 | Alagoas               |
| AM                 | Amazonas              |
| AP                 | Amapá                 |
| BA                 | Bahia                 |
| CE                 | Ceará                 |
| DF                 | Distrito federal      |
| ES                 | Espírito Santo        |
| GO                 | Goiás                 |
| MA                 | Maranhão              |
| MG                 | Minas Gerais          |
| MS                 | Mato Grosso do Sul    |
| MT                 | Mato Grosso           |
| PA                 | Pará                  |
| PB                 | Paraíba               |
| PE                 | Pernambuco            |
| PI                 | Piauí                 |
| PR                 | Paraná                |
| RJ                 | Rio de Janeiro        |
| RN                 | Rio Grande do Norte   |
| RO                 | Rondônia              |
| RR                 | Roraima               |
| RS                 | Rio Grande do Sul     |
| SC                 | Santa Catarina        |
| SE                 | Sergipe               |
| SP                 | São Paulo             |
| TO                 | Tocantins             |
| EX                 | Exceção               |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 403                      | BKS000005            | Forbidden                         | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 400                      | BKS000012            | Bad Request | Invalid integer value for page or size query string parameters. | Valor inválido para parâmetros de página ou tamanho de página. |
| 404                      | BKS000013            | Not Found | Requester profile not found         |               Carteira não encontrada                                                                 |

---

# Relatório de posição diária em Excel

URL: /documentation/boletos/consultar_v1/posicao_diaria_excel

## Request

ENDPOINT /bank_slip/duplicates_balance_excel
MÉTODO GET

:::caution Atenção
O body de resposta desta request será um arquivo excel encodado em base64.
:::

### Query params

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `beneficiary_key` | string | Chave de identificação do beneficiário (obrigatória caso não haja um requester_profile_code). | chave uuid | 
| `requester_profile_code` | string | Código da carteira (obrigatório caso não haja uma beneficiary_key). | 10 | 
| `expiration_date` | date | Data máxima de vencimento (Formato YYYY-MM-DD). | 10 | 
| `content_type` | string | Filtra os boletos incluídos no relatório pelo status. Valores aceitos: `paid`, `unpaid`, `expired`, `written_off`. | - | 

## Response

STATUS 200

Response Body

```json

O body de resposta desta request será um arquivo excel encodado em base64.

```

STATUS 400

Response Body

```json

{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}
  
```

---

# Relatório de posição diária em JSON

URL: /documentation/boletos/consultar_v1/posicao_diaria_json

## Request

ENDPOINT /bank_slip/duplicates_balance
MÉTODO GET

### Query params

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `beneficiary_key` | string | Chave de identificação do beneficiário (obrigatória caso não haja um requester_profile_code). | 10 | 
| `requester_profile_code` | string | Código da carteira (obrigatório caso não haja uma beneficiary_key). | 10 | 
| `expiration_date` | date | Data máxima de vencimento (Formato YYYY-MM-DD). | 10 | 

## Response

STATUS 200

Response Body

```json

{
  "expire_after_90_days": 0,
  "expire_between_31_and_60_days": 0,
  "expire_between_61_and_90_days": 0,
  "expire_in_30_days": 0,
  "expired": 3,
  "expired_in_notary_office": 0,
  "expired_not_in_notary_office": 0,
  "paid": 0,
  "paid_after_due_date": 2,
  "paid_before_due_date": 0,
  "paid_on_due_date": 0,
  "to_expire": 0,
  "unpaid": 0
}
    

```

STATUS 400

Response Body

```json

{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}
    

```

---

# Solicitar 2ª via de boleto

URL: /documentation/boletos/consultar_v1/segunda_via_de_boleto

## Request

ENDPOINT /bank_slip/2-way/ BANK_SLIP_KEY
MÉTODO POST

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `bank_slip_key`         | uuidv4 | Chave única de identificação do boleto, no formato uuid v4   | 36         |

## Response

STATUS 200

Response Body

```json
{
  "amount": 3,
  "asset_type": {
    "created_at": "2019-02-01T16:44:11",
    "enumerator": "invoice",
    "translation_path": "bank_slip.AssetType.invoice"
  },
  "automatic_bankruptcy_protest": true,
  "automatic_protest": false,
  "automatic_write_off": false,
  "bank_slip_file": [
    {
      "barcode": "32998827300000003000001010000000000200670490",
      "created_at": "2020-05-19T18:46:41",
      "digitable_line": "32990001031000000000902006704908882730000000300",
      "url": "https://linkparadownload.com/arquivo.pdf"
    }
  ],
  "bank_slip_key": "96b32f1a-c2bd-41a4-b4b1-a169235be68b",
  "bank_slip_status": {
    "created_at": "2019-02-01T16:44:07",
    "enumerator": "accepted",
    "translation_path": "bank_slip.BankSlipStatus.accepted"
  },
  "bank_teller_instructions": "Boleto Teste",
  "beneficiary_account_branch": "0001",
  "beneficiary_account_key": "7cc3b1f7-8015-4073-8471-a3ba57e34975",
  "beneficiary_account_number": "67049",
  "beneficiary_document_number": "12345678905",
  "beneficiary_key": "b91195e3-0cf4-4fed-90cf-7f5bef29c2f0",
  "beneficiary_name": "Greg Brown",
  "billing_account_key": "7cc3b1f7-8015-4073-8471-a3ba57e34975",
  "business_date_expiration": "2020-06-01",
  "created_at": "2020-05-15T21:00:25",
  "days_before_fine": null,
  "days_before_interest": null,
  "days_to_bankruptcy_protest": 1,
  "days_to_protest": null,
  "days_to_write_off": null,
  "discount_limit_date": null,
  "discount_value": null,
  "document_number": "Parcela 1",
  "expenses": [],
  "expiration": "2020-06-01",
  "fine_percentage": 0.1,
  "guarantor_address": null,
  "guarantor_city": null,
  "guarantor_document": null,
  "guarantor_name": null,
  "guarantor_person_type": null,
  "guarantor_postal_code": "00000000",
  "guarantor_state": null,
  "historical_our_number": 2,
  "institution_registration_date": null,
  "interest_daily_value": 0.34,
  "lock_origin_type": null,
  "nfe_key": null,
  "nfe_url": null,
  "occurrences": [
    {
      "created_at": "2020-05-15T21:00:25",
      "discount_amount": null,
      "discount_limit_date": null,
      "iof_amount": null,
      "new_bank_slip_status": null,
      "new_due_date": "2020-06-01",
      "new_protest_status": {
        "created_at": "2019-02-01T16:44:08",
        "enumerator": "not_protested",
        "translation_path": "bank_slip.ProtestStatus.not_protested"
      },
      "notary_office_number": null,
      "notary_office_protocol": null,
      "occurrence_expenses": null,
      "occurrence_feedback": null,
      "occurrence_key": "c3ab3e01-f198-4e7e-9e01-7a8091b8bd72",
      "occurrence_reasons": [],
      "occurrence_type": {
        "created_at": "2019-02-01T16:44:14",
        "enumerator": "registration",
        "translation_path": "bank_slip.OccurrenceType.registration"
      },
      "old_bank_slip_status": {
        "created_at": "2019-02-01T16:44:07",
        "enumerator": "accepted",
        "translation_path": "bank_slip.BankSlipStatus.accepted"
      },
      "old_due_date": null,
      "old_protest_status": null,
      "paid_amount": null,
      "paid_fine_amount": null,
      "paid_interest_amount": null,
      "payment_bank": null,
      "payment_branch": null,
      "payment_credit_date": null,
      "payment_method": null,
      "payment_origin": null,
      "protest_confirmation": null,
      "protest_expenses": null,
      "rebate_amount": null,
      "registration_institution_occurrence_date": "2020-05-15",
      "registration_institution_occurrence_event": [
        {
          "cnab_file": {
            "cnab_key": "abfc9fba-28fb-4e75-afcb-f4647d7031bc",
            "company_code": null,
            "created_at": "2020-05-15T21:00:22",
            "downloads": [],
            "file_size": "None",
            "filename": null,
            "line_length": null,
            "remitter_key": "b91195e3-0cf4-4fed-90cf-7f5bef29c2f0",
            "requester_profile_code": null,
            "type": {
              "created_at": "2019-02-01T16:44:17",
              "enumerator": "api_instruction",
              "translation_path": "bank_slip.CNABFileType.api_instruction"
            },
            "url": null,
            "version": null
          },
          "cnab_file_occurrence_order": 1,
          "created_at": "2020-05-15T21:00:25",
          "new_status": {
            "created_at": "2019-02-01T16:44:15",
            "enumerator": "waiting_submission",
            "translation_path": "bank_slip.RegistrationInstitutionOccurrenceStatus.waiting_submission"
          },
          "old_status": null
        }
      ],
      "registration_institution_occurrence_status": {
        "created_at": "2019-02-01T16:44:15",
        "enumerator": "waiting_submission",
        "translation_path": "bank_slip.RegistrationInstitutionOccurrenceStatus.waiting_submission"
      },
      "requester_occurrence_event": [
        {
          "cnab_file": {
            "cnab_key": "abfc9fba-28fb-4e75-afcb-f4647d7031bc",
            "company_code": null,
            "created_at": "2020-05-15T21:00:22",
            "downloads": [],
            "file_size": "None",
            "filename": null,
            "line_length": null,
            "remitter_key": "b91195e3-0cf4-4fed-90cf-7f5bef29c2f0",
            "requester_profile_code": null,
            "type": {
              "created_at": "2019-02-01T16:44:17",
              "enumerator": "api_instruction",
              "translation_path": "bank_slip.CNABFileType.api_instruction"
            },
            "url": null,
            "version": null
          },
          "cnab_file_occurrence_order": 1,
          "created_at": "2020-05-15T21:00:25",
          "new_status": {
            "created_at": "2019-02-01T16:44:16",
            "enumerator": "accepted",
            "translation_path": "bank_slip.RequesterOccurrenceStatus.accepted"
          },
          "old_status": null
        }
      ],
      "requester_occurrence_status": {
        "created_at": "2019-02-01T16:44:16",
        "enumerator": "accepted",
        "translation_path": "bank_slip.RequesterOccurrenceStatus.accepted"
      }
    }
  ],
  "our_number": 2,
  "paid_amount": null,
  "paid_fine_amount": null,
  "paid_interest_amount": null,
  "participant_control_number": null,
  "payer_account_digit": null,
  "payer_account_number": null,
  "payer_account_type": null,
  "payer_address": "Rua Carlos tampaio, 204",
  "payer_bank": null,
  "payer_branch_digit": null,
  "payer_branch_number": null,
  "payer_document": "41651732825",
  "payer_name": "Beatriz Couto",
  "payer_person_type": {
    "created_at": "2019-02-01T16:44:09",
    "enumerator": "natural",
    "translation_path": "bank_slip.PersonType.natural"
  },
  "payer_postal_code": "00000000",
  "payment_date": null,
  "printing_policy": {
    "created_at": "2019-02-01T16:44:10",
    "enumerator": "no_printing",
    "translation_path": "bank_slip.PrintingPolicy.no_printing"
  },
  "protest_status": {
    "created_at": "2019-02-01T16:44:08",
    "enumerator": "not_protested",
    "translation_path": "bank_slip.ProtestStatus.not_protested"
  },
  "rebate_amount": null,
  "registration_institution": {
    "created_at": "2020-03-26T19:36:16",
    "enumerator": "qi_scd",
    "febraban_code": "329",
    "remittance_sequence": 72,
    "settlement_resource_account_key": "3e46d266-4fdb-4fd2-b87a-3e3de366afd4"
  },
  "requester_profile": 1,
  "requester_profile_code": "329-01-0001-0067049",
  "requester_registration_date": "2020-05-15"
}{
  "amount": 3,
  "asset_type": {
    "created_at": "2019-02-01T16:44:11",
    "enumerator": "invoice",
    "translation_path": "bank_slip.AssetType.invoice"
  },
  "automatic_bankruptcy_protest": true,
  "automatic_protest": false,
  "automatic_write_off": false,
  "bank_slip_file": [
    {
      "barcode": "32998827300000003000001010000000000200670490",
      "created_at": "2020-05-19T18:46:41",
      "digitable_line": "32990001031000000000902006704908882730000000300",
      "url": "https://linkparadownload.com/arquivo.pdf"
    }
  ],
  "bank_slip_key": "96b32f1a-c2bd-41a4-b4b1-a169235be68b",
  "bank_slip_status": {
    "created_at": "2019-02-01T16:44:07",
    "enumerator": "accepted",
    "translation_path": "bank_slip.BankSlipStatus.accepted"
  },
  "bank_teller_instructions": "Boleto Teste",
  "beneficiary_account_branch": "0001",
  "beneficiary_account_key": "7cc3b1f7-8015-4073-8471-a3ba57e34975",
  "beneficiary_account_number": "67049",
  "beneficiary_document_number": "12345678905",
  "beneficiary_key": "b91195e3-0cf4-4fed-90cf-7f5bef29c2f0",
  "beneficiary_name": "Greg Brown",
  "billing_account_key": "7cc3b1f7-8015-4073-8471-a3ba57e34975",
  "business_date_expiration": "2020-06-01",
  "created_at": "2020-05-15T21:00:25",
  "days_before_fine": null,
  "days_before_interest": null,
  "days_to_bankruptcy_protest": 1,
  "days_to_protest": null,
  "days_to_write_off": null,
  "discount_limit_date": null,
  "discount_value": null,
  "document_number": "Parcela 1",
  "expenses": [],
  "expiration": "2020-06-01",
  "fine_percentage": 0.1,
  "guarantor_address": null,
  "guarantor_city": null,
  "guarantor_document": null,
  "guarantor_name": null,
  "guarantor_person_type": null,
  "guarantor_postal_code": "00000000",
  "guarantor_state": null,
  "historical_our_number": 2,
  "institution_registration_date": null,
  "interest_daily_value": 0.34,
  "lock_origin_type": null,
  "nfe_key": null,
  "nfe_url": null,
  "occurrences": [
    {
      "created_at": "2020-05-15T21:00:25",
      "discount_amount": null,
      "discount_limit_date": null,
      "iof_amount": null,
      "new_bank_slip_status": null,
      "new_due_date": "2020-06-01",
      "new_protest_status": {
        "created_at": "2019-02-01T16:44:08",
        "enumerator": "not_protested",
        "translation_path": "bank_slip.ProtestStatus.not_protested"
      },
      "notary_office_number": null,
      "notary_office_protocol": null,
      "occurrence_expenses": null,
      "occurrence_feedback": null,
      "occurrence_key": "c3ab3e01-f198-4e7e-9e01-7a8091b8bd72",
      "occurrence_reasons": [],
      "occurrence_type": {
        "created_at": "2019-02-01T16:44:14",
        "enumerator": "registration",
        "translation_path": "bank_slip.OccurrenceType.registration"
      },
      "old_bank_slip_status": {
        "created_at": "2019-02-01T16:44:07",
        "enumerator": "accepted",
        "translation_path": "bank_slip.BankSlipStatus.accepted"
      },
      "old_due_date": null,
      "old_protest_status": null,
      "paid_amount": null,
      "paid_fine_amount": null,
      "paid_interest_amount": null,
      "payment_bank": null,
      "payment_branch": null,
      "payment_credit_date": null,
      "payment_method": null,
      "payment_origin": null,
      "protest_confirmation": null,
      "protest_expenses": null,
      "rebate_amount": null,
      "registration_institution_occurrence_date": "2020-05-15",
      "registration_institution_occurrence_event": [
        {
          "cnab_file": {
            "cnab_key": "abfc9fba-28fb-4e75-afcb-f4647d7031bc",
            "company_code": null,
            "created_at": "2020-05-15T21:00:22",
            "downloads": [],
            "file_size": "None",
            "filename": null,
            "line_length": null,
            "remitter_key": "b91195e3-0cf4-4fed-90cf-7f5bef29c2f0",
            "requester_profile_code": null,
            "type": {
              "created_at": "2019-02-01T16:44:17",
              "enumerator": "api_instruction",
              "translation_path": "bank_slip.CNABFileType.api_instruction"
            },
            "url": null,
            "version": null
          },
          "cnab_file_occurrence_order": 1,
          "created_at": "2020-05-15T21:00:25",
          "new_status": {
            "created_at": "2019-02-01T16:44:15",
            "enumerator": "waiting_submission",
            "translation_path": "bank_slip.RegistrationInstitutionOccurrenceStatus.waiting_submission"
          },
          "old_status": null
        }
      ],
      "registration_institution_occurrence_status": {
        "created_at": "2019-02-01T16:44:15",
        "enumerator": "waiting_submission",
        "translation_path": "bank_slip.RegistrationInstitutionOccurrenceStatus.waiting_submission"
      },
      "requester_occurrence_event": [
        {
          "cnab_file": {
            "cnab_key": "abfc9fba-28fb-4e75-afcb-f4647d7031bc",
            "company_code": null,
            "created_at": "2020-05-15T21:00:22",
            "downloads": [],
            "file_size": "None",
            "filename": null,
            "line_length": null,
            "remitter_key": "b91195e3-0cf4-4fed-90cf-7f5bef29c2f0",
            "requester_profile_code": null,
            "type": {
              "created_at": "2019-02-01T16:44:17",
              "enumerator": "api_instruction",
              "translation_path": "bank_slip.CNABFileType.api_instruction"
            },
            "url": null,
            "version": null
          },
          "cnab_file_occurrence_order": 1,
          "created_at": "2020-05-15T21:00:25",
          "new_status": {
            "created_at": "2019-02-01T16:44:16",
            "enumerator": "accepted",
            "translation_path": "bank_slip.RequesterOccurrenceStatus.accepted"
          },
          "old_status": null
        }
      ],
      "requester_occurrence_status": {
        "created_at": "2019-02-01T16:44:16",
        "enumerator": "accepted",
        "translation_path": "bank_slip.RequesterOccurrenceStatus.accepted"
      }
    }
  ],
  "our_number": 2,
  "paid_amount": null,
  "paid_fine_amount": null,
  "paid_interest_amount": null,
  "participant_control_number": null,
  "payer_account_digit": null,
  "payer_account_number": null,
  "payer_account_type": null,
  "payer_address": "Rua Carlos tampaio, 204",
  "payer_bank": null,
  "payer_branch_digit": null,
  "payer_branch_number": null,
  "payer_document": "41651732825",
  "payer_name": "Beatriz Couto",
  "payer_person_type": {
    "created_at": "2019-02-01T16:44:09",
    "enumerator": "natural",
    "translation_path": "bank_slip.PersonType.natural"
  },
  "payer_postal_code": "00000000",
  "payment_date": null,
  "printing_policy": {
    "created_at": "2019-02-01T16:44:10",
    "enumerator": "no_printing",
    "translation_path": "bank_slip.PrintingPolicy.no_printing"
  },
  "protest_status": {
    "created_at": "2019-02-01T16:44:08",
    "enumerator": "not_protested",
    "translation_path": "bank_slip.ProtestStatus.not_protested"
  },
  "rebate_amount": null,
  "registration_institution": {
    "created_at": "2020-03-26T19:36:16",
    "enumerator": "qi_scd",
    "febraban_code": "329",
    "remittance_sequence": 72,
    "settlement_resource_account_key": "3e46d266-4fdb-4fd2-b87a-3e3de366afd4"
  },
  "requester_profile": 1,
  "requester_profile_code": "329-01-0001-0067049",
  "requester_registration_date": "2020-05-15"
}{
  "amount": 3,
  "asset_type": {
    "created_at": "2019-02-01T16:44:11",
    "enumerator": "invoice",
    "translation_path": "bank_slip.AssetType.invoice"
  },
  "automatic_bankruptcy_protest": true,
  "automatic_protest": false,
  "automatic_write_off": false,
  "bank_slip_file": [
    {
      "barcode": "32998827300000003000001010000000000200670490",
      "created_at": "2020-05-19T18:46:41",
      "digitable_line": "32990001031000000000902006704908882730000000300",
      "url": "https://linkparadownload.com/arquivo.pdf"
    }
  ],
  "bank_slip_key": "96b32f1a-c2bd-41a4-b4b1-a169235be68b",
  "bank_slip_status": {
    "created_at": "2019-02-01T16:44:07",
    "enumerator": "accepted",
    "translation_path": "bank_slip.BankSlipStatus.accepted"
  },
  "bank_teller_instructions": "Boleto Teste",
  "beneficiary_account_branch": "0001",
  "beneficiary_account_key": "7cc3b1f7-8015-4073-8471-a3ba57e34975",
  "beneficiary_account_number": "67049",
  "beneficiary_document_number": "12345678905",
  "beneficiary_key": "b91195e3-0cf4-4fed-90cf-7f5bef29c2f0",
  "beneficiary_name": "Greg Brown",
  "billing_account_key": "7cc3b1f7-8015-4073-8471-a3ba57e34975",
  "business_date_expiration": "2020-06-01",
  "created_at": "2020-05-15T21:00:25",
  "days_before_fine": null,
  "days_before_interest": null,
  "days_to_bankruptcy_protest": 1,
  "days_to_protest": null,
  "days_to_write_off": null,
  "discount_limit_date": null,
  "discount_value": null,
  "document_number": "Parcela 1",
  "expenses": [],
  "expiration": "2020-06-01",
  "fine_percentage": 0.1,
  "guarantor_address": null,
  "guarantor_city": null,
  "guarantor_document": null,
  "guarantor_name": null,
  "guarantor_person_type": null,
  "guarantor_postal_code": "00000000",
  "guarantor_state": null,
  "historical_our_number": 2,
  "institution_registration_date": null,
  "interest_daily_value": 0.34,
  "lock_origin_type": null,
  "nfe_key": null,
  "nfe_url": null,
  "occurrences": [
    {
      "created_at": "2020-05-15T21:00:25",
      "discount_amount": null,
      "discount_limit_date": null,
      "iof_amount": null,
      "new_bank_slip_status": null,
      "new_due_date": "2020-06-01",
      "new_protest_status": {
        "created_at": "2019-02-01T16:44:08",
        "enumerator": "not_protested",
        "translation_path": "bank_slip.ProtestStatus.not_protested"
      },
      "notary_office_number": null,
      "notary_office_protocol": null,
      "occurrence_expenses": null,
      "occurrence_feedback": null,
      "occurrence_key": "c3ab3e01-f198-4e7e-9e01-7a8091b8bd72",
      "occurrence_reasons": [],
      "occurrence_type": {
        "created_at": "2019-02-01T16:44:14",
        "enumerator": "registration",
        "translation_path": "bank_slip.OccurrenceType.registration"
      },
      "old_bank_slip_status": {
        "created_at": "2019-02-01T16:44:07",
        "enumerator": "accepted",
        "translation_path": "bank_slip.BankSlipStatus.accepted"
      },
      "old_due_date": null,
      "old_protest_status": null,
      "paid_amount": null,
      "paid_fine_amount": null,
      "paid_interest_amount": null,
      "payment_bank": null,
      "payment_branch": null,
      "payment_credit_date": null,
      "payment_method": null,
      "payment_origin": null,
      "protest_confirmation": null,
      "protest_expenses": null,
      "rebate_amount": null,
      "registration_institution_occurrence_date": "2020-05-15",
      "registration_institution_occurrence_event": [
        {
          "cnab_file": {
            "cnab_key": "abfc9fba-28fb-4e75-afcb-f4647d7031bc",
            "company_code": null,
            "created_at": "2020-05-15T21:00:22",
            "downloads": [],
            "file_size": "None",
            "filename": null,
            "line_length": null,
            "remitter_key": "b91195e3-0cf4-4fed-90cf-7f5bef29c2f0",
            "requester_profile_code": null,
            "type": {
              "created_at": "2019-02-01T16:44:17",
              "enumerator": "api_instruction",
              "translation_path": "bank_slip.CNABFileType.api_instruction"
            },
            "url": null,
            "version": null
          },
          "cnab_file_occurrence_order": 1,
          "created_at": "2020-05-15T21:00:25",
          "new_status": {
            "created_at": "2019-02-01T16:44:15",
            "enumerator": "waiting_submission",
            "translation_path": "bank_slip.RegistrationInstitutionOccurrenceStatus.waiting_submission"
          },
          "old_status": null
        }
      ],
      "registration_institution_occurrence_status": {
        "created_at": "2019-02-01T16:44:15",
        "enumerator": "waiting_submission",
        "translation_path": "bank_slip.RegistrationInstitutionOccurrenceStatus.waiting_submission"
      },
      "requester_occurrence_event": [
        {
          "cnab_file": {
            "cnab_key": "abfc9fba-28fb-4e75-afcb-f4647d7031bc",
            "company_code": null,
            "created_at": "2020-05-15T21:00:22",
            "downloads": [],
            "file_size": "None",
            "filename": null,
            "line_length": null,
            "remitter_key": "b91195e3-0cf4-4fed-90cf-7f5bef29c2f0",
            "requester_profile_code": null,
            "type": {
              "created_at": "2019-02-01T16:44:17",
              "enumerator": "api_instruction",
              "translation_path": "bank_slip.CNABFileType.api_instruction"
            },
            "url": null,
            "version": null
          },
          "cnab_file_occurrence_order": 1,
          "created_at": "2020-05-15T21:00:25",
          "new_status": {
            "created_at": "2019-02-01T16:44:16",
            "enumerator": "accepted",
            "translation_path": "bank_slip.RequesterOccurrenceStatus.accepted"
          },
          "old_status": null
        }
      ],
      "requester_occurrence_status": {
        "created_at": "2019-02-01T16:44:16",
        "enumerator": "accepted",
        "translation_path": "bank_slip.RequesterOccurrenceStatus.accepted"
      }
    }
  ],
  "our_number": 2,
  "paid_amount": null,
  "paid_fine_amount": null,
  "paid_interest_amount": null,
  "participant_control_number": null,
  "payer_account_digit": null,
  "payer_account_number": null,
  "payer_account_type": null,
  "payer_address": "Rua Carlos tampaio, 204",
  "payer_bank": null,
  "payer_branch_digit": null,
  "payer_branch_number": null,
  "payer_document": "41651732825",
  "payer_name": "Beatriz Couto",
  "payer_person_type": {
    "created_at": "2019-02-01T16:44:09",
    "enumerator": "natural",
    "translation_path": "bank_slip.PersonType.natural"
  },
  "payer_postal_code": "00000000",
  "payment_date": null,
  "printing_policy": {
    "created_at": "2019-02-01T16:44:10",
    "enumerator": "no_printing",
    "translation_path": "bank_slip.PrintingPolicy.no_printing"
  },
  "protest_status": {
    "created_at": "2019-02-01T16:44:08",
    "enumerator": "not_protested",
    "translation_path": "bank_slip.ProtestStatus.not_protested"
  },
  "rebate_amount": null,
  "registration_institution": {
    "created_at": "2020-03-26T19:36:16",
    "enumerator": "qi_scd",
    "febraban_code": "329",
    "remittance_sequence": 72,
    "settlement_resource_account_key": "3e46d266-4fdb-4fd2-b87a-3e3de366afd4"
  },
  "requester_profile": 1,
  "requester_profile_code": "329-01-0001-0067049",
  "requester_registration_date": "2020-05-15"
}{
  "amount": 3,
  "asset_type": {
    "created_at": "2019-02-01T16:44:11",
    "enumerator": "invoice",
    "translation_path": "bank_slip.AssetType.invoice"
  },
  "automatic_bankruptcy_protest": true,
  "automatic_protest": false,
  "automatic_write_off": false,
  "bank_slip_file": [
    {
      "barcode": "32998827300000003000001010000000000200670490",
      "created_at": "2020-05-19T18:46:41",
      "digitable_line": "32990001031000000000902006704908882730000000300",
      "url": "https://linkparadownload.com/arquivo.pdf"
    }
  ],
  "bank_slip_key": "96b32f1a-c2bd-41a4-b4b1-a169235be68b",
  "bank_slip_status": {
    "created_at": "2019-02-01T16:44:07",
    "enumerator": "accepted",
    "translation_path": "bank_slip.BankSlipStatus.accepted"
  },
  "bank_teller_instructions": "Boleto Teste",
  "beneficiary_account_branch": "0001",
  "beneficiary_account_key": "7cc3b1f7-8015-4073-8471-a3ba57e34975",
  "beneficiary_account_number": "67049",
  "beneficiary_document_number": "12345678905",
  "beneficiary_key": "b91195e3-0cf4-4fed-90cf-7f5bef29c2f0",
  "beneficiary_name": "Greg Brown",
  "billing_account_key": "7cc3b1f7-8015-4073-8471-a3ba57e34975",
  "business_date_expiration": "2020-06-01",
  "created_at": "2020-05-15T21:00:25",
  "days_before_fine": null,
  "days_before_interest": null,
  "days_to_bankruptcy_protest": 1,
  "days_to_protest": null,
  "days_to_write_off": null,
  "discount_limit_date": null,
  "discount_value": null,
  "document_number": "Parcela 1",
  "expenses": [],
  "expiration": "2020-06-01",
  "fine_percentage": 0.1,
  "guarantor_address": null,
  "guarantor_city": null,
  "guarantor_document": null,
  "guarantor_name": null,
  "guarantor_person_type": null,
  "guarantor_postal_code": "00000000",
  "guarantor_state": null,
  "historical_our_number": 2,
  "institution_registration_date": null,
  "interest_daily_value": 0.34,
  "lock_origin_type": null,
  "nfe_key": null,
  "nfe_url": null,
  "occurrences": [
    {
      "created_at": "2020-05-15T21:00:25",
      "discount_amount": null,
      "discount_limit_date": null,
      "iof_amount": null,
      "new_bank_slip_status": null,
      "new_due_date": "2020-06-01",
      "new_protest_status": {
        "created_at": "2019-02-01T16:44:08",
        "enumerator": "not_protested",
        "translation_path": "bank_slip.ProtestStatus.not_protested"
      },
      "notary_office_number": null,
      "notary_office_protocol": null,
      "occurrence_expenses": null,
      "occurrence_feedback": null,
      "occurrence_key": "c3ab3e01-f198-4e7e-9e01-7a8091b8bd72",
      "occurrence_reasons": [],
      "occurrence_type": {
        "created_at": "2019-02-01T16:44:14",
        "enumerator": "registration",
        "translation_path": "bank_slip.OccurrenceType.registration"
      },
      "old_bank_slip_status": {
        "created_at": "2019-02-01T16:44:07",
        "enumerator": "accepted",
        "translation_path": "bank_slip.BankSlipStatus.accepted"
      },
      "old_due_date": null,
      "old_protest_status": null,
      "paid_amount": null,
      "paid_fine_amount": null,
      "paid_interest_amount": null,
      "payment_bank": null,
      "payment_branch": null,
      "payment_credit_date": null,
      "payment_method": null,
      "payment_origin": null,
      "protest_confirmation": null,
      "protest_expenses": null,
      "rebate_amount": null,
      "registration_institution_occurrence_date": "2020-05-15",
      "registration_institution_occurrence_event": [
        {
          "cnab_file": {
            "cnab_key": "abfc9fba-28fb-4e75-afcb-f4647d7031bc",
            "company_code": null,
            "created_at": "2020-05-15T21:00:22",
            "downloads": [],
            "file_size": "None",
            "filename": null,
            "line_length": null,
            "remitter_key": "b91195e3-0cf4-4fed-90cf-7f5bef29c2f0",
            "requester_profile_code": null,
            "type": {
              "created_at": "2019-02-01T16:44:17",
              "enumerator": "api_instruction",
              "translation_path": "bank_slip.CNABFileType.api_instruction"
            },
            "url": null,
            "version": null
          },
          "cnab_file_occurrence_order": 1,
          "created_at": "2020-05-15T21:00:25",
          "new_status": {
            "created_at": "2019-02-01T16:44:15",
            "enumerator": "waiting_submission",
            "translation_path": "bank_slip.RegistrationInstitutionOccurrenceStatus.waiting_submission"
          },
          "old_status": null
        }
      ],
      "registration_institution_occurrence_status": {
        "created_at": "2019-02-01T16:44:15",
        "enumerator": "waiting_submission",
        "translation_path": "bank_slip.RegistrationInstitutionOccurrenceStatus.waiting_submission"
      },
      "requester_occurrence_event": [
        {
          "cnab_file": {
            "cnab_key": "abfc9fba-28fb-4e75-afcb-f4647d7031bc",
            "company_code": null,
            "created_at": "2020-05-15T21:00:22",
            "downloads": [],
            "file_size": "None",
            "filename": null,
            "line_length": null,
            "remitter_key": "b91195e3-0cf4-4fed-90cf-7f5bef29c2f0",
            "requester_profile_code": null,
            "type": {
              "created_at": "2019-02-01T16:44:17",
              "enumerator": "api_instruction",
              "translation_path": "bank_slip.CNABFileType.api_instruction"
            },
            "url": null,
            "version": null
          },
          "cnab_file_occurrence_order": 1,
          "created_at": "2020-05-15T21:00:25",
          "new_status": {
            "created_at": "2019-02-01T16:44:16",
            "enumerator": "accepted",
            "translation_path": "bank_slip.RequesterOccurrenceStatus.accepted"
          },
          "old_status": null
        }
      ],
      "requester_occurrence_status": {
        "created_at": "2019-02-01T16:44:16",
        "enumerator": "accepted",
        "translation_path": "bank_slip.RequesterOccurrenceStatus.accepted"
      }
    }
  ],
  "our_number": 2,
  "paid_amount": null,
  "paid_fine_amount": null,
  "paid_interest_amount": null,
  "participant_control_number": null,
  "payer_account_digit": null,
  "payer_account_number": null,
  "payer_account_type": null,
  "payer_address": "Rua Carlos tampaio, 204",
  "payer_bank": null,
  "payer_branch_digit": null,
  "payer_branch_number": null,
  "payer_document": "41651732825",
  "payer_name": "Beatriz Couto",
  "payer_person_type": {
    "created_at": "2019-02-01T16:44:09",
    "enumerator": "natural",
    "translation_path": "bank_slip.PersonType.natural"
  },
  "payer_postal_code": "00000000",
  "payment_date": null,
  "printing_policy": {
    "created_at": "2019-02-01T16:44:10",
    "enumerator": "no_printing",
    "translation_path": "bank_slip.PrintingPolicy.no_printing"
  },
  "protest_status": {
    "created_at": "2019-02-01T16:44:08",
    "enumerator": "not_protested",
    "translation_path": "bank_slip.ProtestStatus.not_protested"
  },
  "rebate_amount": null,
  "registration_institution": {
    "created_at": "2020-03-26T19:36:16",
    "enumerator": "qi_scd",
    "febraban_code": "329",
    "remittance_sequence": 72,
    "settlement_resource_account_key": "3e46d266-4fdb-4fd2-b87a-3e3de366afd4"
  },
  "requester_profile": 1,
  "requester_profile_code": "329-01-0001-0067049",
  "requester_registration_date": "2020-05-15"
}{
  "amount": 3,
  "asset_type": {
    "created_at": "2019-02-01T16:44:11",
    "enumerator": "invoice",
    "translation_path": "bank_slip.AssetType.invoice"
  },
  "automatic_bankruptcy_protest": true,
  "automatic_protest": false,
  "automatic_write_off": false,
  "bank_slip_file": [
    {
      "barcode": "32998827300000003000001010000000000200670490",
      "created_at": "2020-05-19T18:46:41",
      "digitable_line": "32990001031000000000902006704908882730000000300",
      "url": "https://linkparadownload.com/arquivo.pdf"
    }
  ],
  "bank_slip_key": "96b32f1a-c2bd-41a4-b4b1-a169235be68b",
  "bank_slip_status": {
    "created_at": "2019-02-01T16:44:07",
    "enumerator": "accepted",
    "translation_path": "bank_slip.BankSlipStatus.accepted"
  },
  "bank_teller_instructions": "Boleto Teste",
  "beneficiary_account_branch": "0001",
  "beneficiary_account_key": "7cc3b1f7-8015-4073-8471-a3ba57e34975",
  "beneficiary_account_number": "67049",
  "beneficiary_document_number": "12345678905",
  "beneficiary_key": "b91195e3-0cf4-4fed-90cf-7f5bef29c2f0",
  "beneficiary_name": "Greg Brown",
  "billing_account_key": "7cc3b1f7-8015-4073-8471-a3ba57e34975",
  "business_date_expiration": "2020-06-01",
  "created_at": "2020-05-15T21:00:25",
  "days_before_fine": null,
  "days_before_interest": null,
  "days_to_bankruptcy_protest": 1,
  "days_to_protest": null,
  "days_to_write_off": null,
  "discount_limit_date": null,
  "discount_value": null,
  "document_number": "Parcela 1",
  "expenses": [],
  "expiration": "2020-06-01",
  "fine_percentage": 0.1,
  "guarantor_address": null,
  "guarantor_city": null,
  "guarantor_document": null,
  "guarantor_name": null,
  "guarantor_person_type": null,
  "guarantor_postal_code": "00000000",
  "guarantor_state": null,
  "historical_our_number": 2,
  "institution_registration_date": null,
  "interest_daily_value": 0.34,
  "lock_origin_type": null,
  "nfe_key": null,
  "nfe_url": null,
  "occurrences": [
    {
      "created_at": "2020-05-15T21:00:25",
      "discount_amount": null,
      "discount_limit_date": null,
      "iof_amount": null,
      "new_bank_slip_status": null,
      "new_due_date": "2020-06-01",
      "new_protest_status": {
        "created_at": "2019-02-01T16:44:08",
        "enumerator": "not_protested",
        "translation_path": "bank_slip.ProtestStatus.not_protested"
      },
      "notary_office_number": null,
      "notary_office_protocol": null,
      "occurrence_expenses": null,
      "occurrence_feedback": null,
      "occurrence_key": "c3ab3e01-f198-4e7e-9e01-7a8091b8bd72",
      "occurrence_reasons": [],
      "occurrence_type": {
        "created_at": "2019-02-01T16:44:14",
        "enumerator": "registration",
        "translation_path": "bank_slip.OccurrenceType.registration"
      },
      "old_bank_slip_status": {
        "created_at": "2019-02-01T16:44:07",
        "enumerator": "accepted",
        "translation_path": "bank_slip.BankSlipStatus.accepted"
      },
      "old_due_date": null,
      "old_protest_status": null,
      "paid_amount": null,
      "paid_fine_amount": null,
      "paid_interest_amount": null,
      "payment_bank": null,
      "payment_branch": null,
      "payment_credit_date": null,
      "payment_method": null,
      "payment_origin": null,
      "protest_confirmation": null,
      "protest_expenses": null,
      "rebate_amount": null,
      "registration_institution_occurrence_date": "2020-05-15",
      "registration_institution_occurrence_event": [
        {
          "cnab_file": {
            "cnab_key": "abfc9fba-28fb-4e75-afcb-f4647d7031bc",
            "company_code": null,
            "created_at": "2020-05-15T21:00:22",
            "downloads": [],
            "file_size": "None",
            "filename": null,
            "line_length": null,
            "remitter_key": "b91195e3-0cf4-4fed-90cf-7f5bef29c2f0",
            "requester_profile_code": null,
            "type": {
              "created_at": "2019-02-01T16:44:17",
              "enumerator": "api_instruction",
              "translation_path": "bank_slip.CNABFileType.api_instruction"
            },
            "url": null,
            "version": null
          },
          "cnab_file_occurrence_order": 1,
          "created_at": "2020-05-15T21:00:25",
          "new_status": {
            "created_at": "2019-02-01T16:44:15",
            "enumerator": "waiting_submission",
            "translation_path": "bank_slip.RegistrationInstitutionOccurrenceStatus.waiting_submission"
          },
          "old_status": null
        }
      ],
      "registration_institution_occurrence_status": {
        "created_at": "2019-02-01T16:44:15",
        "enumerator": "waiting_submission",
        "translation_path": "bank_slip.RegistrationInstitutionOccurrenceStatus.waiting_submission"
      },
      "requester_occurrence_event": [
        {
          "cnab_file": {
            "cnab_key": "abfc9fba-28fb-4e75-afcb-f4647d7031bc",
            "company_code": null,
            "created_at": "2020-05-15T21:00:22",
            "downloads": [],
            "file_size": "None",
            "filename": null,
            "line_length": null,
            "remitter_key": "b91195e3-0cf4-4fed-90cf-7f5bef29c2f0",
            "requester_profile_code": null,
            "type": {
              "created_at": "2019-02-01T16:44:17",
              "enumerator": "api_instruction",
              "translation_path": "bank_slip.CNABFileType.api_instruction"
            },
            "url": null,
            "version": null
          },
          "cnab_file_occurrence_order": 1,
          "created_at": "2020-05-15T21:00:25",
          "new_status": {
            "created_at": "2019-02-01T16:44:16",
            "enumerator": "accepted",
            "translation_path": "bank_slip.RequesterOccurrenceStatus.accepted"
          },
          "old_status": null
        }
      ],
      "requester_occurrence_status": {
        "created_at": "2019-02-01T16:44:16",
        "enumerator": "accepted",
        "translation_path": "bank_slip.RequesterOccurrenceStatus.accepted"
      }
    }
  ],
  "our_number": 2,
  "paid_amount": null,
  "paid_fine_amount": null,
  "paid_interest_amount": null,
  "participant_control_number": null,
  "payer_account_digit": null,
  "payer_account_number": null,
  "payer_account_type": null,
  "payer_address": "Rua Carlos tampaio, 204",
  "payer_bank": null,
  "payer_branch_digit": null,
  "payer_branch_number": null,
  "payer_document": "41651732825",
  "payer_name": "Beatriz Couto",
  "payer_person_type": {
    "created_at": "2019-02-01T16:44:09",
    "enumerator": "natural",
    "translation_path": "bank_slip.PersonType.natural"
  },
  "payer_postal_code": "00000000",
  "payment_date": null,
  "printing_policy": {
    "created_at": "2019-02-01T16:44:10",
    "enumerator": "no_printing",
    "translation_path": "bank_slip.PrintingPolicy.no_printing"
  },
  "protest_status": {
    "created_at": "2019-02-01T16:44:08",
    "enumerator": "not_protested",
    "translation_path": "bank_slip.ProtestStatus.not_protested"
  },
  "rebate_amount": null,
  "registration_institution": {
    "created_at": "2020-03-26T19:36:16",
    "enumerator": "qi_scd",
    "febraban_code": "329",
    "remittance_sequence": 72,
    "settlement_resource_account_key": "3e46d266-4fdb-4fd2-b87a-3e3de366afd4"
  },
  "requester_profile": 1,
  "requester_profile_code": "329-01-0001-0067049",
  "requester_registration_date": "2020-05-15"
}{
  "amount": 3,
  "asset_type": {
    "created_at": "2019-02-01T16:44:11",
    "enumerator": "invoice",
    "translation_path": "bank_slip.AssetType.invoice"
  },
  "automatic_bankruptcy_protest": true,
  "automatic_protest": false,
  "automatic_write_off": false,
  "bank_slip_file": [
    {
      "barcode": "32998827300000003000001010000000000200670490",
      "created_at": "2020-05-19T18:46:41",
      "digitable_line": "32990001031000000000902006704908882730000000300",
      "url": "https://linkparadownload.com/arquivo.pdf"
    }
  ],
  "bank_slip_key": "96b32f1a-c2bd-41a4-b4b1-a169235be68b",
  "bank_slip_status": {
    "created_at": "2019-02-01T16:44:07",
    "enumerator": "accepted",
    "translation_path": "bank_slip.BankSlipStatus.accepted"
  },
  "bank_teller_instructions": "Boleto Teste",
  "beneficiary_account_branch": "0001",
  "beneficiary_account_key": "7cc3b1f7-8015-4073-8471-a3ba57e34975",
  "beneficiary_account_number": "67049",
  "beneficiary_document_number": "12345678905",
  "beneficiary_key": "b91195e3-0cf4-4fed-90cf-7f5bef29c2f0",
  "beneficiary_name": "Greg Brown",
  "billing_account_key": "7cc3b1f7-8015-4073-8471-a3ba57e34975",
  "business_date_expiration": "2020-06-01",
  "created_at": "2020-05-15T21:00:25",
  "days_before_fine": null,
  "days_before_interest": null,
  "days_to_bankruptcy_protest": 1,
  "days_to_protest": null,
  "days_to_write_off": null,
  "discount_limit_date": null,
  "discount_value": null,
  "document_number": "Parcela 1",
  "expenses": [],
  "expiration": "2020-06-01",
  "fine_percentage": 0.1,
  "guarantor_address": null,
  "guarantor_city": null,
  "guarantor_document": null,
  "guarantor_name": null,
  "guarantor_person_type": null,
  "guarantor_postal_code": "00000000",
  "guarantor_state": null,
  "historical_our_number": 2,
  "institution_registration_date": null,
  "interest_daily_value": 0.34,
  "lock_origin_type": null,
  "nfe_key": null,
  "nfe_url": null,
  "occurrences": [
    {
      "created_at": "2020-05-15T21:00:25",
      "discount_amount": null,
      "discount_limit_date": null,
      "iof_amount": null,
      "new_bank_slip_status": null,
      "new_due_date": "2020-06-01",
      "new_protest_status": {
        "created_at": "2019-02-01T16:44:08",
        "enumerator": "not_protested",
        "translation_path": "bank_slip.ProtestStatus.not_protested"
      },
      "notary_office_number": null,
      "notary_office_protocol": null,
      "occurrence_expenses": null,
      "occurrence_feedback": null,
      "occurrence_key": "c3ab3e01-f198-4e7e-9e01-7a8091b8bd72",
      "occurrence_reasons": [],
      "occurrence_type": {
        "created_at": "2019-02-01T16:44:14",
        "enumerator": "registration",
        "translation_path": "bank_slip.OccurrenceType.registration"
      },
      "old_bank_slip_status": {
        "created_at": "2019-02-01T16:44:07",
        "enumerator": "accepted",
        "translation_path": "bank_slip.BankSlipStatus.accepted"
      },
      "old_due_date": null,
      "old_protest_status": null,
      "paid_amount": null,
      "paid_fine_amount": null,
      "paid_interest_amount": null,
      "payment_bank": null,
      "payment_branch": null,
      "payment_credit_date": null,
      "payment_method": null,
      "payment_origin": null,
      "protest_confirmation": null,
      "protest_expenses": null,
      "rebate_amount": null,
      "registration_institution_occurrence_date": "2020-05-15",
      "registration_institution_occurrence_event": [
        {
          "cnab_file": {
            "cnab_key": "abfc9fba-28fb-4e75-afcb-f4647d7031bc",
            "company_code": null,
            "created_at": "2020-05-15T21:00:22",
            "downloads": [],
            "file_size": "None",
            "filename": null,
            "line_length": null,
            "remitter_key": "b91195e3-0cf4-4fed-90cf-7f5bef29c2f0",
            "requester_profile_code": null,
            "type": {
              "created_at": "2019-02-01T16:44:17",
              "enumerator": "api_instruction",
              "translation_path": "bank_slip.CNABFileType.api_instruction"
            },
            "url": null,
            "version": null
          },
          "cnab_file_occurrence_order": 1,
          "created_at": "2020-05-15T21:00:25",
          "new_status": {
            "created_at": "2019-02-01T16:44:15",
            "enumerator": "waiting_submission",
            "translation_path": "bank_slip.RegistrationInstitutionOccurrenceStatus.waiting_submission"
          },
          "old_status": null
        }
      ],
      "registration_institution_occurrence_status": {
        "created_at": "2019-02-01T16:44:15",
        "enumerator": "waiting_submission",
        "translation_path": "bank_slip.RegistrationInstitutionOccurrenceStatus.waiting_submission"
      },
      "requester_occurrence_event": [
        {
          "cnab_file": {
            "cnab_key": "abfc9fba-28fb-4e75-afcb-f4647d7031bc",
            "company_code": null,
            "created_at": "2020-05-15T21:00:22",
            "downloads": [],
            "file_size": "None",
            "filename": null,
            "line_length": null,
            "remitter_key": "b91195e3-0cf4-4fed-90cf-7f5bef29c2f0",
            "requester_profile_code": null,
            "type": {
              "created_at": "2019-02-01T16:44:17",
              "enumerator": "api_instruction",
              "translation_path": "bank_slip.CNABFileType.api_instruction"
            },
            "url": null,
            "version": null
          },
          "cnab_file_occurrence_order": 1,
          "created_at": "2020-05-15T21:00:25",
          "new_status": {
            "created_at": "2019-02-01T16:44:16",
            "enumerator": "accepted",
            "translation_path": "bank_slip.RequesterOccurrenceStatus.accepted"
          },
          "old_status": null
        }
      ],
      "requester_occurrence_status": {
        "created_at": "2019-02-01T16:44:16",
        "enumerator": "accepted",
        "translation_path": "bank_slip.RequesterOccurrenceStatus.accepted"
      }
    }
  ],
  "our_number": 2,
  "paid_amount": null,
  "paid_fine_amount": null,
  "paid_interest_amount": null,
  "participant_control_number": null,
  "payer_account_digit": null,
  "payer_account_number": null,
  "payer_account_type": null,
  "payer_address": "Rua Carlos tampaio, 204",
  "payer_bank": null,
  "payer_branch_digit": null,
  "payer_branch_number": null,
  "payer_document": "41651732825",
  "payer_name": "Beatriz Couto",
  "payer_person_type": {
    "created_at": "2019-02-01T16:44:09",
    "enumerator": "natural",
    "translation_path": "bank_slip.PersonType.natural"
  },
  "payer_postal_code": "00000000",
  "payment_date": null,
  "printing_policy": {
    "created_at": "2019-02-01T16:44:10",
    "enumerator": "no_printing",
    "translation_path": "bank_slip.PrintingPolicy.no_printing"
  },
  "protest_status": {
    "created_at": "2019-02-01T16:44:08",
    "enumerator": "not_protested",
    "translation_path": "bank_slip.ProtestStatus.not_protested"
  },
  "rebate_amount": null,
  "registration_institution": {
    "created_at": "2020-03-26T19:36:16",
    "enumerator": "qi_scd",
    "febraban_code": "329",
    "remittance_sequence": 72,
    "settlement_resource_account_key": "3e46d266-4fdb-4fd2-b87a-3e3de366afd4"
  },
  "requester_profile": 1,
  "requester_profile_code": "329-01-0001-0067049",
  "requester_registration_date": "2020-05-15"
}{
  "amount": 3,
  "asset_type": {
    "created_at": "2019-02-01T16:44:11",
    "enumerator": "invoice",
    "translation_path": "bank_slip.AssetType.invoice"
  },
  "automatic_bankruptcy_protest": true,
  "automatic_protest": false,
  "automatic_write_off": false,
  "bank_slip_file": [
    {
      "barcode": "32998827300000003000001010000000000200670490",
      "created_at": "2020-05-19T18:46:41",
      "digitable_line": "32990001031000000000902006704908882730000000300",
      "url": "https://linkparadownload.com/arquivo.pdf"
    }
  ],
  "bank_slip_key": "96b32f1a-c2bd-41a4-b4b1-a169235be68b",
  "bank_slip_status": {
    "created_at": "2019-02-01T16:44:07",
    "enumerator": "accepted",
    "translation_path": "bank_slip.BankSlipStatus.accepted"
  },
  "bank_teller_instructions": "Boleto Teste",
  "beneficiary_account_branch": "0001",
  "beneficiary_account_key": "7cc3b1f7-8015-4073-8471-a3ba57e34975",
  "beneficiary_account_number": "67049",
  "beneficiary_document_number": "12345678905",
  "beneficiary_key": "b91195e3-0cf4-4fed-90cf-7f5bef29c2f0",
  "beneficiary_name": "Greg Brown",
  "billing_account_key": "7cc3b1f7-8015-4073-8471-a3ba57e34975",
  "business_date_expiration": "2020-06-01",
  "created_at": "2020-05-15T21:00:25",
  "days_before_fine": null,
  "days_before_interest": null,
  "days_to_bankruptcy_protest": 1,
  "days_to_protest": null,
  "days_to_write_off": null,
  "discount_limit_date": null,
  "discount_value": null,
  "document_number": "Parcela 1",
  "expenses": [],
  "expiration": "2020-06-01",
  "fine_percentage": 0.1,
  "guarantor_address": null,
  "guarantor_city": null,
  "guarantor_document": null,
  "guarantor_name": null,
  "guarantor_person_type": null,
  "guarantor_postal_code": "00000000",
  "guarantor_state": null,
  "historical_our_number": 2,
  "institution_registration_date": null,
  "interest_daily_value": 0.34,
  "lock_origin_type": null,
  "nfe_key": null,
  "nfe_url": null,
  "occurrences": [
    {
      "created_at": "2020-05-15T21:00:25",
      "discount_amount": null,
      "discount_limit_date": null,
      "iof_amount": null,
      "new_bank_slip_status": null,
      "new_due_date": "2020-06-01",
      "new_protest_status": {
        "created_at": "2019-02-01T16:44:08",
        "enumerator": "not_protested",
        "translation_path": "bank_slip.ProtestStatus.not_protested"
      },
      "notary_office_number": null,
      "notary_office_protocol": null,
      "occurrence_expenses": null,
      "occurrence_feedback": null,
      "occurrence_key": "c3ab3e01-f198-4e7e-9e01-7a8091b8bd72",
      "occurrence_reasons": [],
      "occurrence_type": {
        "created_at": "2019-02-01T16:44:14",
        "enumerator": "registration",
        "translation_path": "bank_slip.OccurrenceType.registration"
      },
      "old_bank_slip_status": {
        "created_at": "2019-02-01T16:44:07",
        "enumerator": "accepted",
        "translation_path": "bank_slip.BankSlipStatus.accepted"
      },
      "old_due_date": null,
      "old_protest_status": null,
      "paid_amount": null,
      "paid_fine_amount": null,
      "paid_interest_amount": null,
      "payment_bank": null,
      "payment_branch": null,
      "payment_credit_date": null,
      "payment_method": null,
      "payment_origin": null,
      "protest_confirmation": null,
      "protest_expenses": null,
      "rebate_amount": null,
      "registration_institution_occurrence_date": "2020-05-15",
      "registration_institution_occurrence_event": [
        {
          "cnab_file": {
            "cnab_key": "abfc9fba-28fb-4e75-afcb-f4647d7031bc",
            "company_code": null,
            "created_at": "2020-05-15T21:00:22",
            "downloads": [],
            "file_size": "None",
            "filename": null,
            "line_length": null,
            "remitter_key": "b91195e3-0cf4-4fed-90cf-7f5bef29c2f0",
            "requester_profile_code": null,
            "type": {
              "created_at": "2019-02-01T16:44:17",
              "enumerator": "api_instruction",
              "translation_path": "bank_slip.CNABFileType.api_instruction"
            },
            "url": null,
            "version": null
          },
          "cnab_file_occurrence_order": 1,
          "created_at": "2020-05-15T21:00:25",
          "new_status": {
            "created_at": "2019-02-01T16:44:15",
            "enumerator": "waiting_submission",
            "translation_path": "bank_slip.RegistrationInstitutionOccurrenceStatus.waiting_submission"
          },
          "old_status": null
        }
      ],
      "registration_institution_occurrence_status": {
        "created_at": "2019-02-01T16:44:15",
        "enumerator": "waiting_submission",
        "translation_path": "bank_slip.RegistrationInstitutionOccurrenceStatus.waiting_submission"
      },
      "requester_occurrence_event": [
        {
          "cnab_file": {
            "cnab_key": "abfc9fba-28fb-4e75-afcb-f4647d7031bc",
            "company_code": null,
            "created_at": "2020-05-15T21:00:22",
            "downloads": [],
            "file_size": "None",
            "filename": null,
            "line_length": null,
            "remitter_key": "b91195e3-0cf4-4fed-90cf-7f5bef29c2f0",
            "requester_profile_code": null,
            "type": {
              "created_at": "2019-02-01T16:44:17",
              "enumerator": "api_instruction",
              "translation_path": "bank_slip.CNABFileType.api_instruction"
            },
            "url": null,
            "version": null
          },
          "cnab_file_occurrence_order": 1,
          "created_at": "2020-05-15T21:00:25",
          "new_status": {
            "created_at": "2019-02-01T16:44:16",
            "enumerator": "accepted",
            "translation_path": "bank_slip.RequesterOccurrenceStatus.accepted"
          },
          "old_status": null
        }
      ],
      "requester_occurrence_status": {
        "created_at": "2019-02-01T16:44:16",
        "enumerator": "accepted",
        "translation_path": "bank_slip.RequesterOccurrenceStatus.accepted"
      }
    }
  ],
  "our_number": 2,
  "paid_amount": null,
  "paid_fine_amount": null,
  "paid_interest_amount": null,
  "participant_control_number": null,
  "payer_account_digit": null,
  "payer_account_number": null,
  "payer_account_type": null,
  "payer_address": "Rua Carlos tampaio, 204",
  "payer_bank": null,
  "payer_branch_digit": null,
  "payer_branch_number": null,
  "payer_document": "41651732825",
  "payer_name": "Beatriz Couto",
  "payer_person_type": {
    "created_at": "2019-02-01T16:44:09",
    "enumerator": "natural",
    "translation_path": "bank_slip.PersonType.natural"
  },
  "payer_postal_code": "00000000",
  "payment_date": null,
  "printing_policy": {
    "created_at": "2019-02-01T16:44:10",
    "enumerator": "no_printing",
    "translation_path": "bank_slip.PrintingPolicy.no_printing"
  },
  "protest_status": {
    "created_at": "2019-02-01T16:44:08",
    "enumerator": "not_protested",
    "translation_path": "bank_slip.ProtestStatus.not_protested"
  },
  "rebate_amount": null,
  "registration_institution": {
    "created_at": "2020-03-26T19:36:16",
    "enumerator": "qi_scd",
    "febraban_code": "329",
    "remittance_sequence": 72,
    "settlement_resource_account_key": "3e46d266-4fdb-4fd2-b87a-3e3de366afd4"
  },
  "requester_profile": 1,
  "requester_profile_code": "329-01-0001-0067049",
  "requester_registration_date": "2020-05-15"
}{
  "amount": 3,
  "asset_type": {
    "created_at": "2019-02-01T16:44:11",
    "enumerator": "invoice",
    "translation_path": "bank_slip.AssetType.invoice"
  },
  "automatic_bankruptcy_protest": true,
  "automatic_protest": false,
  "automatic_write_off": false,
  "bank_slip_file": [
    {
      "barcode": "32998827300000003000001010000000000200670490",
      "created_at": "2020-05-19T18:46:41",
      "digitable_line": "32990001031000000000902006704908882730000000300",
      "url": "https://linkparadownload.com/arquivo.pdf"
    }
  ],
  "bank_slip_key": "96b32f1a-c2bd-41a4-b4b1-a169235be68b",
  "bank_slip_status": {
    "created_at": "2019-02-01T16:44:07",
    "enumerator": "accepted",
    "translation_path": "bank_slip.BankSlipStatus.accepted"
  },
  "bank_teller_instructions": "Boleto Teste",
  "beneficiary_account_branch": "0001",
  "beneficiary_account_key": "7cc3b1f7-8015-4073-8471-a3ba57e34975",
  "beneficiary_account_number": "67049",
  "beneficiary_document_number": "12345678905",
  "beneficiary_key": "b91195e3-0cf4-4fed-90cf-7f5bef29c2f0",
  "beneficiary_name": "Greg Brown",
  "billing_account_key": "7cc3b1f7-8015-4073-8471-a3ba57e34975",
  "business_date_expiration": "2020-06-01",
  "created_at": "2020-05-15T21:00:25",
  "days_before_fine": null,
  "days_before_interest": null,
  "days_to_bankruptcy_protest": 1,
  "days_to_protest": null,
  "days_to_write_off": null,
  "discount_limit_date": null,
  "discount_value": null,
  "document_number": "Parcela 1",
  "expenses": [],
  "expiration": "2020-06-01",
  "fine_percentage": 0.1,
  "guarantor_address": null,
  "guarantor_city": null,
  "guarantor_document": null,
  "guarantor_name": null,
  "guarantor_person_type": null,
  "guarantor_postal_code": "00000000",
  "guarantor_state": null,
  "historical_our_number": 2,
  "institution_registration_date": null,
  "interest_daily_value": 0.34,
  "lock_origin_type": null,
  "nfe_key": null,
  "nfe_url": null,
  "occurrences": [
    {
      "created_at": "2020-05-15T21:00:25",
      "discount_amount": null,
      "discount_limit_date": null,
      "iof_amount": null,
      "new_bank_slip_status": null,
      "new_due_date": "2020-06-01",
      "new_protest_status": {
        "created_at": "2019-02-01T16:44:08",
        "enumerator": "not_protested",
        "translation_path": "bank_slip.ProtestStatus.not_protested"
      },
      "notary_office_number": null,
      "notary_office_protocol": null,
      "occurrence_expenses": null,
      "occurrence_feedback": null,
      "occurrence_key": "c3ab3e01-f198-4e7e-9e01-7a8091b8bd72",
      "occurrence_reasons": [],
      "occurrence_type": {
        "created_at": "2019-02-01T16:44:14",
        "enumerator": "registration",
        "translation_path": "bank_slip.OccurrenceType.registration"
      },
      "old_bank_slip_status": {
        "created_at": "2019-02-01T16:44:07",
        "enumerator": "accepted",
        "translation_path": "bank_slip.BankSlipStatus.accepted"
      },
      "old_due_date": null,
      "old_protest_status": null,
      "paid_amount": null,
      "paid_fine_amount": null,
      "paid_interest_amount": null,
      "payment_bank": null,
      "payment_branch": null,
      "payment_credit_date": null,
      "payment_method": null,
      "payment_origin": null,
      "protest_confirmation": null,
      "protest_expenses": null,
      "rebate_amount": null,
      "registration_institution_occurrence_date": "2020-05-15",
      "registration_institution_occurrence_event": [
        {
          "cnab_file": {
            "cnab_key": "abfc9fba-28fb-4e75-afcb-f4647d7031bc",
            "company_code": null,
            "created_at": "2020-05-15T21:00:22",
            "downloads": [],
            "file_size": "None",
            "filename": null,
            "line_length": null,
            "remitter_key": "b91195e3-0cf4-4fed-90cf-7f5bef29c2f0",
            "requester_profile_code": null,
            "type": {
              "created_at": "2019-02-01T16:44:17",
              "enumerator": "api_instruction",
              "translation_path": "bank_slip.CNABFileType.api_instruction"
            },
            "url": null,
            "version": null
          },
          "cnab_file_occurrence_order": 1,
          "created_at": "2020-05-15T21:00:25",
          "new_status": {
            "created_at": "2019-02-01T16:44:15",
            "enumerator": "waiting_submission",
            "translation_path": "bank_slip.RegistrationInstitutionOccurrenceStatus.waiting_submission"
          },
          "old_status": null
        }
      ],
      "registration_institution_occurrence_status": {
        "created_at": "2019-02-01T16:44:15",
        "enumerator": "waiting_submission",
        "translation_path": "bank_slip.RegistrationInstitutionOccurrenceStatus.waiting_submission"
      },
      "requester_occurrence_event": [
        {
          "cnab_file": {
            "cnab_key": "abfc9fba-28fb-4e75-afcb-f4647d7031bc",
            "company_code": null,
            "created_at": "2020-05-15T21:00:22",
            "downloads": [],
            "file_size": "None",
            "filename": null,
            "line_length": null,
            "remitter_key": "b91195e3-0cf4-4fed-90cf-7f5bef29c2f0",
            "requester_profile_code": null,
            "type": {
              "created_at": "2019-02-01T16:44:17",
              "enumerator": "api_instruction",
              "translation_path": "bank_slip.CNABFileType.api_instruction"
            },
            "url": null,
            "version": null
          },
          "cnab_file_occurrence_order": 1,
          "created_at": "2020-05-15T21:00:25",
          "new_status": {
            "created_at": "2019-02-01T16:44:16",
            "enumerator": "accepted",
            "translation_path": "bank_slip.RequesterOccurrenceStatus.accepted"
          },
          "old_status": null
        }
      ],
      "requester_occurrence_status": {
        "created_at": "2019-02-01T16:44:16",
        "enumerator": "accepted",
        "translation_path": "bank_slip.RequesterOccurrenceStatus.accepted"
      }
    }
  ],
  "our_number": 2,
  "paid_amount": null,
  "paid_fine_amount": null,
  "paid_interest_amount": null,
  "participant_control_number": null,
  "payer_account_digit": null,
  "payer_account_number": null,
  "payer_account_type": null,
  "payer_address": "Rua Carlos tampaio, 204",
  "payer_bank": null,
  "payer_branch_digit": null,
  "payer_branch_number": null,
  "payer_document": "41651732825",
  "payer_name": "Beatriz Couto",
  "payer_person_type": {
    "created_at": "2019-02-01T16:44:09",
    "enumerator": "natural",
    "translation_path": "bank_slip.PersonType.natural"
  },
  "payer_postal_code": "00000000",
  "payment_date": null,
  "printing_policy": {
    "created_at": "2019-02-01T16:44:10",
    "enumerator": "no_printing",
    "translation_path": "bank_slip.PrintingPolicy.no_printing"
  },
  "protest_status": {
    "created_at": "2019-02-01T16:44:08",
    "enumerator": "not_protested",
    "translation_path": "bank_slip.ProtestStatus.not_protested"
  },
  "rebate_amount": null,
  "registration_institution": {
    "created_at": "2020-03-26T19:36:16",
    "enumerator": "qi_scd",
    "febraban_code": "329",
    "remittance_sequence": 72,
    "settlement_resource_account_key": "3e46d266-4fdb-4fd2-b87a-3e3de366afd4"
  },
  "requester_profile": 1,
  "requester_profile_code": "329-01-0001-0067049",
  "requester_registration_date": "2020-05-15"
}
```

STATUS 400

Response Body

```json
{
    {"title": "Bad Request", "description": "Invalid request body.", "translation": "Corpo da requisição inválido.", "extra_fields": {}, "code": "LEG000069"}
    
}
```

---

# Emissão de boleto único (instantânea)

URL: /documentation/boletos/emissao/emissao_boleto_unico_instantanea

:::danger Importante
Para registrar bolePix, é necessário que exista uma chave Pix aleatória ativa na conta em que os boletos serão registrados.
:::

No caso do registro de boleto único de forma instantânea, a resposta da requisição de criação (resposta síncrona) já retorna o boleto registrado (ou não, para casos de rejeição). O tempo de confirmação/rejeição da Nuclea/CIP, a respeito do registro do boleto, está incluso no tempo de resposta desse endpoint.

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /bank_slip/instant
MÉTODO POST

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |

Request Body

```json
{
  "request_control_key": "0d496b4d-01f6-48cd-8ec9-9ead1e43f156",
  "our_number": 123456789,
  "document_number": "DOC4561237",
  "amount": 5000.00,
  "expiration": "2025-01-01",
  "bank_teller_instructions": "Confirm payment",
  "protest_data": {"days_to_protest": 7},
  "bankruptcy_protest_data": {"days_to_bankruptcy_protest": 14},
  "max_payment_days": 45,
  "fine_data": {"fine_type": "absolute", "fine_amount": 100.00, "days_to_fine": 10},
  "interest_data": {
    "interest_type": "workdays_daily_amount",
    "interest_amount": 10.00,
    "days_to_interest": 2,
  },
  "financial_instrument_type": "digital_commercial_invoice",
  "write_off_data": {"days_to_write_off": 365},
  "rebate_amount": 200.00,
  "discounts_data": [
    {
      "discount_amount": 50.00,
      "discount_number": 1,
      "discount_type": "absolute",
      "discount_limit_date": "2024-12-01",
    }
  ],
  "payer_data": {
    "name": "Global Tech",
    "contact": {
      "email": "finance@globaltech.com",
      "phone": {"country_code": "055", "area_code": "11", "number": "987654321"},
    },
    "address": {
      "street": "101 High St.",
      "neighborhood": "Tech Park",
      "number": "202",
      "postal_code": "01001000",
      "city": "Innovation City",
      "state": "SP",
      "complement": "Building A",
    },
    "document_number": "12345678000195",
    "person_type": "legal",
  },
  "guarantor_data": {
    "name": "Jane Doe",
    "contact": {
      "email": "jane.doe@qitech.com.br",
      "phone": {"country_code": "055", "area_code": "11", "number": "999999999"},
    },
    "address": {
      "street": "202 Elm St.",
      "neighborhood": "Quiet Neighborhood",
      "number": "303",
      "postal_code": "01001000",
      "city": "Peaceful Town",
      "state": "RJ",
      "complement": "House 1",
    },
    "document_number": "23456789012",
    "person_type": "natural",
  },
  "pix_key": "06797774-e050-419e-a91a-c64c919b52c7",
  "notification": {
    "document_number": "12345678000195",
    "name": "Global Tech",
    "email": "finance@globaltech.com",
    "phone": {"country_code": "055", "area_code": "11", "number": "987654321"},
    "send_2_way": true,
    "send_before_due_date": false,
    "send_after_due_date": false,
    "send_on_protest": false
  }
}
```

 
### Request Body Params

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------|
| `request_control_key` *    | uuidv4  | Chave única de identificação da request utilizada pelo cliente no formato uuid v4  | 36                                                |
| `our_number`              | integer | Número único de identificação do boleto junto à carteira. Pode ser enviado pelo cliente e, caso não seja, a QI Tech irá gerar um                           | 11                                                |
| `document_number`          | string  | Número de identificação do boleto. Pode ser o número da nota fiscal eletrônica     | 10                                                |
| `participant_control_number` | string | Nº Controle do Participante                                                       |
25                                                |
| `amount` *                 | float   | Valor base do boleto                                                               | -                                                 |
| `expiration` *             | string  | Data de vencimento                                                                 | 10                                                |
| `bank_teller_instructions` | string  | Observações ao pagador do boleto. Aceita no máximo 320 caracteres, distribuídos em até 7 linhas. Cada linha pode conter no máximo 90 caracteres. Caso uma linha ultrapasse 90 caracteres, o texto será automaticamente quebrado em uma nova linha | 320                                               |
| `rebate_amount`            | float   | Valor de abatimento do boleto, que será aplicado em cima do valor base             | -                                                 |
| `max_payment_days`         | integer | Máximo de dias corridos que o boleto ficará disponível para pagamento, após o vencimento (pode ser no máximo 365) | -          |
| `financial_instrument_type`   | string  | Tipo de espécie do boleto | **[Enumeradores financial_instrument_type](#enumeradores-financial_instrument_type)** |
| `partial_payment_data`    | object  | Configurações de pagamento parcial                      | **[Objeto partial_payment_data](#objeto-partial_payment_data)** |
| `write_off_data`       | object  | Configuração de baixa      | **[Objeto write_off_data](#objeto-write_off_settings)** |
| `protest_data`         | object  | Configuração de protesto       | **[Objeto protest_data](#objeto-protest_settings)** |
| `bankruptcy_protest_data` | object  | Configuração de protesto falimentar | **[Objeto bankruptcy_protest_data](#objeto-bankruptcy_protest_settings)** |
| `fine_data`            | object  | Configuração de multa                 | **[Objeto fine_data](#objeto-fine_settings)** |
| `interest_data`        | object  | Configuração de juros        | **[Objeto interest_data](#objeto-interest_settings)** |
| `discounts_data`           | object array | Descontos           | **[Objeto discount](#objeto-discounts_data)** |
| `payer_data` *             | object  | Dados do pagador                                                                   | **[Objeto payer_data](#objetos-payer_data-e-guarantor_data)** |
| `guarantor_data`           | object  | Dados do sacador avalista                                                          | **[Objeto guarantor_data](#objetos-payer_data-e-guarantor_data)** |
| `pix_key`                  | uuidv4  | Chave pix do tipo aleatória                                                        | 36                                                |

:::info BolePix
Caso o parâmetro `pix_key`, opcional, seja enviado na request, será gerado um bolePix. BolePix é um boleto cujo pagamento é vinculado a um QR Code Pix. Sendo assim, o pagador pode realizar o pagamento do boleto tanto utilizando a linha digitável do mesmo, quanto através da leitura do QR Code Pix vinculado. Caso o pagamento seja feito via QR Code, a liquidação financeira se dá instantaneamente, enquanto os retornos bancários e webhooks envolvidos na liquidação serão gerados assim como é feito para um boleto comum.

Importante: para registrar um bolePix, é necessário que exista uma chave Pix aleatória ativa na conta em que boleto será registrado.
:::

:::tip Configurações Padrão da Carteira
Caso cada um dos campos `max_payment_days`, `write_off_data`, `protest_data`, `bankruptcy_protest_data`, `fine_data`, `interest_data` e `pix_key` não sejam enviados na request e a carteira possua configurações padrão (i.e. `max_payment_days`, `write_off_settings`, `protest_settings`, `bankruptcy_protest_settings`, `fine_settings`, `interest_settings` e `qr_code_settings`, respectivamente, no `configuration_data` do `requester_profile`), serão utilizadas tais configurações padrão para a emissão do título.
:::

:::caution Limitações e Restrições
- **Boletos de Pagamento Parcial:** Não é permitido o pagamento via QR Code Pix. Portanto, não é permitido enviar a `pix_key` no registro, nem ter uma configuração padrão de geração de bolePix para a carteira.

- **Boletos de Cartão de Crédito:** Não é necessário nem permitido enviar informações rebate, desconto, multa e juros. Isso se deve ao padrão do mercado, onde muitas Instituições Financeiras não aceitam o pagamento de boletos de cartão de crédito que contenham essas informações. A carteira também não pode ter essas configurações definidas como padrão. Sendo assim boletos desse tipo podem ser pagos parcialmente mesmo após o vencimento, sem incidência de juros, multas, descontos ou abatimentos na fatura corrente. Para aplicar esses valores é necessário incluí-los na próxima fatura, seja através da [ocorrência de edição de valor](/documentation/boletos/instrucoes/valor) do boleto ou emitindo um novo boleto que inclua esses valores. É possível enviar `amount = 0` para boletos deste tipo.

**Importante:** Boletos do tipo `credit_card` são obrigatoriamente de pagamento parcial, sendo assim é necessário fornecer as informações de `partial_payment_data` ou ter essa configuração padrão na carteira. Caso o campo `financial_instrument_type` não seja enviado, o valor padrão será `digital_commercial_invoice`.
:::

:::tip Recomendações de Carteiras
- **Carteira para Boletos Padrão:** Mantenha as configurações padrão para multas, juros e protesto
- **Carteira para Boletos de Pagamento Parcial:** Sem configuração de Pix e com regras específicas para pagamento parcial
- **Carteira para Boletos de Cartão de Crédito:** Sem configurações de multa, juros, desconto ou rebate

Criar carteiras específicas garante que as configurações padrão sejam adequadas para cada tipo de boleto e evita conflitos nas regras de negócio.
:::

:::info Máquina de Estados
A máquina de status para boletos de pagamento parcial possui algumas diferenças. Para mais detalhes, consulte a [introdução](/documentation/boletos/introducao) , onde há uma explicação sobre como aplicar a incidência de juros e multas no boleto seguindo as boas práticas do mercado.
:::

### Enumeradores financial_instrument_type

| Enumerador  | Descrição                        |
|-------------|----------------------------------|
| digital_commercial_invoice | DMI Duplicata Mercantil Indicação |
| credit_card | Cartão de Crédito |
| check | CH Cheque |
| digital_commercial | DM Duplicata Mercantil |
| digital_service_invoice | Duplicata de Serviço |
| digital_service_invoice_indication | DSI Duplicata de Serviço Indicação |
| digital_rural_invoice | DR Duplicata Rural |
| bill_of_exchange | LC Letra de Câmbio |
| commercial_credit_note | NCC Nota de Crédito Comercial |
| export_credit_note | NCE Nota de Crédito Exportação |
| industrial_credit_note | NCI Nota de Crédito Industrial |
| rural_credit_note | NCR Nota de Crédito Rural |
| promissory_note | NP Nota Promissória |
| rural_promissory_note | NPR Nota Promissória Rural |
| mercantile_triplicate | TM Triplicata Mercantil |
| service_triplicate | TS Triplicata de Serviço |
| insurance_note | NS Nota de Seguro |
| receipt | RC Recibo |
| printed_bank_slip | FAT Bloqueto |
| debit_note | ND Nota de Débito |
| insurance_policy | AP Apólice de Seguro |
| school_monthly_fee | ME Mensalidade Escolar |
| consortium_installment | PC Parcela de Consórcio |
| invoice | NF Nota Fiscal |
| debt_document | DD Documento de Dívida |
| rural_product_certificate | Cédula de Produto Rural |
| warrant | Warrant |
| state_active_debt | Dívida Ativa de Estado |
| municipal_active_debt | Dívida Ativa de Município |
| federal_active_debt | Dívida Ativa da União |
| condominium_charges | Encargos condominiais |
| proposal_bank_slip | Boleto proposta |
| deposit_and_contribution_bank_slip | Boleto de Depósito e Aporte |
| others | Outros |

### Objeto partial_payment_data

| Campo                             | Tipo    | Descrição                                                                 | Caracteres |
|-----------------------------------|---------|---------------------------------------------------------------------------|------------|
| `partial_payment_minimum_type` *  | string  | Tipo de valor mínimo para pagamento parcial                               | **[Enumeradores partial_payment_type](#enumeradores-partial_payment_type)** |
| `partial_payment_minimum_percentage` | float | Percentual mínimo permitido para o pagamento parcial                      | -          |
| `partial_payment_minimum_amount`  | float  | Valor mínimo permitido para o pagamento parcial                           | -          |
| `partial_payment_maximum_type`    | string  | Tipo de valor máximo para pagamento parcial                               | **[Enumeradores partial_payment_type](#enumeradores-partial_payment_type)** |
| `partial_payment_maximum_percentage` | float | Percentual máximo permitido para o pagamento parcial                      | -          |
| `partial_payment_maximum_amount`  | float  | Valor máximo permitido para o pagamento parcial                           | -          |
| `partial_payment_quantity` *      | integer | Quantidade de pagamentos parciais permitidos                              | -          |

:::caution Atenção!
De acordo com o valor enviado nos campos `partial_payment_minimum_type` e `partial_payment_maximum_type`, é necessário enviar o `partial_payment_minimum_amount` ou `partial_payment_minimum_percentage`, e o `partial_payment_maximum_amount` ou `partial_payment_maximum_percentage` correspondente.
:::

### Enumeradores partial_payment_type

| Enumerador  | Descrição                        |
|-------------|----------------------------------|
| absolute    | Valor absoluto                   |
| percentage  | Percentual                       |

### Objeto write_off_data

| Campo                     | Tipo    | Descrição                                                                   | Caracteres |
|---------------------------|---------|-----------------------------------------------------------------------------|------------|
| `days_to_write_off` *     | integer | Dias, após o vencimento, para que o boleto seja baixado automaticamente     | -          |

### Objeto protest_data

| Campo                     | Tipo    | Descrição                                                                   | Caracteres |
|---------------------------|---------|-----------------------------------------------------------------------------|------------|
| `days_to_protest` *       | integer | Dias, após o vencimento, para que o boleto seja protestado automaticamente  | -          |

### Objeto bankruptcy_protest_data

| Campo                          | Tipo    | Descrição                                                                   | Caracteres  |
|--------------------------------|---------|-----------------------------------------------------------------------------|------------|
| `days_to_bankruptcy_protest` * | integer | Dias, após o vencimento, para que o boleto seja protestado automaticamente  | -           |

### Objeto fine_data

Opção 1: multa em valor absoluto (`fine_type=absolute`)

| Campo                     | Tipo    | Descrição                                               | Caracteres                |
|---------------------------|---------|---------------------------------------------------------|-------------------------------------------------------------------------|
| `fine_type` *             | string  | Tipo da multa                                                       | **[Enumeradores fine_type](#enumeradores-fine_type)**                                              |
| `fine_amount` *           | float   | Valor absoluto da multa                                             | -                                                                        |
| `days_to_fine` *          | integer | Dias, após o vencimento, para que a multa seja cobrada              | -                                                                        |

Opção 2: multa em valor percentual (`fine_type=percentage`)

| Campo                     | Tipo    | Descrição                                                 | Caracteres                             |
|---------------------------|---------|-----------------------------------------------------------|---------------------------------------|
| `fine_type` *             | string  | Tipo da multa                                             | **[Enumeradores fine_type](#enumeradores-fine_type)** |
| `fine_percentage` *       | integer | Valor percentual da multa, de 1 a 100                     | -                                      |
| `days_to_fine` *          | integer | Dias, após o vencimento, para que a multa seja cobrada    | -                                      |

### Enumeradores fine_type

| Enumerador         | Descrição             |
|--------------------|-----------------------|
| absolute           | valor absoluto        |
| percentage         | valor percentual      |

### Objeto interest_data

Opção 1: juros utilizando valores absolutos (`interest_type=calendar_days_daily_amount` ou `interest_type=workdays_daily_amount`)

| Campo                     | Tipo    | Descrição                                                                     | Caracteres                                                                                      |
|---------------------------|---------|-------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|
| `interest_type` *         | string  | Tipo de juros       | **[Enumeradores interest_type](#enumeradores-interest_type)** |
| `interest_amount` *       | float   | Valor a ser cobrado por unidade de tempo determinada (dias úteis ou corridos) | -                                                                                               |
| `days_to_interest` *      | integer | Dias, após o vencimento, para que comece a cobrar os juros                    | -                                                                                               |

Opção 2: juros utilizando valores percentuais (`interest_type=calendar_days_monthly_percentage`)

| Campo                    | Tipo    | Descrição                                                                             | Caracteres                                                                                          |
|--------------------------|---------|---------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|
| `interest_type` *        | string  | Tipo de juros       | **[Enumeradores interest_type](#enumeradores-interest_type)** |
| `interest_percentage` *  | integer | Porcentagem a ser cobrada por unidade de tempo determinada (dias úteis ou corridos)                                                                      | -                                                                           |
| `days_to_interest` *     | integer | Dias, após o vencimento, para que comece a cobrar os juros                             | -                                                                                                   |

### Enumeradores interest_type

| Enumerador                       | Descrição                                                            |
|----------------------------------|----------------------------------------------------------------------|
| calendar_days_daily_amount       | Valor diário sobre dias corridos                                     |
| workdays_daily_amount            | Valor diário sobre dias úteis                                        |
| calendar_days_monthly_percentage | Porcentagem de juros cobrados mensalmente, com base em dias corridos |

### Objeto discount

Opção 1: descontos utilizando valores absolutos (`discount_type in ["absolute", "anticipation_calendar_days_daily_amount", "anticipation_workdays_daily_amount"]`)

| Campo                     | Tipo    | Descrição                                           | Caracteres                                                |
|---------------------------|---------|-----------------------------------------------------|-----------------------------------------------------------|
| `discount_amount` *       | float   | Valor absoluto de desconto por unidade de tempo                                            | -                                                          |
| `discount_number` *       | integer | Número do desconto                                     | -                                                         |
| `discount_type` *         | string  | Configuração do desconto em valores absolutos                                    | **[Enumerador discount_type](#enumeradores-discount_type)** |                                                       |
| `discount_limit_date` *   | string  | Data limite para aplicação do desconto   | 10                                                        |

Opção 2: descontos utilizando valores percentuais (`discount_type in ["percentage", "anticipation_calendar_days_daily_percentage", "anticipation_workdays_daily_percentage"]`)

| Campo                     | Tipo    | Descrição                                           | Caracteres                                                |
|---------------------------|---------|-----------------------------------------------------|-----------------------------------------------------------|
| `discount_percentage` *   | float   | Valor percentual de desconto por unidade de tempo                                            | -                                                          |
| `discount_number` *       | integer | Número do desconto                                     | -                                                         |
| `discount_type` *         | string  | Configuração do desconto em valores percentuais                                    | **[Enumerador discount_type](#enumeradores-discount_type)** |                                                       |
| `discount_limit_date` *   | string  | Data limite para aplicação do desconto   | 10                                                        |

:::caution Atenção!
O boleto pode ter até três descontos, sendo que os descontos devem ser todos do mesmo tipo , isto é, devem ter o mesmo `discount_type`. Os descontos devem ser numerados de 1 a 3, de maneira crescente e começando necessariamente em 1. Ou seja, caso sejam enviados dois descontos na requisição, devem necessariamente ser numerados com 1 e 2.
:::

### Enumeradores discount_type

| Enumerador                                  | Descrição                                                                |
|---------------------------------------------|--------------------------------------------------------------------------|
| absolute                                    | Valor fixo                                                               |
| anticipation_calendar_days_daily_amount     | Valor diário de desconto de antecipação, sobre dias corridos             |
| anticipation_workdays_daily_amount          | Valor diário de desconto de antecipação, sobre dias úteis                |
| percentage                                  | Porcentagem fixa                                                         |
| anticipation_calendar_days_daily_percentage | Porcentagem mensal de desconto de antecipação, com base em dias corridos |
| anticipation_workdays_daily_percentage      | Porcentagem anual de desconto de antecipação, com base em dias úteis     |

### Objetos payer_data e guarantor_data

| Campo                     | Tipo   | Descrição                                                  | Caracteres|
|---------------------------|--------|-------------------------------------|-----------------------------------------------------------|
| `name` *                  | string | Nome completo                       | 100                                                       |
| `document_number` *       | string | Número do documento (CPF/CNPJ)      | 11 ou 14                                                  |
| `person_type` *           | string | Tipo da pessoa (física ou jurídica) | **[Enumeradores person_type](#enumeradores-person_type)** |
| `contact`                 | object | Informações de contato              | **[Objeto contact](#objeto-contact)**                     |
| `address`                 | object | Endereço                            | **[Objeto address](#objeto-address)**                     |

### Enumeradores person_type

| Enumerador         | Descrição             |
|--------------------|-----------------------|
| natural            | pessoa física         |
| legal              | pessoa jurídica       |

### Objeto contact

| Campo                     | Tipo   | Descrição                         | Caracteres                         |
|---------------------------|--------|-----------------------------------|------------------------------------|
| `email`                   | string | E-mail de contato                 | 320                                |
| `phone`                   | object | Telefone de contato               | **[Objeto phone](#objeto-phone)**  |

### Objeto phone

| Campo                           | Tipo   | Descrição                                    | Caracteres |
|---------------------------------|--------|----------------------------------------------|------------|
| `country_code` *     | string | Código DDI (Discagem Direta Internacional)   | 3          |
| `area_code` *                   | string | Código DDD (Discagem Direta à Distância)     | 2          |
| `number` *                      | string | Complemento                                  | 9          |

### Objeto address

| Campo                     | Tipo   | Descrição                                    | Caracteres |
|---------------------------|--------|----------------------------------------------|------------|
| `street` *                | string | Logradouro                                   | 500        |
| `number` *                | string | Número                                       | 6          |
| `complement`              | string | Complemento                                  | 500        |
| `neighborhood` *          | string | Bairro                                       | 100        |
| `postal_code` *           | string | CEP                                          | 8          |
| `city` *                  | string | Cidade                                       | 100        |
| `state` *                 | string | Estado (UF) | **[Enumerador state](#enumeradores-state)** |

### Enumeradores state

| Enumerador         | Descrição             |
|--------------------|-----------------------|
| AC                 | Acre                  |
| AL                 | Alagoas               |
| AM                 | Amazonas              |
| AP                 | Amapá                 |
| BA                 | Bahia                 |
| CE                 | Ceará                 |
| DF                 | Distrito federal      |
| ES                 | Espírito Santo        |
| GO                 | Goiás                 |
| MA                 | Maranhão              |
| MG                 | Minas Gerais          |
| MS                 | Mato Grosso do Sul    |
| MT                 | Mato Grosso           |
| PA                 | Pará                  |
| PB                 | Paraíba               |
| PE                 | Pernambuco            |
| PI                 | Piauí                 |
| PR                 | Paraná                |
| RJ                 | Rio de Janeiro        |
| RN                 | Rio Grande do Norte   |
| RO                 | Rondônia              |
| RR                 | Roraima               |
| RS                 | Rio Grande do Sul     |
| SC                 | Santa Catarina        |
| SE                 | Sergipe               |
| SP                 | São Paulo             |
| TO                 | Tocantins             |
| EX                 | Exceção               |

### Objeto notification

| Campo                     | Tipo    | Descrição                                                                               | Caracteres |
|---------------------------|---------|-----------------------------------------------------------------------------------------|------------|
| `document_number` *       | string  | Número do documento de quem receberá as notificações (CPF/CNPJ)                         | 11 ou 14   |
| `name` *                  | string  | Nome de quem receberá as notificações                                                   | 100        |
| `email`                   | string  | E-mail para o qual serão enviadas as notificações                                       | 320        |
| `phone`                   | object  | Telefone de contato para o qual serão enviadas as notificações | **[Objeto phone](#objeto-phone)**   |
| `send_2_way` *            | boolean | Enviar segunda via                                                                      | -          |
| `send_before_due_date` *  | boolean | Enviar notificação ao pagador antes da data de vencimento                               | -          |
| `send_after_due_date` *   | boolean | Enviar notificação ao pagador quando o boleto vencer                                    | -          |
| `send_on_protest` *       | boolean | Enviar notificação ao entrar em fluxo de protesto                                       | -          |

## Response

STATUS 201

Response Body: Boleto registrado

```json
{
  "request_control_key": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3",
  "bank_slip_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "bank_slip_status": "registered",
  "our_number": 92580722204,
  "barcode": "32998995900000892812147469258072220406456140",
  "digitable_line": "32992147466925807222704064561402899590000089281",
  "qr_code_data": {
    "qr_code_key": "bc5cb30c-8f98-4273-b405-3546da1d8d7a",
    "pix_key": "06797774-e050-419e-a91a-c64c919b52c7",
    "receiver_conciliation_id": "01GVGV9NXBCY287Z6CJ4S0ENW9",
    "url": "00020126830014br.gov.bcb.pix2561qrcode.qitech.app/bacen/cobv/58fd5103a8e64bbbab2fd49b0bd580145204000053039865802BR5925GONNFUNDODEINVESTIMENTOEM6012RiodeJaneiro6107226401262070503***6304EA0D",
    "image": "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"
  }
}
```

STATUS 202

Response Body: Boleto pendente de registro

```json
{
  "request_control_key": "f14e9bac-94ed-4eb1-87b4-7fd7b7a2d280",
  "bank_slip_key": "e8599844-5cad-40b4-8716-cb4770d415b4",
  "bank_slip_status": "accepted"
}
```

:::info Informação
Caso seja retornado **HTTP Status 202** com o campo `bank_slip_status` com valor `accepted`, a emissão não deve ser retentada.

Esta emissão será processada assincronamente. É necessário verificar o status do boleto por meio
da consulta de boleto, ou aguardar o recebimento do webhook de confirmação descrito na [página de webhooks](/documentation/boletos/v2/webhooks/boleto).
:::

### Response Body Params

| Campo                   | Tipo   | Descrição                                                                         | Caracteres |
|-------------------------|--------|-----------------------------------------------------------------------------------|------------|
| `request_control_key` * | uuidv4 | Chave única de identificação da request utilizada pelo cliente no formato uuid v4 | 36         |
| `bank_slip_key` *       | uuidv4 | Chave única de identificação do boleto no formato uuid v4                         | 36         |
| `bank_slip_status` *    | string | Status do boleto       | **[Enumeradores bank_slip_status](#enumeradores-bank_slip_status)**   |
| `our_number` *          | integer| Número único de identificação do boleto junto à carteira                          | 11         |
| `barcode` *             | string | Código de barras do boleto                                                        | 44         |
| `digitable_line` *      | string | Linha digitável do boleto                                                         | 47         |
| `qr_code_data`          | object | Dados do QR Code                             | **[Objeto qr_code_data](#objeto-qr_code_data)** |
| `created_at` *          | string | Data, no formato ISO (UTC - "YYYY-MM-DDTHH:MM:SSZ"), da criação da ocorrência     | 20         |

### Enumeradores bank_slip_status

| Enumerador         | Descrição                               |
|--------------------|-----------------------------------------|
| accepted           | Boleto aceito mas ainda não registrado  |
| registered         | Boleto registrado                       |

### Objeto qr_code_data
| Campo                      | Tipo   | Descrição                                             | Caracteres              |
|----------------------------|--------|-------------------------------------------------------|-------------------------|
| `qr_code_key`              | uuidv4 | Chave única de identificação do QR Code               | 36                      |
| `pix_key`                  | uuidv4 | Chave PIX vinculada ao QR Code                        | 36                      |
| `receiver_conciliation_id` | uuidv4 | Identificador de conciliação do QR Code               | 36                      |
| `url`                      | string | URL (Pix Copia e Cola) do QR Code                     | -                       |
| `image`                    | string | base64 da URL (Pix Copia e Cola) do QR Code           | -                       |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | BKS000004            | Not Found | Pix key not found: `{pix_key}`                                               | Chave pix não encontrada: `{pix_key}`                                               |
| 403                      | BKS000005            | Forbidden                         | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 403                      | BKS000010            | Forbidden                                 | The pix key owner does not match the account owner.                                                                                     | O proprietário da chave pix não corresponde ao proprietário da conta.                                                             |
| 404                      | BKS000013            | Not Found | Requester profile not found         |               Carteira não encontrada                                                                 |
| 409                      | BKS000014            | Conflict           | Request control key already sent or duplicated sent: `{request_control_key}`                                                              | Chave de controle da requisição já utilizada ou enviada duplicada: `{request_control_key}`                                                                        |
| 400                      | BKS000016            | Bad Request                                        | Expiration date must be greater than the current date and have a maximum of 3650 days from the current date.                                    | A data de vencimento deve ser maior que a data atual e possuir no máximo 3650 dias corridos a partir da data atual.                                     |
| 409                      | BKS000017            | Conflict                                        | Our number already used or duplicated sent: `{our_number}`                                                                                       | Nosso número já utilizado ou enviado duplicado: `{our_number}`                                                                               |
| 400                      | BKS000018            | Bad Request                                        | The discount dates must be less than the expiration date and increasing.                                                      | A data dos descontos devem ser menores que a de expiração e crescentes.                                               |
| 400                      | BKS000019            | Bad Request                                        | Payer address is required for protest.                                                                                       | Endereço do pagador é obrigatório para protesto.                                                                         |
| 500                      | BKS000021            | Internal Server Error                                  | Error while trying to generate QR Code.                                                               | Erro ao tentar gerar QR Code de pagamento.                                                           |
| 400                      | BKS000022            | Bad Request                                        | Requester profile is not opened.                                                              | Carteira não está aberta.                          |
| 400                      | BKS000023            | Bad Request             | The amount must be greater than zero.          | O valor deve ser maior que zero.                                                           |
| 400                      | BKS000024            | Bad Request             | Error while registering bank slip.          | Erro ao registrar boleto.                                                           |
| 400                      | BKS000026            | Bad Request                      | Guarantor address is required for protest.                                                                                        | Endereço do sacador é obrigatório para protesto.                                                                   |
| 404                      | BKS000028            | Not Found             | Notary office attended region not found for postal code: `{postal_code}`                                                          | Região de cartório não encontrada para o CEP: `{postal_code}`                                                                                 |
| 400                      | BKS000043            | Bad Request             | Invalid discount numbering. Discounts must be numbered in ascending order and start on 1.          | Numeração dos descontos inválida. Os descontos devem ser numerados em ordem crescente e começar em 1.                                                           |
| 400                      | BKS000045            | Bad Request                                        | Rebate amount can not be equal or greater than the bank slip amount.                                                              | O valor do rebate não pode ser igual ou maior do que o valor do boleto.                          |
| 400                      | BKS000047            | Bad Request             | It was not possible to consult the sent pix key at this time. Please try again in a few minutes.          | Não foi possível consultar a chave pix enviada no momento. Por favor, tente novamente em alguns minutos.                                                           |
| 400                      | BKS000125            | Bad Request             | Partial payment data is required for this bank slip species type.          | Os dados de pagamento parcial são obrigatórios para o tipo de boleto fornecido.                                                           |
| 400                      | BKS000128            | Bad Request             | QR code payment is not allowed for partial payment.          | Pagamento via QR code não é permitido para pagamento parcial.                                                           |
| 400                      | BKS000128            | Bad Request             | QR code payment is not allowed for partial payment.          | Pagamento via QR code não é permitido para pagamento parcial.                                                           |
| 400                      | BKS000131            | Bad Request             | Rebate amount is not allowed for this bank slip species type.          | O valor de abatimento não é permitido para o tipo de boleto fornecido.                                                           |
| 400                      | BKS000132            | Bad Request             | Discount data is not allowed for this bank slip species type.          | Os dados de desconto não são permitidos para o tipo de boleto fornecido.                                                           |
| 400                      | BKS000133            | Bad Request             | Fine data is not allowed for this bank slip species type.          | Os dados de multa não são permitidos para o tipo de boleto fornecido.                                                           |
| 400                      | BKS000134            | Bad Request             | Interest data is not allowed for this bank slip species type.          | Os dados de juros não são permitidos para o tipo de boleto fornecido.                                                           |
| 400                      | BKS000136            | Bad Request             | Only credit card financial instrument type can have zero amount.          | Apenas o tipo de instrumento financeiro cartão de crédito pode ter valor zero.                                                           |

---

# Emissão de boleto único (padrão)

URL: /documentation/boletos/emissao/emissao_boleto_unico_padrao

:::danger Importante
Para registrar bolePix, é necessário que exista uma chave Pix aleatória ativa na conta em que os boletos serão registrados.
:::

No fluxo padrão de registro de boleto, caso a requisição seja bem sucedida, a resposta retorna um boleto com o status `accepted` (o boleto foi aceito pela QI Tech). Após a confirmação/rejeição da Nuclea/CIP, o boleto passa para o status `registered` ou `rejected`.

:::caution Atenção!
Como trata-se de um registro assíncrono, o solicitante é notificado via [**webhook**](/documentation/boletos/v2/webhooks/boleto) assim que o boleto mudar de status de `accepted` para `registered` ou `rejected`.
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /bank_slip
MÉTODO POST

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |

Request Body

```json
{
  "request_control_key": "0d496b4d-01f6-48cd-8ec9-9ead1e43f156",
  "our_number": 123456789,
  "document_number": "DOC4561237",
  "amount": 5000.00,
  "expiration": "2025-01-01",
  "bank_teller_instructions": "Confirm payment",
  "protest_data": {"days_to_protest": 7},
  "bankruptcy_protest_data": {"days_to_bankruptcy_protest": 14},
  "max_payment_days": 45,
  "fine_data": {"fine_type": "absolute", "fine_amount": 100.00, "days_to_fine": 10},
  "interest_data": {
    "interest_type": "workdays_daily_amount",
    "interest_amount": 10.00,
    "days_to_interest": 2,
  },
  "financial_instrument_type": "digital_commercial_invoice",
  "write_off_data": {"days_to_write_off": 365},
  "rebate_amount": 200.00,
  "discounts_data": [
    {
      "discount_amount": 50.00,
      "discount_number": 1,
      "discount_type": "absolute",
      "discount_limit_date": "2024-12-01",
    }
  ],
  "payer_data": {
    "name": "Global Tech",
    "contact": {
      "email": "finance@globaltech.com",
      "phone": {"country_code": "055", "area_code": "11", "number": "987654321"},
    },
    "address": {
      "street": "101 High St.",
      "neighborhood": "Tech Park",
      "number": "202",
      "postal_code": "01001000",
      "city": "Innovation City",
      "state": "SP",
      "complement": "Building A",
    },
    "document_number": "12345678000195",
    "person_type": "legal",
  },
  "guarantor_data": {
    "name": "Jane Doe",
    "contact": {
      "email": "jane.doe@qitech.com.br",
      "phone": {"country_code": "055", "area_code": "11", "number": "999999999"},
    },
    "address": {
      "street": "202 Elm St.",
      "neighborhood": "Quiet Neighborhood",
      "number": "303",
      "postal_code": "01001000",
      "city": "Peaceful Town",
      "state": "RJ",
      "complement": "House 1",
    },
    "document_number": "23456789012",
    "person_type": "natural",
  },
  "pix_key": "4d25d8fc-0074-42bb-b0a4-dd12b1cd0e98",
  "notification": {
    "document_number": "12345678000195",
    "name": "Global Tech",
    "email": "finance@globaltech.com",
    "phone": {"country_code": "055", "area_code": "11", "number": "987654321"},
    "send_2_way": true,
    "send_before_due_date": false,
    "send_after_due_date": false,
    "send_on_protest": false
  },
  "split_payment_data": {
    "beneficiary_settlement_percentage": 70,
    "split_payment_rules": [
      {
        "percentage": 20,
        "document_number": "12345678901",
        "account_owner_name": "João da Silva",
        "account_number": "1234567",
        "account_digit": "8"
      },
      {
        "percentage": 10,
        "document_number": "10987654321",
        "account_owner_name": "Maria Souza",
        "account_number": "7654321",
        "account_digit": "0"
      }
    ]
  }
}
```

### Request Body

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------|
| `request_control_key` *    | uuidv4  | Chave única de identificação da request utilizada pelo cliente no formato uuid v4  | 36                                                |
| `our_number`               | integer | Número único de identificação do boleto junto à carteira. Pode ser enviado pelo cliente e, caso não seja, a QI Tech irá gerar um                           | 11                                                |
| `document_number`          | string  | Número de identificação do boleto. Pode ser o número da nota fiscal eletrônica     | 10                                                |
| `participant_control_number` | string | Nº Controle do Participante                                                       |25                                                |
| `amount` *                 | float   | Valor base do boleto                                                               | -                                                 |
| `expiration` *             | string  | Data de vencimento                                                                 | 10                                                |
| `bank_teller_instructions` | string  | Observações ao pagador do boleto. Aceita no máximo 320 caracteres, distribuídos em até 7 linhas. Cada linha pode conter no máximo 90 caracteres. Caso uma linha ultrapasse 90 caracteres, o texto será automaticamente quebrado em uma nova linha | 320                                               |
| `rebate_amount`            | float   | Valor de abatimento do boleto, que será aplicado em cima do valor base             | -                                                 |
| `max_payment_days`         | integer | Máximo de dias corridos que o boleto ficará disponível para pagamento, após o vencimento (pode ser no máximo 365) | -          |
| `financial_instrument_type`   | string  | Tipo de espécie do boleto | **[Enumeradores financial_instrument_type](#enumeradores-financial_instrument_type)** |
| `partial_payment_data`    | object  | Configurações de pagamento parcial                      | **[Objeto partial_payment_data](#objeto-partial_payment_data)** |
| `write_off_data`       | object  | Configuração de baixa      | **[Objeto write_off_data](#objeto-write_off_settings)** |
| `protest_data`         | object  | Configuração de protesto       | **[Objeto protest_data](#objeto-protest_settings)** |
| `bankruptcy_protest_data` | object  | Configuração de protesto falimentar | **[Objeto bankruptcy_protest_data](#objeto-bankruptcy_protest_settings)** |
| `fine_data`            | object  | Configuração de multa                 | **[Objeto fine_data](#objeto-fine_settings)** |
| `interest_data`        | object  | Configuração de juros        | **[Objeto interest_data](#objeto-interest_settings)** |
| `discounts_data`           | object array | Descontos           | **[Objeto discount](#objeto-discounts_data)** |
| `payer_data` *             | object  | Dados do pagador                                                                   | **[Objeto payer_data](#objetos-payer_data-e-guarantor_data)** |
| `guarantor_data`           | object  | Dados do sacador avalista                                                          | **[Objeto guarantor_data](#objetos-payer_data-e-guarantor_data)** |
| `pix_key`                  | uuidv4  | Chave pix do tipo aleatória                                                        | 36                                                |
| `notification`             | object | Configurações de notificação do pagador                                             | **[Objeto notification](#objeto-notification)** |
| `split_payment_data`       | object | Configurações de rateio de crédito do boleto (split de pagamento)                   | **[Objeto split_payment_data](#objeto-split_payment_data)** |

:::info BolePix
Caso o parâmetro `pix_key`, opcional, seja enviado na request, será gerado um bolePix. BolePix é um boleto cujo pagamento é vinculado a um QR Code Pix. Sendo assim, o pagador pode realizar o pagamento do boleto tanto utilizando a linha digitável do mesmo, quanto através da leitura do QR Code Pix vinculado. Caso o pagamento seja feito via QR Code, a liquidação financeira se dá instantaneamente, enquanto os retornos bancários e webhooks envolvidos na liquidação serão gerados assim como é feito para um boleto comum.

Importante: para registrar um bolePix, é necessário que exista uma chave Pix aleatória ativa na conta em que boleto será registrado.
:::

:::tip Configurações Padrão da Carteira
Caso cada um dos campos `max_payment_days`, `write_off_data`, `protest_data`, `bankruptcy_protest_data`, `fine_data`, `interest_data` e `pix_key` não sejam enviados na request e a carteira possua configurações padrão (i.e. `max_payment_days`, `write_off_settings`, `protest_settings`, `bankruptcy_protest_settings`, `fine_settings`, `interest_settings` e `qr_code_settings`, respectivamente, no `configuration_data` do `requester_profile`), serão utilizadas tais configurações padrão para a emissão do título.
:::

:::caution Limitações e Restrições
- **Boletos de Pagamento Parcial:** Não é permitido o pagamento via QR Code Pix. Portanto, não é permitido enviar a `pix_key` no registro, nem ter uma configuração padrão de geração de bolePix para a carteira.

- **Boletos de Cartão de Crédito:** Não é necessário nem permitido enviar informações rebate, desconto, multa e juros. Isso se deve ao padrão do mercado, onde muitas Instituições Financeiras não aceitam o pagamento de boletos de cartão de crédito que contenham essas informações. A carteira também não pode ter essas configurações definidas como padrão. Sendo assim boletos desse tipo podem ser pagos parcialmente mesmo após o vencimento, sem incidência de juros, multas, descontos ou abatimentos na fatura corrente. Para aplicar esses valores é necessário incluí-los na próxima fatura, seja através da [ocorrência de edição de valor](/documentation/boletos/instrucoes/valor) do boleto ou emitindo um novo boleto que inclua esses valores. É possível enviar `amount = 0` para boletos deste tipo.

**Importante:** Boletos do tipo `credit_card` são obrigatoriamente de pagamento parcial, sendo assim é necessário fornecer as informações de `partial_payment_data` ou ter essa configuração padrão na carteira. Caso o campo `financial_instrument_type` não seja enviado, o valor padrão será `digital_commercial_invoice`.
:::

:::tip Recomendações de Carteiras
- **Carteira para Boletos Padrão:** Mantenha as configurações padrão para multas, juros e protesto
- **Carteira para Boletos de Pagamento Parcial:** Sem configuração de Pix e com regras específicas para pagamento parcial
- **Carteira para Boletos de Cartão de Crédito:** Sem configurações de multa, juros, desconto ou rebate

Criar carteiras específicas garante que as configurações padrão sejam adequadas para cada tipo de boleto e evita conflitos nas regras de negócio.
:::

:::info Máquina de Estados
A máquina de status para boletos de pagamento parcial possui algumas diferenças. Para mais detalhes, consulte a [introdução](/documentation/boletos/introducao) , onde há uma explicação sobre como aplicar a incidência de juros e multas no boleto seguindo as boas práticas do mercado.
:::

### Enumeradores financial_instrument_type

| Enumerador  | Descrição                        |
|-------------|----------------------------------|
| digital_commercial_invoice | DMI Duplicata Mercantil Indicação |
| credit_card | Cartão de Crédito |
| check | CH Cheque |
| digital_commercial | DM Duplicata Mercantil |
| digital_service_invoice | Duplicata de Serviço |
| digital_service_invoice_indication | DSI Duplicata de Serviço Indicação |
| digital_rural_invoice | DR Duplicata Rural |
| bill_of_exchange | LC Letra de Câmbio |
| commercial_credit_note | NCC Nota de Crédito Comercial |
| export_credit_note | NCE Nota de Crédito Exportação |
| industrial_credit_note | NCI Nota de Crédito Industrial |
| rural_credit_note | NCR Nota de Crédito Rural |
| promissory_note | NP Nota Promissória |
| rural_promissory_note | NPR Nota Promissória Rural |
| mercantile_triplicate | TM Triplicata Mercantil |
| service_triplicate | TS Triplicata de Serviço |
| insurance_note | NS Nota de Seguro |
| receipt | RC Recibo |
| printed_bank_slip | FAT Bloqueto |
| debit_note | ND Nota de Débito |
| insurance_policy | AP Apólice de Seguro |
| school_monthly_fee | ME Mensalidade Escolar |
| consortium_installment | PC Parcela de Consórcio |
| invoice | NF Nota Fiscal |
| debt_document | DD Documento de Dívida |
| rural_product_certificate | Cédula de Produto Rural |
| warrant | Warrant |
| state_active_debt | Dívida Ativa de Estado |
| municipal_active_debt | Dívida Ativa de Município |
| federal_active_debt | Dívida Ativa da União |
| condominium_charges | Encargos condominiais |
| proposal_bank_slip | Boleto proposta |
| deposit_and_contribution_bank_slip | Boleto de Depósito e Aporte |
| others | Outros |

### Objeto split_payment_data

Permite configurar o **rateio de crédito** (split de pagamento) do boleto, distribuindo o valor liquidado entre o beneficiário do boleto e até 10 contas adicionais. As contas dos rateados precisam estar abertas e cadastradas na QI Tech, e a soma dos percentuais (beneficiário + regras) deve ser exatamente 100.

| Campo                                  | Tipo         | Descrição                                                                                          | Caracteres |
|----------------------------------------|--------------|----------------------------------------------------------------------------------------------------|------------|
| `beneficiary_settlement_percentage` *  | float        | Percentual do valor liquidado destinado ao beneficiário do boleto. Aceita valor de 0 a 100         | -          |
| `beneficiary_max_amount`               | float        | Valor máximo que o beneficiário recebe na liquidação. Quando o valor pago exceder este limite, o excedente é direcionado integralmente para a primeira regra do array `split_payment_rules`. Aceita valor maior que 0 e menor ou igual ao valor do boleto | - |
| `split_payment_rules` *                | object array | Lista de regras de rateio. Mínimo 1, máximo 10 regras                                              | **[Objeto split_payment_rule](#objeto-split_payment_rule)** |

#### Objeto split_payment_rule

| Campo                  | Tipo    | Descrição                                                                                | Caracteres |
|------------------------|---------|------------------------------------------------------------------------------------------|------------|
| `percentage` *         | float   | Percentual do valor liquidado destinado a esta conta. Aceita valor de 0 a 100. Use `0` quando esta regra for destinada exclusivamente a receber o excedente do `beneficiary_max_amount` | - |
| `document_number` *    | string  | CPF/CNPJ do titular da conta destino                                                     | 11 ou 14   |
| `account_owner_name` * | string  | Nome do titular da conta destino                                                         | 100        |
| `account_number` *     | string  | Número da conta destino                                                                  | 20         |
| `account_digit` *      | string  | Dígito verificador da conta destino                                                      | 2          |

:::caution Atenção!
- A soma de `beneficiary_settlement_percentage` com os percentuais de cada item de `split_payment_rules` deve ser exatamente igual a **100**.
- O `document_number` deve ser único entre as regras e diferente do beneficiário.
- O rateio é aplicado em todos os fluxos de liquidação do boleto (SILOC, STR, cartório e Pix QR Code).
- `beneficiary_max_amount`, quando enviado, deve ser maior que 0 e menor ou igual ao valor do boleto. É obrigatório sempre que alguma regra tiver `percentage = 0`.
- Apenas **uma** regra pode ter `percentage = 0` por boleto (a destinatária do excedente).
- Após a emissão, é possível atualizar o rateio com a [**ocorrência de atualização de rateio de crédito**](/documentation/boletos/instrucoes/rateio_de_credito), desde que o boleto esteja com o status `registered` e ainda não tenha sido pago.
:::

:::tip Caso de uso: receber juros/multa em conta separada
Para que o beneficiário receba sempre o valor de face do boleto e uma conta diferente receba os juros/multa em casos de atraso, configure `beneficiary_settlement_percentage = 100` + `beneficiary_max_amount = ` + uma única regra com `percentage = 0` apontando para a conta destino do excedente. Veja o passo a passo completo em [**Atualização de Rateio de Crédito**](/documentation/boletos/instrucoes/rateio_de_credito#caso-de-uso-receber-juros-e-multa-em-uma-conta-separada).
:::

### Objeto partial_payment_data

| Campo                             | Tipo    | Descrição                                                                 | Caracteres |
|-----------------------------------|---------|---------------------------------------------------------------------------|------------|
| `partial_payment_minimum_type` *  | string  | Tipo de valor mínimo para pagamento parcial                               | **[Enumeradores partial_payment_type](#enumeradores-partial_payment_type)** |
| `partial_payment_minimum_percentage` | float | Percentual mínimo permitido para o pagamento parcial                      | -          |
| `partial_payment_minimum_amount`  | float  | Valor mínimo permitido para o pagamento parcial                           | -          |
| `partial_payment_maximum_type`    | string  | Tipo de valor máximo para pagamento parcial                               | **[Enumeradores partial_payment_type](#enumeradores-partial_payment_type)** |
| `partial_payment_maximum_percentage` | float | Percentual máximo permitido para o pagamento parcial                      | -          |
| `partial_payment_maximum_amount`  | float  | Valor máximo permitido para o pagamento parcial                           | -          |
| `partial_payment_quantity` *      | integer | Quantidade de pagamentos parciais permitidos                              | -          |

:::caution Atenção!
De acordo com o valor enviado nos campos `partial_payment_minimum_type` e `partial_payment_maximum_type`, é necessário enviar o `partial_payment_minimum_amount` ou `partial_payment_minimum_percentage`, e o `partial_payment_maximum_amount` ou `partial_payment_maximum_percentage` correspondente.
:::

### Enumeradores partial_payment_type

| Enumerador  | Descrição                        |
|-------------|----------------------------------|
| absolute    | Valor absoluto                   |
| percentage  | Percentual                       |

### Objeto write_off_data

| Campo                     | Tipo    | Descrição                                                                   | Caracteres |
|---------------------------|---------|-----------------------------------------------------------------------------|------------|
| `days_to_write_off` *     | integer | Dias, após o vencimento, para que o boleto seja baixado automaticamente     | -          |

### Objeto protest_data

| Campo                     | Tipo    | Descrição                                                                   | Caracteres |
|---------------------------|---------|-----------------------------------------------------------------------------|------------|
| `days_to_protest` *       | integer | Dias, após o vencimento, para que o boleto seja protestado automaticamente  | -          |

### Objeto bankruptcy_protest_data

| Campo                          | Tipo    | Descrição                                                                   | Caracteres  |
|--------------------------------|---------|-----------------------------------------------------------------------------|------------|
| `days_to_bankruptcy_protest` * | integer | Dias, após o vencimento, para que o boleto seja protestado automaticamente  | -           |

### Objeto fine_data

Opção 1: multa em valor absoluto (`fine_type=absolute`)

| Campo                     | Tipo    | Descrição                                               | Caracteres                |
|---------------------------|---------|---------------------------------------------------------|-------------------------------------------------------------------------|
| `fine_type` *             | string  | Tipo da multa                                                       | **[Enumeradores fine_type](#enumeradores-fine_type)**                                              |
| `fine_amount` *           | float   | Valor absoluto da multa                                             | -                                                                        |
| `days_to_fine` *          | integer | Dias, após o vencimento, para que a multa seja cobrada              | -                                                                        |

Opção 2: multa em valor percentual (`fine_type=percentage`)

| Campo                     | Tipo    | Descrição                                                 | Caracteres                             |
|---------------------------|---------|-----------------------------------------------------------|---------------------------------------|
| `fine_type` *             | string  | Tipo da multa                                             | **[Enumeradores fine_type](#enumeradores-fine_type)** |
| `fine_percentage` *       | integer | Valor percentual da multa, de 1 a 100                     | -                                      |
| `days_to_fine` *          | integer | Dias, após o vencimento, para que a multa seja cobrada    | -                                      |

### Enumeradores fine_type

| Enumerador         | Descrição             |
|--------------------|-----------------------|
| absolute           | valor absoluto        |
| percentage         | valor percentual      |

### Objeto interest_data

Opção 1: juros utilizando valores absolutos (`interest_type=calendar_days_daily_amount` ou `interest_type=workdays_daily_amount`)

| Campo                     | Tipo    | Descrição                                                                     | Caracteres                                                                                      |
|---------------------------|---------|-------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|
| `interest_type` *         | string  | Tipo de juros       | **[Enumeradores interest_type](#enumeradores-interest_type)** |
| `interest_amount` *       | float   | Valor a ser cobrado por unidade de tempo determinada (dias úteis ou corridos) | -                                                                                               |
| `days_to_interest` *      | integer | Dias, após o vencimento, para que comece a cobrar os juros                    | -                                                                                               |

Opção 2: juros utilizando valores percentuais (`interest_type=calendar_days_monthly_percentage`)

| Campo                    | Tipo    | Descrição                                                                             | Caracteres                                                                                          |
|--------------------------|---------|---------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|
| `interest_type` *        | string  | Tipo de juros       | **[Enumeradores interest_type](#enumeradores-interest_type)** |
| `interest_percentage` *  | integer | Porcentagem a ser cobrada por unidade de tempo determinada (dias úteis ou corridos)                                                                      | -                                                                           |
| `days_to_interest` *     | integer | Dias, após o vencimento, para que comece a cobrar os juros                             | -                                                                                                   |

### Enumeradores interest_type

| Enumerador                       | Descrição                                                            |
|----------------------------------|----------------------------------------------------------------------|
| calendar_days_daily_amount       | Valor diário sobre dias corridos                                     |
| workdays_daily_amount            | Valor diário sobre dias úteis                                        |
| calendar_days_monthly_percentage | Porcentagem de juros cobrados mensalmente, com base em dias corridos |

### Objeto discount

Opção 1: descontos utilizando valores absolutos (`discount_type in ["absolute", "anticipation_calendar_days_daily_amount", "anticipation_workdays_daily_amount"]`)

| Campo                     | Tipo    | Descrição                                           | Caracteres                                                |
|---------------------------|---------|-----------------------------------------------------|-----------------------------------------------------------|
| `discount_amount` *       | float   | Valor absoluto de desconto por unidade de tempo                                            | -                                                          |
| `discount_number` *       | integer | Número do desconto                                     | -                                                         |
| `discount_type` *         | string  | Configuração do desconto em valores absolutos                                    | **[Enumerador discount_type](#enumeradores-discount_type)** |                                                       |
| `discount_limit_date` *   | string  | Data limite para aplicação do desconto   | 10                                                        |

Opção 2: descontos utilizando valores percentuais (`discount_type in ["percentage", "anticipation_calendar_days_daily_percentage", "anticipation_workdays_daily_percentage"]`)

| Campo                     | Tipo    | Descrição                                           | Caracteres                                                |
|---------------------------|---------|-----------------------------------------------------|-----------------------------------------------------------|
| `discount_percentage` *   | float   | Valor percentual de desconto por unidade de tempo                                            | -                                                          |
| `discount_number` *       | integer | Número do desconto                                     | -                                                         |
| `discount_type` *         | string  | Configuração do desconto em valores percentuais                                    | **[Enumerador discount_type](#enumeradores-discount_type)** |                                                       |
| `discount_limit_date` *   | string  | Data limite para aplicação do desconto   | 10                                                        |

:::caution Atenção!
O boleto pode ter até três descontos, sendo que os descontos devem ser todos do mesmo tipo , isto é, devem ter o mesmo `discount_type`. Os descontos devem ser numerados de 1 a 3, de maneira crescente e começando necessariamente em 1. Ou seja, caso sejam enviados dois descontos na requisição, devem necessariamente ser numerados com 1 e 2.
:::

### Enumeradores discount_type

| Enumerador                                  | Descrição                                                                |
|---------------------------------------------|--------------------------------------------------------------------------|
| absolute                                    | Valor fixo                                                               |
| anticipation_calendar_days_daily_amount     | Valor diário de desconto de antecipação, sobre dias corridos             |
| anticipation_workdays_daily_amount          | Valor diário de desconto de antecipação, sobre dias úteis                |
| percentage                                  | Porcentagem fixa                                                         |
| anticipation_calendar_days_daily_percentage | Porcentagem mensal de desconto de antecipação, com base em dias corridos |
| anticipation_workdays_daily_percentage      | Porcentagem anual de desconto de antecipação, com base em dias úteis     |

### Objetos payer_data e guarantor_data

| Campo                     | Tipo   | Descrição                                                  | Caracteres|
|---------------------------|--------|-------------------------------------|-----------------------------------------------------------|
| `name` *                  | string | Nome completo                       | 100                                                       |
| `document_number` *       | string | Número do documento (CPF/CNPJ)      | 11 ou 14                                                  |
| `person_type` *           | string | Tipo da pessoa (física ou jurídica) | **[Enumeradores person_type](#enumeradores-person_type)** |
| `contact`                 | object | Informações de contato              | **[Objeto contact](#objeto-contact)**                     |
| `address`                 | object | Endereço                            | **[Objeto address](#objeto-address)**                     |

### Enumeradores person_type

| Enumerador         | Descrição             |
|--------------------|-----------------------|
| natural            | pessoa física         |
| legal              | pessoa jurídica       |

### Objeto contact

| Campo                     | Tipo   | Descrição                         | Caracteres                         |
|---------------------------|--------|-----------------------------------|------------------------------------|
| `email`                   | string | E-mail de contato                 | 320                                |
| `phone`                   | object | Telefone de contato               | **[Objeto phone](#objeto-phone)**  |

### Objeto phone

| Campo                           | Tipo   | Descrição                                    | Caracteres |
|---------------------------------|--------|----------------------------------------------|------------|
| `country_code` *     | string | Código DDI (Discagem Direta Internacional)   | 3          |
| `area_code` *                   | string | Código DDD (Discagem Direta à Distância)     | 2          |
| `number` *                      | string | Complemento                                  | 9          |

### Objeto address

| Campo                     | Tipo   | Descrição                                    | Caracteres |
|---------------------------|--------|----------------------------------------------|------------|
| `street` *                | string | Logradouro                                   | 500        |
| `number` *                | string | Número                                       | 6          |
| `complement`              | string | Complemento                                  | 500        |
| `neighborhood` *          | string | Bairro                                       | 100        |
| `postal_code` *           | string | CEP                                          | 8          |
| `city` *                  | string | Cidade                                       | 100        |
| `state` *                 | string | Estado (UF) | **[Enumerador state](#enumeradores-state)** |

### Enumeradores state

| Enumerador         | Descrição             |
|--------------------|-----------------------|
| AC                 | Acre                  |
| AL                 | Alagoas               |
| AM                 | Amazonas              |
| AP                 | Amapá                 |
| BA                 | Bahia                 |
| CE                 | Ceará                 |
| DF                 | Distrito federal      |
| ES                 | Espírito Santo        |
| GO                 | Goiás                 |
| MA                 | Maranhão              |
| MG                 | Minas Gerais          |
| MS                 | Mato Grosso do Sul    |
| MT                 | Mato Grosso           |
| PA                 | Pará                  |
| PB                 | Paraíba               |
| PE                 | Pernambuco            |
| PI                 | Piauí                 |
| PR                 | Paraná                |
| RJ                 | Rio de Janeiro        |
| RN                 | Rio Grande do Norte   |
| RO                 | Rondônia              |
| RR                 | Roraima               |
| RS                 | Rio Grande do Sul     |
| SC                 | Santa Catarina        |
| SE                 | Sergipe               |
| SP                 | São Paulo             |
| TO                 | Tocantins             |
| EX                 | Exceção               |

### Objeto notification

| Campo                     | Tipo    | Descrição                                                                               | Caracteres |
|---------------------------|---------|-----------------------------------------------------------------------------------------|------------|
| `document_number` *       | string  | Número do documento de quem receberá as notificações (CPF/CNPJ)                         | 11 ou 14   |
| `name` *                  | string  | Nome de quem receberá as notificações                                                   | 100        |
| `email`                   | string  | E-mail para o qual serão enviadas as notificações                                       | 320        |
| `phone`                   | object  | Telefone de contato para o qual serão enviadas as notificações | **[Objeto phone](#objeto-phone)**   |
| `send_2_way` *            | boolean | Enviar segunda via                                                                      | -          |
| `send_before_due_date` *  | boolean | Enviar notificação ao pagador antes da data de vencimento                               | -          |
| `send_after_due_date` *   | boolean | Enviar notificação ao pagador quando o boleto vencer                                    | -          |
| `send_on_protest` *       | boolean | Enviar notificação ao entrar em fluxo de protesto                                       | -          |

## Response

STATUS 202

Response Body

```json
{
  "request_control_key": "0d496b4d-01f6-48cd-8ec9-9ead1e43f156",
  "bank_slip_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "bank_slip_status": "accepted",
  "our_number": 67215548222,
  "barcode": "32995995900000892811606496721554822228569790",
  "digitable_line": "32991606429672155482022285697904599590000089281",
  "qr_code_data": {
    "qr_code_key": "a92b180a-4aa5-47c2-8a71-4e7bbb074410",
    "pix_key": "4d25d8fc-0074-42bb-b0a4-dd12b1cd0e98",
    "receiver_conciliation_id": "01GVGV9NXBCY287Z6CJ4S0ENW9",
    "url": "00020126830014br.gov.bcb.pix2561qrcode.qitech.app/bacen/cobv/58fd5103a8e64bbbab2fd49b0bd580145204000053039865802BR5925GONNFUNDODEINVESTIMENTOEM6012RiodeJaneiro6107226401262070503***6304EA0D",
    "image": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAD0APQBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APf6KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK+QPhl8Mv+Fjf2p/xN/wCz/sHlf8u3m79+/wD21xjZ79a7/wD4Zl/6m7/ym/8A22j/AIZl/wCpu/8AKb/9to/Zl/5mn/t0/wDa1egfE34Zf8LG/sv/AIm/9n/YPN/5dvN379n+2uMbPfrXgHwy+GX/AAsb+1P+Jv8A2f8AYPK/5dvN379/+2uMbPfrR8Tfib/wsb+y/wDiUf2f9g83/l583fv2f7C4xs9+td//AMm5/wDUw/27/wBunkeR/wB/N27zvbG3vnjwCvr/AOJvxN/4Vz/Zf/Eo/tD7f5v/AC8+Vs2bP9hs53+3SvkCvf8A9mX/AJmn/t0/9rUf8m5/9TD/AG7/ANunkeR/383bvO9sbe+ePQPhl8Mv+Fc/2p/xN/7Q+3+V/wAu3lbNm/8A22znf7dK8A+GXxN/4Vz/AGp/xKP7Q+3+V/y8+Vs2b/8AYbOd/t0o+GXxN/4Vz/an/Eo/tD7f5X/Lz5WzZv8A9hs53+3Svf8A4m/DL/hY39l/8Tf+z/sHm/8ALt5u/fs/21xjZ79a8/8A+GZf+pu/8pv/ANtr0D4ZfE3/AIWN/an/ABKP7P8AsHlf8vPm79+//YXGNnv1rwD4ZfE3/hXP9qf8Sj+0Pt/lf8vPlbNm/wD2Gznf7dK7/wD4aa/6lH/ypf8A2quA+GXxN/4Vz/an/Eo/tD7f5X/Lz5WzZv8A9hs53+3Svr+vkD4ZfDL/AIWN/an/ABN/7P8AsHlf8u3m79+//bXGNnv1rv8A/hmX/qbv/Kb/APbaP+GZf+pu/wDKb/8AbaP2Zf8Amaf+3T/2tX0BRRRXz/8Asy/8zT/26f8AtavAK9//AGZf+Zp/7dP/AGtR+zL/AMzT/wBun/tavQPib8Mv+Fjf2X/xN/7P+web/wAu3m79+z/bXGNnv1rz/wDZl/5mn/t0/wDa1cB8Mvib/wAK5/tT/iUf2h9v8r/l58rZs3/7DZzv9ule/wDwy+Jv/Cxv7U/4lH9n/YPK/wCXnzd+/f8A7C4xs9+teAfE34Zf8K5/sv8A4m/9ofb/ADf+XbytmzZ/ttnO/wBule//ABN+Jv8Awrn+y/8AiUf2h9v83/l58rZs2f7DZzv9uleAfDL4Zf8ACxv7U/4m/wDZ/wBg8r/l283fv3/7a4xs9+tHxN+GX/Cuf7L/AOJv/aH2/wA3/l28rZs2f7bZzv8AbpXv/wAMvhl/wrn+1P8Aib/2h9v8r/l28rZs3/7bZzv9ulef/tNf8yt/29/+0a9A+GXxN/4WN/an/Eo/s/7B5X/Lz5u/fv8A9hcY2e/WvP8A/k3P/qYf7d/7dPI8j/v5u3ed7Y2988cB8Tfhl/wrn+y/+Jv/AGh9v83/AJdvK2bNn+22c7/bpXf/APDTX/Uo/wDlS/8AtVcB8Tfhl/wrn+y/+Jv/AGh9v83/AJdvK2bNn+22c7/bpX1/Xz//AMm5/wDUw/27/wBunkeR/wB/N27zvbG3vng/5OM/6l7+wv8At78/z/8Av3t2+T753dsc+gfDL4m/8LG/tT/iUf2f9g8r/l583fv3/wCwuMbPfrXn/wCzL/zNP/bp/wC1q8Ar3/8AZl/5mn/t0/8Aa1H7Mv8AzNP/AG6f+1q+gKKKK+f/ANmX/maf+3T/ANrUf8My/wDU3f8AlN/+216B8Mvhl/wrn+1P+Jv/AGh9v8r/AJdvK2bN/wDttnO/26V5/wDsy/8AM0/9un/taj/k4z/qXv7C/wC3vz/P/wC/e3b5Pvnd2xyf8nGf9S9/YX/b35/n/wDfvbt8n3zu7Y5P2mv+ZW/7e/8A2jR+zL/zNP8A26f+1qP+Tc/+ph/t3/t08jyP+/m7d53tjb3zx4BXv/7TX/Mrf9vf/tGj/k3P/qYf7d/7dPI8j/v5u3ed7Y2988cB8Mvhl/wsb+1P+Jv/AGf9g8r/AJdvN379/wDtrjGz3613/wDwzL/1N3/lN/8AttH7Mv8AzNP/AG6f+1q4D4m/DL/hXP8AZf8AxN/7Q+3+b/y7eVs2bP8AbbOd/t0rv/8Ahpr/AKlH/wAqX/2qj/k4z/qXv7C/7e/P8/8A797dvk++d3bHJ/ybn/1MP9u/9unkeR/383bvO9sbe+ePQPhl8Mv+Fc/2p/xN/wC0Pt/lf8u3lbNm/wD22znf7dKPib8Mv+Fjf2X/AMTf+z/sHm/8u3m79+z/AG1xjZ79a8//AGZf+Zp/7dP/AGtX0BXz/wDsy/8AM0/9un/taj/hmX/qbv8Aym//AG2vQPhl8Mv+Fc/2p/xN/wC0Pt/lf8u3lbNm/wD22znf7dK8/wD2Zf8Amaf+3T/2tX0BRRRXz/8A8My/9Td/5Tf/ALbR/wAMy/8AU3f+U3/7bR/wzL/1N3/lN/8AttegfDL4Zf8ACuf7U/4m/wDaH2/yv+Xbytmzf/ttnO/26V5//wAm5/8AUw/27/26eR5H/fzdu872xt7549A+GXwy/wCFc/2p/wATf+0Pt/lf8u3lbNm//bbOd/t0rz/9mX/maf8At0/9rVwHwy+Jv/Cuf7U/4lH9ofb/ACv+Xnytmzf/ALDZzv8AbpR8Mvib/wAK5/tT/iUf2h9v8r/l58rZs3/7DZzv9ulHwy+Jv/Cuf7U/4lH9ofb/ACv+Xnytmzf/ALDZzv8AbpXf/sy/8zT/ANun/tavQPhl8Mv+Fc/2p/xN/wC0Pt/lf8u3lbNm/wD22znf7dK8/wD2Zf8Amaf+3T/2tXoHwy+GX/Cuf7U/4m/9ofb/ACv+Xbytmzf/ALbZzv8AbpXgHwy+Jv8Awrn+1P8AiUf2h9v8r/l58rZs3/7DZzv9uld/+zL/AMzT/wBun/tavQPhl8Mv+Fc/2p/xN/7Q+3+V/wAu3lbNm/8A22znf7dK8A+GXxN/4Vz/AGp/xKP7Q+3+V/y8+Vs2b/8AYbOd/t0o+GXxN/4Vz/an/Eo/tD7f5X/Lz5WzZv8A9hs53+3Su/8A2Zf+Zp/7dP8A2tR/ybn/ANTD/bv/AG6eR5H/AH83bvO9sbe+eD9mX/maf+3T/wBrUfsy/wDM0/8Abp/7Wo/4Zl/6m7/ym/8A22j/AIZl/wCpu/8AKb/9to/4Zl/6m7/ym/8A22vQPhl8Mv8AhXP9qf8AE3/tD7f5X/Lt5WzZv/22znf7dK9Aooor5/8A2Zf+Zp/7dP8A2tXAfE34m/8ACxv7L/4lH9n/AGDzf+Xnzd+/Z/sLjGz360fE34m/8LG/sv8A4lH9n/YPN/5efN379n+wuMbPfrXv/wAMvhl/wrn+1P8Aib/2h9v8r/l28rZs3/7bZzv9ulfIFFegfDL4m/8ACuf7U/4lH9ofb/K/5efK2bN/+w2c7/bpXf8A7TX/ADK3/b3/AO0a9A+GXxN/4WN/an/Eo/s/7B5X/Lz5u/fv/wBhcY2e/WvAPib8Mv8AhXP9l/8AE3/tD7f5v/Lt5WzZs/22znf7dKPib8Mv+Fc/2X/xN/7Q+3+b/wAu3lbNmz/bbOd/t0rv/wBmX/maf+3T/wBrVwHxN+GX/Cuf7L/4m/8AaH2/zf8Al28rZs2f7bZzv9ulHxN+GX/Cuf7L/wCJv/aH2/zf+XbytmzZ/ttnO/26V3//AAzL/wBTd/5Tf/ttH7TX/Mrf9vf/ALRrgPhl8Tf+Fc/2p/xKP7Q+3+V/y8+Vs2b/APYbOd/t0o+Jvwy/4Vz/AGX/AMTf+0Pt/m/8u3lbNmz/AG2znf7dK7//AJOM/wCpe/sL/t78/wA//v3t2+T753dscn/Juf8A1MP9u/8Abp5Hkf8Afzdu872xt7548Ar3/wD5Nz/6mH+3f+3TyPI/7+bt3ne2NvfPHAfE34Zf8K5/sv8A4m/9ofb/ADf+XbytmzZ/ttnO/wBuld/+01/zK3/b3/7Rr6Aorz/4ZfE3/hY39qf8Sj+z/sHlf8vPm79+/wD2FxjZ79a9Aooor5A+Jvwy/wCFc/2X/wATf+0Pt/m/8u3lbNmz/bbOd/t0o+JvxN/4WN/Zf/Eo/s/7B5v/AC8+bv37P9hcY2e/Wu//AGmv+ZW/7e//AGjXoHwy+GX/AArn+1P+Jv8A2h9v8r/l28rZs3/7bZzv9ulHwy+Jv/Cxv7U/4lH9n/YPK/5efN379/8AsLjGz3615/8A8nGf9S9/YX/b35/n/wDfvbt8n3zu7Y5+gK+QPib8Tf8AhY39l/8AEo/s/wCweb/y8+bv37P9hcY2e/Wvf/hl8Tf+Fjf2p/xKP7P+weV/y8+bv37/APYXGNnv1rz/AP4aa/6lH/ypf/aq9A+Jvwy/4WN/Zf8AxN/7P+web/y7ebv37P8AbXGNnv1r0CvkD4m/DL/hXP8AZf8AxN/7Q+3+b/y7eVs2bP8AbbOd/t0rv/8Ahpr/AKlH/wAqX/2qj/hmX/qbv/Kb/wDbaP8Ak3P/AKmH+3f+3TyPI/7+bt3ne2NvfPHoHxN+Jv8Awrn+y/8AiUf2h9v83/l58rZs2f7DZzv9ulHwy+GX/Cuf7U/4m/8AaH2/yv8Al28rZs3/AO22c7/bpXn/AO01/wAyt/29/wDtGj/hpr/qUf8Aypf/AGqj/k4z/qXv7C/7e/P8/wD797dvk++d3bHJ/wANNf8AUo/+VL/7VXAfE34Zf8K5/sv/AIm/9ofb/N/5dvK2bNn+22c7/bpR8Mvib/wrn+1P+JR/aH2/yv8Al58rZs3/AOw2c7/bpR8Mvhl/wsb+1P8Aib/2f9g8r/l283fv3/7a4xs9+tHwy+Jv/Cuf7U/4lH9ofb/K/wCXnytmzf8A7DZzv9ulfX9FFFFfP/8AwzL/ANTd/wCU3/7bXoHwy+GX/Cuf7U/4m/8AaH2/yv8Al28rZs3/AO22c7/bpXgHwy+GX/Cxv7U/4m/9n/YPK/5dvN379/8AtrjGz3613/8AwzL/ANTd/wCU3/7bR/w01/1KP/lS/wDtVegfDL4Zf8K5/tT/AIm/9ofb/K/5dvK2bN/+22c7/bpR8Mvib/wsb+1P+JR/Z/2Dyv8Al583fv3/AOwuMbPfrR8Mvhl/wrn+1P8Aib/2h9v8r/l28rZs3/7bZzv9uleAfE34Zf8ACuf7L/4m/wDaH2/zf+XbytmzZ/ttnO/26V3/AO01/wAyt/29/wDtGuA+GXwy/wCFjf2p/wATf+z/ALB5X/Lt5u/fv/21xjZ79a9/+Jvwy/4WN/Zf/E3/ALP+web/AMu3m79+z/bXGNnv1rwD4m/DL/hXP9l/8Tf+0Pt/m/8ALt5WzZs/22znf7dK9/8Aib8Tf+Fc/wBl/wDEo/tD7f5v/Lz5WzZs/wBhs53+3SvP/wBpr/mVv+3v/wBo0f8AJuf/AFMP9u/9unkeR/383bvO9sbe+eD9mX/maf8At0/9rV4BXoHwy+Jv/Cuf7U/4lH9ofb/K/wCXnytmzf8A7DZzv9uld/8A8m5/9TD/AG7/ANunkeR/383bvO9sbe+eOA+GXxN/4Vz/AGp/xKP7Q+3+V/y8+Vs2b/8AYbOd/t0rv/8Ak3P/AKmH+3f+3TyPI/7+bt3ne2NvfPHoHxN+GX/Cxv7L/wCJv/Z/2Dzf+Xbzd+/Z/trjGz3614B8Mvib/wAK5/tT/iUf2h9v8r/l58rZs3/7DZzv9ule/wDxN+Jv/Cuf7L/4lH9ofb/N/wCXnytmzZ/sNnO/26UfE34m/wDCuf7L/wCJR/aH2/zf+XnytmzZ/sNnO/26V5/+zL/zNP8A26f+1q+gKKKK+f8A/k3P/qYf7d/7dPI8j/v5u3ed7Y2988H/ACbn/wBTD/bv/bp5Hkf9/N27zvbG3vnjgPib8Mv+Fc/2X/xN/wC0Pt/m/wDLt5WzZs/22znf7dK9/wDhl8Mv+Fc/2p/xN/7Q+3+V/wAu3lbNm/8A22znf7dKPib8Mv8AhY39l/8AE3/s/wCweb/y7ebv37P9tcY2e/WvAPib8Mv+Fc/2X/xN/wC0Pt/m/wDLt5WzZs/22znf7dK8/r3/APaa/wCZW/7e/wD2jXAfDL4m/wDCuf7U/wCJR/aH2/yv+Xnytmzf/sNnO/26V7/8Mvhl/wAK5/tT/ib/ANofb/K/5dvK2bN/+22c7/bpXn//AA01/wBSj/5Uv/tVegfE34m/8K5/sv8A4lH9ofb/ADf+XnytmzZ/sNnO/wBulHxN+Jv/AArn+y/+JR/aH2/zf+XnytmzZ/sNnO/26V5/+01/zK3/AG9/+0aP2Zf+Zp/7dP8A2tR+zL/zNP8A26f+1qP+TjP+pe/sL/t78/z/APv3t2+T753dsc+AV7/+zL/zNP8A26f+1q9A+GXwy/4Vz/an/E3/ALQ+3+V/y7eVs2b/APbbOd/t0rwD4ZfDL/hY39qf8Tf+z/sHlf8ALt5u/fv/ANtcY2e/Wvf/AIm/E3/hXP8AZf8AxKP7Q+3+b/y8+Vs2bP8AYbOd/t0rwD4m/DL/AIVz/Zf/ABN/7Q+3+b/y7eVs2bP9ts53+3Su/wD2mv8AmVv+3v8A9o1wHwy+Jv8Awrn+1P8AiUf2h9v8r/l58rZs3/7DZzv9ulHxN+GX/Cuf7L/4m/8AaH2/zf8Al28rZs2f7bZzv9ule/8Awy+GX/Cuf7U/4m/9ofb/ACv+Xbytmzf/ALbZzv8AbpXoFFFFfIHwy+GX/Cxv7U/4m/8AZ/2Dyv8Al283fv3/AO2uMbPfrXf/APDMv/U3f+U3/wC20f8AJxn/AFL39hf9vfn+f/3727fJ987u2OfQPhl8Mv8AhXP9qf8AE3/tD7f5X/Lt5WzZv/22znf7dK8//wCGmv8AqUf/ACpf/aq8Ar3/AP4aa/6lH/ypf/aq9A+GXwy/4Vz/AGp/xN/7Q+3+V/y7eVs2b/8AbbOd/t0rwD4m/DL/AIVz/Zf/ABN/7Q+3+b/y7eVs2bP9ts53+3Svf/ib8Mv+Fjf2X/xN/wCz/sHm/wDLt5u/fs/21xjZ79a8/wD+TjP+pe/sL/t78/z/APv3t2+T753dsc+gfDL4m/8ACxv7U/4lH9n/AGDyv+Xnzd+/f/sLjGz360fDL4Zf8K5/tT/ib/2h9v8AK/5dvK2bN/8AttnO/wBulef/APJxn/Uvf2F/29+f5/8A3727fJ987u2OT/hpr/qUf/Kl/wDaqP2mv+ZW/wC3v/2jR+zL/wAzT/26f+1q8Ar3/wD4Zl/6m7/ym/8A22vQPhl8Tf8AhY39qf8AEo/s/wCweV/y8+bv37/9hcY2e/Wj4m/E3/hXP9l/8Sj+0Pt/m/8ALz5WzZs/2Gznf7dKPib8Mv8AhY39l/8AE3/s/wCweb/y7ebv37P9tcY2e/Wj4ZfE3/hY39qf8Sj+z/sHlf8ALz5u/fv/ANhcY2e/Wj4ZfDL/AIVz/an/ABN/7Q+3+V/y7eVs2b/9ts53+3SvQK+f/wDk4z/qXv7C/wC3vz/P/wC/e3b5Pvnd2xz9AUUUUV5/8Mvhl/wrn+1P+Jv/AGh9v8r/AJdvK2bN/wDttnO/26V5/wD8m5/9TD/bv/bp5Hkf9/N27zvbG3vnjwCvQPib8Mv+Fc/2X/xN/wC0Pt/m/wDLt5WzZs/22znf7dK7/wD5Nz/6mH+3f+3TyPI/7+bt3ne2NvfPHAfDL4m/8K5/tT/iUf2h9v8AK/5efK2bN/8AsNnO/wBulHwy+GX/AAsb+1P+Jv8A2f8AYPK/5dvN379/+2uMbPfrXf8A7TX/ADK3/b3/AO0a4D4m/DL/AIVz/Zf/ABN/7Q+3+b/y7eVs2bP9ts53+3Sj4ZfDL/hY39qf8Tf+z/sHlf8ALt5u/fv/ANtcY2e/Wu//AGmv+ZW/7e//AGjXoHxN+GX/AAsb+y/+Jv8A2f8AYPN/5dvN379n+2uMbPfrXoFfIHwy+Jv/AArn+1P+JR/aH2/yv+Xnytmzf/sNnO/26UfDL4Zf8LG/tT/ib/2f9g8r/l283fv3/wC2uMbPfrXf/wDDTX/Uo/8AlS/+1Ufsy/8AM0/9un/tavAK9A+GXwy/4WN/an/E3/s/7B5X/Lt5u/fv/wBtcY2e/Wu//wCGmv8AqUf/ACpf/aq4D4ZfE3/hXP8Aan/Eo/tD7f5X/Lz5WzZv/wBhs53+3Su//wCTjP8AqXv7C/7e/P8AP/797dvk++d3bHPoHxN+Jv8Awrn+y/8AiUf2h9v83/l58rZs2f7DZzv9ulHxN+Jv/Cuf7L/4lH9ofb/N/wCXnytmzZ/sNnO/26UfDL4m/wDCxv7U/wCJR/Z/2Dyv+Xnzd+/f/sLjGz360fE34m/8K5/sv/iUf2h9v83/AJefK2bNn+w2c7/bpR8Mvib/AMLG/tT/AIlH9n/YPK/5efN379/+wuMbPfrXoFFFFfIHwy+Jv/Cuf7U/4lH9ofb/ACv+Xnytmzf/ALDZzv8AbpX1/XwBXoHxN+GX/Cuf7L/4m/8AaH2/zf8Al28rZs2f7bZzv9ule/8Awy+Jv/Cxv7U/4lH9n/YPK/5efN379/8AsLjGz360fE34m/8ACuf7L/4lH9ofb/N/5efK2bNn+w2c7/bpR8Mvhl/wrn+1P+Jv/aH2/wAr/l28rZs3/wC22c7/AG6V5/8Asy/8zT/26f8AtauA+JvxN/4WN/Zf/Eo/s/7B5v8Ay8+bv37P9hcY2e/Wvf8A4m/E3/hXP9l/8Sj+0Pt/m/8ALz5WzZs/2Gznf7dK8A+JvxN/4WN/Zf8AxKP7P+web/y8+bv37P8AYXGNnv1r3/4m/E3/AIVz/Zf/ABKP7Q+3+b/y8+Vs2bP9hs53+3SvP/8Ak3P/AKmH+3f+3TyPI/7+bt3ne2NvfPB/w01/1KP/AJUv/tVegfE34m/8K5/sv/iUf2h9v83/AJefK2bNn+w2c7/bpXn/AO01/wAyt/29/wDtGj/hpr/qUf8Aypf/AGqvoCvkD4ZfE3/hXP8Aan/Eo/tD7f5X/Lz5WzZv/wBhs53+3Svf/ib8Tf8AhXP9l/8AEo/tD7f5v/Lz5WzZs/2Gznf7dK8//wCGZf8Aqbv/ACm//baP2mv+ZW/7e/8A2jR/ybn/ANTD/bv/AG6eR5H/AH83bvO9sbe+ePQPib8Tf+Fc/wBl/wDEo/tD7f5v/Lz5WzZs/wBhs53+3SvAPhl8Tf8AhXP9qf8AEo/tD7f5X/Lz5WzZv/2Gznf7dK9/+GXxN/4WN/an/Eo/s/7B5X/Lz5u/fv8A9hcY2e/Wj4ZfE3/hY39qf8Sj+z/sHlf8vPm79+//AGFxjZ79a9Aoooor5/8A2Zf+Zp/7dP8A2tR/wzL/ANTd/wCU3/7bR/ybn/1MP9u/9unkeR/383bvO9sbe+ePQPib8Tf+Fc/2X/xKP7Q+3+b/AMvPlbNmz/YbOd/t0o+JvxN/4Vz/AGX/AMSj+0Pt/m/8vPlbNmz/AGGznf7dK8A+Jvwy/wCFc/2X/wATf+0Pt/m/8u3lbNmz/bbOd/t0r3/4m/DL/hY39l/8Tf8As/7B5v8Ay7ebv37P9tcY2e/Wj4m/E3/hXP8AZf8AxKP7Q+3+b/y8+Vs2bP8AYbOd/t0r5Ar0D4ZfE3/hXP8Aan/Eo/tD7f5X/Lz5WzZv/wBhs53+3Su//wCGmv8AqUf/ACpf/aq4D4ZfE3/hXP8Aan/Eo/tD7f5X/Lz5WzZv/wBhs53+3Su//aa/5lb/ALe//aNcB8Mvhl/wsb+1P+Jv/Z/2Dyv+Xbzd+/f/ALa4xs9+tHxN+Jv/AAsb+y/+JR/Z/wBg83/l583fv2f7C4xs9+te/wDwy+GX/Cuf7U/4m/8AaH2/yv8Al28rZs3/AO22c7/bpXgHwy+GX/Cxv7U/4m/9n/YPK/5dvN379/8AtrjGz360fE34Zf8ACuf7L/4m/wDaH2/zf+XbytmzZ/ttnO/26V5/Xv8A+01/zK3/AG9/+0a4D4ZfDL/hY39qf8Tf+z/sHlf8u3m79+//AG1xjZ79a9/+GXxN/wCFjf2p/wASj+z/ALB5X/Lz5u/fv/2FxjZ79aPhl8Mv+Fc/2p/xN/7Q+3+V/wAu3lbNm/8A22znf7dK+QK9/wD2Zf8Amaf+3T/2tX0BRRRRXyB8Tfhl/wAK5/sv/ib/ANofb/N/5dvK2bNn+22c7/bpXf8A/DTX/Uo/+VL/AO1VwHwy+GX/AAsb+1P+Jv8A2f8AYPK/5dvN379/+2uMbPfrXf8A/DMv/U3f+U3/AO21wHwy+Jv/AArn+1P+JR/aH2/yv+Xnytmzf/sNnO/26UfDL4m/8K5/tT/iUf2h9v8AK/5efK2bN/8AsNnO/wBule//ABN+Jv8Awrn+y/8AiUf2h9v83/l58rZs2f7DZzv9uleAfE34m/8ACxv7L/4lH9n/AGDzf+Xnzd+/Z/sLjGz3615/XoHxN+Jv/Cxv7L/4lH9n/YPN/wCXnzd+/Z/sLjGz3613/wC01/zK3/b3/wC0a9A+GXwy/wCFc/2p/wATf+0Pt/lf8u3lbNm//bbOd/t0rwD4ZfDL/hY39qf8Tf8As/7B5X/Lt5u/fv8A9tcY2e/Wu/8A+GZf+pu/8pv/ANtrgPhl8Mv+Fjf2p/xN/wCz/sHlf8u3m79+/wD21xjZ79a8/r0D4ZfDL/hY39qf8Tf+z/sHlf8ALt5u/fv/ANtcY2e/Wj4m/E3/AIWN/Zf/ABKP7P8AsHm/8vPm79+z/YXGNnv1rv8A/hpr/qUf/Kl/9qr0D4m/DL/hY39l/wDE3/s/7B5v/Lt5u/fs/wBtcY2e/WvP/wBmX/maf+3T/wBrV6B8Mvib/wALG/tT/iUf2f8AYPK/5efN379/+wuMbPfrXgHwy+GX/Cxv7U/4m/8AZ/2Dyv8Al283fv3/AO2uMbPfrXf/APDMv/U3f+U3/wC20fsy/wDM0/8Abp/7WrgPib8Mv+Fc/wBl/wDE3/tD7f5v/Lt5WzZs/wBts53+3Svf/hl8Mv8AhXP9qf8AE3/tD7f5X/Lt5WzZv/22znf7dK9Aooorz/4m/DL/AIWN/Zf/ABN/7P8AsHm/8u3m79+z/bXGNnv1rwD4ZfE3/hXP9qf8Sj+0Pt/lf8vPlbNm/wD2Gznf7dK7/wDZl/5mn/t0/wDa1egfDL4Zf8K5/tT/AIm/9ofb/K/5dvK2bN/+22c7/bpXgHwy+GX/AAsb+1P+Jv8A2f8AYPK/5dvN379/+2uMbPfrR8Tfhl/wrn+y/wDib/2h9v8AN/5dvK2bNn+22c7/AG6V3/7TX/Mrf9vf/tGuA+GXxN/4Vz/an/Eo/tD7f5X/AC8+Vs2b/wDYbOd/t0o+Jvwy/wCFc/2X/wATf+0Pt/m/8u3lbNmz/bbOd/t0r6/rz/4ZfDL/AIVz/an/ABN/7Q+3+V/y7eVs2b/9ts53+3Sj4ZfDL/hXP9qf8Tf+0Pt/lf8ALt5WzZv/ANts53+3SvP/ANmX/maf+3T/ANrV6B8Mvhl/wrn+1P8Aib/2h9v8r/l28rZs3/7bZzv9uleAfDL4m/8ACuf7U/4lH9ofb/K/5efK2bN/+w2c7/bpX1/RRXyB8Tfib/wsb+y/+JR/Z/2Dzf8Al583fv2f7C4xs9+td/8A8m5/9TD/AG7/ANunkeR/383bvO9sbe+ePAK+v/ib8Tf+Fc/2X/xKP7Q+3+b/AMvPlbNmz/YbOd/t0rz/APZl/wCZp/7dP/a1egfDL4Zf8K5/tT/ib/2h9v8AK/5dvK2bN/8AttnO/wBuleAfDL4m/wDCuf7U/wCJR/aH2/yv+Xnytmzf/sNnO/26V7/8Tfhl/wALG/sv/ib/ANn/AGDzf+Xbzd+/Z/trjGz3615/+zL/AMzT/wBun/tavoCiiivP/ib8Tf8AhXP9l/8AEo/tD7f5v/Lz5WzZs/2Gznf7dK8//wCTc/8AqYf7d/7dPI8j/v5u3ed7Y2988H/DMv8A1N3/AJTf/ttH/DMv/U3f+U3/AO214BXv/wDwzL/1N3/lN/8AttH/AA01/wBSj/5Uv/tVH/DMv/U3f+U3/wC214BXoHwy+GX/AAsb+1P+Jv8A2f8AYPK/5dvN379/+2uMbPfrXf8A7Mv/ADNP/bp/7Wr0D4ZfE3/hY39qf8Sj+z/sHlf8vPm79+//AGFxjZ79a8//AOGZf+pu/wDKb/8Aba4D4ZfDL/hY39qf8Tf+z/sHlf8ALt5u/fv/ANtcY2e/Wj4ZfDL/AIWN/an/ABN/7P8AsHlf8u3m79+//bXGNnv1r3/4m/DL/hY39l/8Tf8As/7B5v8Ay7ebv37P9tcY2e/WvP8A9mX/AJmn/t0/9rV9AV8//wDDMv8A1N3/AJTf/ttH/Jxn/Uvf2F/29+f5/wD3727fJ987u2OfQPib8Mv+Fjf2X/xN/wCz/sHm/wDLt5u/fs/21xjZ79a9Ar5A+Jvwy/4Vz/Zf/E3/ALQ+3+b/AMu3lbNmz/bbOd/t0o+Jvwy/4Vz/AGX/AMTf+0Pt/m/8u3lbNmz/AG2znf7dK9/+GXwy/wCFc/2p/wATf+0Pt/lf8u3lbNm//bbOd/t0rz//AJOM/wCpe/sL/t78/wA//v3t2+T753dscn7Mv/M0/wDbp/7Wr6Aooorz/wCGXwy/4Vz/AGp/xN/7Q+3+V/y7eVs2b/8AbbOd/t0rz/8A4Zl/6m7/AMpv/wBto/Zl/wCZp/7dP/a1H/Juf/Uw/wBu/wDbp5Hkf9/N27zvbG3vng/Zl/5mn/t0/wDa1H/Juf8A1MP9u/8Abp5Hkf8Afzdu872xt7544D4ZfDL/AIWN/an/ABN/7P8AsHlf8u3m79+//bXGNnv1o+GXwy/4WN/an/E3/s/7B5X/AC7ebv37/wDbXGNnv1o+JvxN/wCFjf2X/wASj+z/ALB5v/Lz5u/fs/2FxjZ79aPhl8Mv+Fjf2p/xN/7P+weV/wAu3m79+/8A21xjZ79a7/8A5OM/6l7+wv8At78/z/8Av3t2+T753dsc8B8Mvib/AMK5/tT/AIlH9ofb/K/5efK2bN/+w2c7/bpXv/xN+GX/AAsb+y/+Jv8A2f8AYPN/5dvN379n+2uMbPfrXn//AA01/wBSj/5Uv/tVegfDL4m/8LG/tT/iUf2f9g8r/l583fv3/wCwuMbPfrXn/wCzL/zNP/bp/wC1q4D4ZfE3/hXP9qf8Sj+0Pt/lf8vPlbNm/wD2Gznf7dKPib8Mv+Fc/wBl/wDE3/tD7f5v/Lt5WzZs/wBts53+3Su//Zl/5mn/ALdP/a1fQFef/E34Zf8ACxv7L/4m/wDZ/wBg83/l283fv2f7a4xs9+tef/8ADTX/AFKP/lS/+1VwHxN+GX/Cuf7L/wCJv/aH2/zf+XbytmzZ/ttnO/26V5/Xv/8AwzL/ANTd/wCU3/7bR/ybn/1MP9u/9unkeR/383bvO9sbe+eD9mX/AJmn/t0/9rV9AUUUV8AUV7//AMnGf9S9/YX/AG9+f5//AH727fJ987u2OfQPhl8Mv+Fc/wBqf8Tf+0Pt/lf8u3lbNm//AG2znf7dK8A+Jvwy/wCFc/2X/wATf+0Pt/m/8u3lbNmz/bbOd/t0rv8A9pr/AJlb/t7/APaNH/DMv/U3f+U3/wC20f8ADMv/AFN3/lN/+216B8Mvhl/wrn+1P+Jv/aH2/wAr/l28rZs3/wC22c7/AG6V5/8A8nGf9S9/YX/b35/n/wDfvbt8n3zu7Y59A+Jvwy/4WN/Zf/E3/s/7B5v/AC7ebv37P9tcY2e/WvQK+QPib8Tf+Fjf2X/xKP7P+web/wAvPm79+z/YXGNnv1o+Jvwy/wCFc/2X/wATf+0Pt/m/8u3lbNmz/bbOd/t0r3/4m/DL/hY39l/8Tf8As/7B5v8Ay7ebv37P9tcY2e/Wj4ZfE3/hY39qf8Sj+z/sHlf8vPm79+//AGFxjZ79a8//AOTjP+pe/sL/ALe/P8//AL97dvk++d3bHPoHxN+Jv/Cuf7L/AOJR/aH2/wA3/l58rZs2f7DZzv8AbpR8Mvhl/wAK5/tT/ib/ANofb/K/5dvK2bN/+22c7/bpXgHxN+GX/Cuf7L/4m/8AaH2/zf8Al28rZs2f7bZzv9uld/8A8My/9Td/5Tf/ALbXoHxN+Jv/AArn+y/+JR/aH2/zf+XnytmzZ/sNnO/26V5/+zL/AMzT/wBun/taj/k3P/qYf7d/7dPI8j/v5u3ed7Y2988fQFfP/wDybn/1MP8Abv8A26eR5H/fzdu872xt754+gKKKKK+AK+v/AIZfE3/hY39qf8Sj+z/sHlf8vPm79+//AGFxjZ79aPhl8Tf+Fjf2p/xKP7P+weV/y8+bv37/APYXGNnv1rwD4m/DL/hXP9l/8Tf+0Pt/m/8ALt5WzZs/22znf7dK9/8Ahl8Mv+Fc/wBqf8Tf+0Pt/lf8u3lbNm//AG2znf7dK8//AOGZf+pu/wDKb/8Aba8Ar6/+Jvwy/wCFjf2X/wATf+z/ALB5v/Lt5u/fs/21xjZ79aPib8Mv+Fjf2X/xN/7P+web/wAu3m79+z/bXGNnv1rz/wD4Zl/6m7/ym/8A22j/AJNz/wCph/t3/t08jyP+/m7d53tjb3zx6B8Mvhl/wrn+1P8Aib/2h9v8r/l28rZs3/7bZzv9ulHwy+GX/Cuf7U/4m/8AaH2/yv8Al28rZs3/AO22c7/bpXgHwy+Jv/Cuf7U/4lH9ofb/ACv+Xnytmzf/ALDZzv8AbpXv/wAMvib/AMLG/tT/AIlH9n/YPK/5efN379/+wuMbPfrXgHxN+GX/AArn+y/+Jv8A2h9v83/l28rZs2f7bZzv9uld/wD8NNf9Sj/5Uv8A7VX0BXyB8Mvhl/wsb+1P+Jv/AGf9g8r/AJdvN379/wDtrjGz3619f18//wDDTX/Uo/8AlS/+1V6B8Tfhl/wsb+y/+Jv/AGf9g83/AJdvN379n+2uMbPfrR8Mvib/AMLG/tT/AIlH9n/YPK/5efN379/+wuMbPfrR8Mvib/wsb+1P+JR/Z/2Dyv8Al583fv3/AOwuMbPfrR8Tfhl/wsb+y/8Aib/2f9g83/l283fv2f7a4xs9+tef/sy/8zT/ANun/taj9mX/AJmn/t0/9rV9AUUUV8//ALTX/Mrf9vf/ALRo/wCGZf8Aqbv/ACm//ba+gK+f/wDk3P8A6mH+3f8At08jyP8Av5u3ed7Y2988eAUV7/8A8NNf9Sj/AOVL/wC1Uf8AJuf/AFMP9u/9unkeR/383bvO9sbe+ePQPib8Mv8AhY39l/8AE3/s/wCweb/y7ebv37P9tcY2e/WvP/8Ak4z/AKl7+wv+3vz/AD/+/e3b5Pvnd2xzwHwy+Jv/AArn+1P+JR/aH2/yv+Xnytmzf/sNnO/26UfDL4Zf8LG/tT/ib/2f9g8r/l283fv3/wC2uMbPfrXv/wATfib/AMK5/sv/AIlH9ofb/N/5efK2bNn+w2c7/bpXn/7Mv/M0/wDbp/7Wr0D4ZfDL/hXP9qf8Tf8AtD7f5X/Lt5WzZv8A9ts53+3Sj4ZfDL/hXP8Aan/E3/tD7f5X/Lt5WzZv/wBts53+3SvAPib8Mv8AhXP9l/8AE3/tD7f5v/Lt5WzZs/22znf7dKPhl8Mv+Fjf2p/xN/7P+weV/wAu3m79+/8A21xjZ79a7/8AZl/5mn/t0/8Aa1cB8Mvib/wrn+1P+JR/aH2/yv8Al58rZs3/AOw2c7/bpR8Mvib/AMK5/tT/AIlH9ofb/K/5efK2bN/+w2c7/bpXf/8AJuf/AFMP9u/9unkeR/383bvO9sbe+eOA+Jvwy/4Vz/Zf/E3/ALQ+3+b/AMu3lbNmz/bbOd/t0o+GXxN/4Vz/AGp/xKP7Q+3+V/y8+Vs2b/8AYbOd/t0rv/8Ak3P/AKmH+3f+3TyPI/7+bt3ne2NvfPB/w01/1KP/AJUv/tVegfDL4m/8LG/tT/iUf2f9g8r/AJefN379/wDsLjGz3616BRRRRXyB8Tfhl/wrn+y/+Jv/AGh9v83/AJdvK2bNn+22c7/bpR8Mvib/AMK5/tT/AIlH9ofb/K/5efK2bN/+w2c7/bpXv/wy+GX/AArn+1P+Jv8A2h9v8r/l28rZs3/7bZzv9ulHxN+GX/Cxv7L/AOJv/Z/2Dzf+Xbzd+/Z/trjGz3615/8A8My/9Td/5Tf/ALbXoHxN+Jv/AArn+y/+JR/aH2/zf+XnytmzZ/sNnO/26V4B8Mvhl/wsb+1P+Jv/AGf9g8r/AJdvN379/wDtrjGz3617/wDDL4m/8LG/tT/iUf2f9g8r/l583fv3/wCwuMbPfrXgHxN+Jv8Awsb+y/8AiUf2f9g83/l583fv2f7C4xs9+te//DL4m/8ACxv7U/4lH9n/AGDyv+Xnzd+/f/sLjGz3614B8Tfhl/wrn+y/+Jv/AGh9v83/AJdvK2bNn+22c7/bpXv/AMTfhl/wsb+y/wDib/2f9g83/l283fv2f7a4xs9+tegV5/8AE34Zf8LG/sv/AIm/9n/YPN/5dvN379n+2uMbPfrR8Tfib/wrn+y/+JR/aH2/zf8Al58rZs2f7DZzv9ulef8A/Jxn/Uvf2F/29+f5/wD3727fJ987u2OfAK9A+GXxN/4Vz/an/Eo/tD7f5X/Lz5WzZv8A9hs53+3Svf8A4m/E3/hXP9l/8Sj+0Pt/m/8ALz5WzZs/2Gznf7dKPhl8Mv8AhXP9qf8AE3/tD7f5X/Lt5WzZv/22znf7dK9Ar5A+JvxN/wCFjf2X/wASj+z/ALB5v/Lz5u/fs/2FxjZ79aPhl8Mv+Fjf2p/xN/7P+weV/wAu3m79+/8A21xjZ79a9/8Aib8Tf+Fc/wBl/wDEo/tD7f5v/Lz5WzZs/wBhs53+3SvQK8/+GXwy/wCFc/2p/wATf+0Pt/lf8u3lbNm//bbOd/t0r0CiiivkD4ZfE3/hXP8Aan/Eo/tD7f5X/Lz5WzZv/wBhs53+3Su//wCGZf8Aqbv/ACm//ba+gK8/+GXwy/4Vz/an/E3/ALQ+3+V/y7eVs2b/APbbOd/t0rz/AP4Zl/6m7/ym/wD22vQPib8Tf+Fc/wBl/wDEo/tD7f5v/Lz5WzZs/wBhs53+3SvQK8/+Jvwy/wCFjf2X/wATf+z/ALB5v/Lt5u/fs/21xjZ79a8//Zl/5mn/ALdP/a1cB8Tfib/wsb+y/wDiUf2f9g83/l583fv2f7C4xs9+te//AAy+GX/Cuf7U/wCJv/aH2/yv+Xbytmzf/ttnO/26UfE34m/8K5/sv/iUf2h9v83/AJefK2bNn+w2c7/bpR8Tfhl/wsb+y/8Aib/2f9g83/l283fv2f7a4xs9+tef/wDJuf8A1MP9u/8Abp5Hkf8Afzdu872xt754P+TjP+pe/sL/ALe/P8//AL97dvk++d3bHPoHwy+GX/Cuf7U/4m/9ofb/ACv+Xbytmzf/ALbZzv8AbpR8Mvhl/wAK5/tT/ib/ANofb/K/5dvK2bN/+22c7/bpXn//AAzL/wBTd/5Tf/tteAUV9f8AxN+Jv/Cuf7L/AOJR/aH2/wA3/l58rZs2f7DZzv8AbpXgHxN+Jv8Awsb+y/8AiUf2f9g83/l583fv2f7C4xs9+tfX9FfIHwy+Jv8Awrn+1P8AiUf2h9v8r/l58rZs3/7DZzv9ulHwy+Jv/Cuf7U/4lH9ofb/K/wCXnytmzf8A7DZzv9ule/8Awy+Jv/Cxv7U/4lH9n/YPK/5efN379/8AsLjGz3616BRRRXyB8Tfhl/wrn+y/+Jv/AGh9v83/AJdvK2bNn+22c7/bpXf/APJxn/Uvf2F/29+f5/8A3727fJ987u2OT/hmX/qbv/Kb/wDbaP8Ak3P/AKmH+3f+3TyPI/7+bt3ne2NvfPB/wzL/ANTd/wCU3/7bR+01/wAyt/29/wDtGj9mX/maf+3T/wBrV6B8Mvhl/wAK5/tT/ib/ANofb/K/5dvK2bN/+22c7/bpXn//AAzL/wBTd/5Tf/ttH/Juf/Uw/wBu/wDbp5Hkf9/N27zvbG3vnjgPhl8Mv+Fjf2p/xN/7P+weV/y7ebv37/8AbXGNnv1r3/4ZfDL/AIVz/an/ABN/7Q+3+V/y7eVs2b/9ts53+3SvP/2Zf+Zp/wC3T/2tXoHxN+GX/Cxv7L/4m/8AZ/2Dzf8Al283fv2f7a4xs9+tef8A/Jxn/Uvf2F/29+f5/wD3727fJ987u2OfQPib8Mv+Fjf2X/xN/wCz/sHm/wDLt5u/fs/21xjZ79a8/wD+Gmv+pR/8qX/2quA+JvxN/wCFjf2X/wASj+z/ALB5v/Lz5u/fs/2FxjZ79a9/+Jvwy/4WN/Zf/E3/ALP+web/AMu3m79+z/bXGNnv1rwD4m/DL/hXP9l/8Tf+0Pt/m/8ALt5WzZs/22znf7dKPib8Mv8AhXP9l/8AE3/tD7f5v/Lt5WzZs/22znf7dK9/+JvxN/4Vz/Zf/Eo/tD7f5v8Ay8+Vs2bP9hs53+3SvP8A9pr/AJlb/t7/APaNH/Juf/Uw/wBu/wDbp5Hkf9/N27zvbG3vng/Zl/5mn/t0/wDa1eAV7/8Asy/8zT/26f8AtavoCiiiivP/AIm/DL/hY39l/wDE3/s/7B5v/Lt5u/fs/wBtcY2e/WvQK8/+GXwy/wCFc/2p/wATf+0Pt/lf8u3lbNm//bbOd/t0o+GXxN/4WN/an/Eo/s/7B5X/AC8+bv37/wDYXGNnv1o+Jvwy/wCFjf2X/wATf+z/ALB5v/Lt5u/fs/21xjZ79a8//aa/5lb/ALe//aNH/Jxn/Uvf2F/29+f5/wD3727fJ987u2OfAK9//wCTjP8AqXv7C/7e/P8AP/797dvk++d3bHJ/w01/1KP/AJUv/tVH/DMv/U3f+U3/AO21wHwy+GX/AAsb+1P+Jv8A2f8AYPK/5dvN379/+2uMbPfrXf8A/DMv/U3f+U3/AO214BXv/wC01/zK3/b3/wC0aP8Ak4z/AKl7+wv+3vz/AD/+/e3b5Pvnd2xyftNf8yt/29/+0a4D4ZfE3/hXP9qf8Sj+0Pt/lf8ALz5WzZv/ANhs53+3Svf/AIZfDL/hXP8Aan/E3/tD7f5X/Lt5WzZv/wBts53+3SvAPhl8Mv8AhY39qf8AE3/s/wCweV/y7ebv37/9tcY2e/Wu/wD+Tc/+ph/t3/t08jyP+/m7d53tjb3zxwHwy+GX/Cxv7U/4m/8AZ/2Dyv8Al283fv3/AO2uMbPfrXf/APDMv/U3f+U3/wC21wHwy+Jv/Cuf7U/4lH9ofb/K/wCXnytmzf8A7DZzv9ule/8AxN+Jv/Cuf7L/AOJR/aH2/wA3/l58rZs2f7DZzv8AbpR8Mvib/wALG/tT/iUf2f8AYPK/5efN379/+wuMbPfrXoFFFFfIHwy+GX/Cxv7U/wCJv/Z/2Dyv+Xbzd+/f/trjGz3613//AAzL/wBTd/5Tf/ttH/DMv/U3f+U3/wC20fsy/wDM0/8Abp/7Wo/5OM/6l7+wv+3vz/P/AO/e3b5Pvnd2xyf8NNf9Sj/5Uv8A7VXAfDL4m/8ACuf7U/4lH9ofb/K/5efK2bN/+w2c7/bpR8Mvhl/wsb+1P+Jv/Z/2Dyv+Xbzd+/f/ALa4xs9+td//AMNNf9Sj/wCVL/7VR/ybn/1MP9u/9unkeR/383bvO9sbe+ePAK9//Zl/5mn/ALdP/a1H7Mv/ADNP/bp/7Wr0D4ZfDL/hXP8Aan/E3/tD7f5X/Lt5WzZv/wBts53+3SvAPhl8Mv8AhY39qf8AE3/s/wCweV/y7ebv37/9tcY2e/WvP69//Zl/5mn/ALdP/a1H7Mv/ADNP/bp/7Wo/aa/5lb/t7/8AaNegfDL4m/8ACxv7U/4lH9n/AGDyv+Xnzd+/f/sLjGz3615/+zL/AMzT/wBun/taj/k3P/qYf7d/7dPI8j/v5u3ed7Y2988H7Mv/ADNP/bp/7Wr0D4ZfDL/hXP8Aan/E3/tD7f5X/Lt5WzZv/wBts53+3SvkCvQPhl8Mv+Fjf2p/xN/7P+weV/y7ebv37/8AbXGNnv1r3/4ZfE3/AIWN/an/ABKP7P8AsHlf8vPm79+//YXGNnv1r0Ciiivn/wDZl/5mn/t0/wDa1eAV7/8Asy/8zT/26f8Ataj9mX/maf8At0/9rUf8nGf9S9/YX/b35/n/APfvbt8n3zu7Y59A+GXxN/4WN/an/Eo/s/7B5X/Lz5u/fv8A9hcY2e/WvP8A/hpr/qUf/Kl/9qrgPhl8Mv8AhY39qf8AE3/s/wCweV/y7ebv37/9tcY2e/WvP6+v/hl8Mv8AhXP9qf8AE3/tD7f5X/Lt5WzZv/22znf7dK8//aa/5lb/ALe//aNegfDL4m/8LG/tT/iUf2f9g8r/AJefN379/wDsLjGz3615/wD8My/9Td/5Tf8A7bR/wzL/ANTd/wCU3/7bXAfDL4Zf8LG/tT/ib/2f9g8r/l283fv3/wC2uMbPfrXv/wATfhl/wsb+y/8Aib/2f9g83/l283fv2f7a4xs9+tHwy+Jv/Cxv7U/4lH9n/YPK/wCXnzd+/f8A7C4xs9+tef8A/Juf/Uw/27/26eR5H/fzdu872xt7544D4m/DL/hXP9l/8Tf+0Pt/m/8ALt5WzZs/22znf7dK7/8A5Nz/AOph/t3/ALdPI8j/AL+bt3ne2NvfPHAfDL4m/wDCuf7U/wCJR/aH2/yv+Xnytmzf/sNnO/26V7/8Mvhl/wAK5/tT/ib/ANofb/K/5dvK2bN/+22c7/bpXgHxN+GX/Cuf7L/4m/8AaH2/zf8Al28rZs2f7bZzv9ulef0V9f8Awy+Jv/Cxv7U/4lH9n/YPK/5efN379/8AsLjGz3615/8Asy/8zT/26f8AtavoCiiivn/9mX/maf8At0/9rUf8My/9Td/5Tf8A7bXoHwy+GX/Cuf7U/wCJv/aH2/yv+Xbytmzf/ttnO/26V5/+zL/zNP8A26f+1q9A+Jvwy/4WN/Zf/E3/ALP+web/AMu3m79+z/bXGNnv1r0CvgCvr/4m/DL/AIWN/Zf/ABN/7P8AsHm/8u3m79+z/bXGNnv1o+JvxN/4Vz/Zf/Eo/tD7f5v/AC8+Vs2bP9hs53+3Sj4ZfDL/AIVz/an/ABN/7Q+3+V/y7eVs2b/9ts53+3SvP/2mv+ZW/wC3v/2jR/wzL/1N3/lN/wDttcB8Mvib/wAK5/tT/iUf2h9v8r/l58rZs3/7DZzv9ule/wDwy+GX/Cuf7U/4m/8AaH2/yv8Al28rZs3/AO22c7/bpR8Tfib/AMK5/sv/AIlH9ofb/N/5efK2bNn+w2c7/bpR8Tfhl/wsb+y/+Jv/AGf9g83/AJdvN379n+2uMbPfrXgHwy+Jv/Cuf7U/4lH9ofb/ACv+Xnytmzf/ALDZzv8AbpR8Mvhl/wALG/tT/ib/ANn/AGDyv+Xbzd+/f/trjGz3617/APDL4Zf8K5/tT/ib/wBofb/K/wCXbytmzf8A7bZzv9ulef8A/DMv/U3f+U3/AO21wHwy+Jv/AArn+1P+JR/aH2/yv+Xnytmzf/sNnO/26V3/AO01/wAyt/29/wDtGuA+GXxN/wCFc/2p/wASj+0Pt/lf8vPlbNm//YbOd/t0r3/4m/E3/hXP9l/8Sj+0Pt/m/wDLz5WzZs/2Gznf7dK8/wD2Zf8Amaf+3T/2tXAfE34Zf8K5/sv/AIm/9ofb/N/5dvK2bNn+22c7/bpXv/wy+GX/AArn+1P+Jv8A2h9v8r/l28rZs3/7bZzv9ulegUUUV8//APDMv/U3f+U3/wC20f8ADMv/AFN3/lN/+20f8My/9Td/5Tf/ALbXoHwy+GX/AArn+1P+Jv8A2h9v8r/l28rZs3/7bZzv9ulef/8ADMv/AFN3/lN/+20f8My/9Td/5Tf/ALbR/wAMy/8AU3f+U3/7bX0BXn/xN+GX/Cxv7L/4m/8AZ/2Dzf8Al283fv2f7a4xs9+tef8A/DMv/U3f+U3/AO216B8Mvhl/wrn+1P8Aib/2h9v8r/l28rZs3/7bZzv9ulHxN+GX/Cxv7L/4m/8AZ/2Dzf8Al283fv2f7a4xs9+tHwy+GX/Cuf7U/wCJv/aH2/yv+Xbytmzf/ttnO/26V6BXn/xN+GX/AAsb+y/+Jv8A2f8AYPN/5dvN379n+2uMbPfrR8Mvhl/wrn+1P+Jv/aH2/wAr/l28rZs3/wC22c7/AG6V5/8A8My/9Td/5Tf/ALbXoHwy+GX/AArn+1P+Jv8A2h9v8r/l28rZs3/7bZzv9ulef/8ADMv/AFN3/lN/+20f8My/9Td/5Tf/ALbXoHxN+GX/AAsb+y/+Jv8A2f8AYPN/5dvN379n+2uMbPfrR8Mvhl/wrn+1P+Jv/aH2/wAr/l28rZs3/wC22c7/AG6UfE34Zf8ACxv7L/4m/wDZ/wBg83/l283fv2f7a4xs9+tegV5/8Mvhl/wrn+1P+Jv/AGh9v8r/AJdvK2bN/wDttnO/26UfE34Zf8LG/sv/AIm/9n/YPN/5dvN379n+2uMbPfrXoFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFf/2Q=="
  }
}
```

### Response Body Params

| Campo                   | Tipo   | Descrição                                                                         | Caracteres |
|-------------------------|--------|-----------------------------------------------------------------------------------|------------|
| `request_control_key` * | uuidv4 | Chave única de identificação da request utilizada pelo cliente no formato uuid v4 | 36         |
| `bank_slip_key` *       | uuidv4 | Chave única de identificação do boleto no formato uuid v4                         | 36         |
| `bank_slip_status` *    | string | Status do boleto       | **[Enumeradores bank_slip_status](#enumeradores-bank_slip_status)**   |
| `our_number` *          | integer| Número único de identificação do boleto junto à carteira                          | 11         |
| `barcode` *             | string | Código de barras do boleto                                                        | 44         |
| `digitable_line` *      | string | Linha digitável do boleto                                                         | 47         |
| `qr_code_data`          | object | Dados do QR Code                             | **[Objeto qr_code_data](#objeto-qr_code_data)** |
| `created_at` *          | string | Data, no formato ISO (UTC - "YYYY-MM-DDTHH:MM:SSZ"), da criação da ocorrência     | 20         |

### Enumeradores bank_slip_status

| Enumerador         | Descrição                               |
|--------------------|-----------------------------------------|
| accepted           | Boleto aceito mas ainda não registrado  |

### Objeto qr_code_data
| Campo                      | Tipo   | Descrição                                             | Caracteres              |
|----------------------------|--------|-------------------------------------------------------|-------------------------|
| `qr_code_key`              | uuidv4 | Chave única de identificação do QR Code               | 36                      |
| `pix_key`                  | uuidv4 | Chave PIX vinculada ao QR Code                        | 36                      |
| `receiver_conciliation_id` | uuidv4 | Identificador de conciliação do QR Code               | 36                      |
| `url`                      | string | URL (Pix Copia e Cola) do QR Code                     | -                       |
| `image`                    | string | base64 da URL (Pix Copia e Cola) do QR Code           | -                       |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | BKS000004            | Not Found | Pix key not found: `{pix_key}`                                               | Chave pix não encontrada: `{pix_key}`                                               |
| 403                      | BKS000005            | Forbidden                         | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 403                      | BKS000010            | Forbidden                                 | The pix key owner does not match the account owner.                                                                                     | O proprietário da chave pix não corresponde ao proprietário da conta.                                                             |
| 404                      | BKS000013            | Not Found | Requester profile not found         |               Carteira não encontrada                                                                 |
| 409                      | BKS000014            | Conflict           | Request control key already sent or duplicated sent: `{request_control_key}`                                                              | Chave de controle da requisição já utilizada ou enviada duplicada: `{request_control_key}`                                                                        |
| 400                      | BKS000016            | Bad Request                                        | Expiration date must be greater than the current date and have a maximum of 3650 days from the current date.                                    | A data de vencimento deve ser maior que a data atual e possuir no máximo 3650 dias corridos a partir da data atual.                                     |
| 409                      | BKS000017            | Conflict                                        | Our number already used or duplicated sent: `{our_number}`                                                                                       | Nosso número já utilizado ou enviado duplicado: `{our_number}`                                                                               |
| 400                      | BKS000018            | Bad Request                                        | The discount dates must be less than the expiration date and increasing.                                                      | A data dos descontos devem ser menores que a de expiração e crescentes.                                               |
| 400                      | BKS000019            | Bad Request                                        | Payer address is required for protest.                                                                                       | Endereço do pagador é obrigatório para protesto.                                                                         |
| 500                      | BKS000021            | Internal Server Error                                  | Error while trying to generate QR Code.                                                               | Erro ao tentar gerar QR Code de pagamento.                                                           |
| 400                      | BKS000022            | Bad Request                                        | Requester profile is not opened.                                                              | Carteira não está aberta.                          |
| 400                      | BKS000026            | Bad Request                      | Guarantor address is required for protest.                                                                                        | Endereço do sacador é obrigatório para protesto.                                                                   |
| 404                      | BKS000028            | Not Found             | Notary office attended region not found for postal code: `{postal_code}`                                                          | Região de cartório não encontrada para o CEP: `{postal_code}`                                                                                 |
| 400                      | BKS000043            | Bad Request             | Invalid discount numbering. Discounts must be numbered in ascending order and start on 1.          | Numeração dos descontos inválida. Os descontos devem ser numerados em ordem crescente e começar em 1.                                                           |
| 400                      | BKS000045            | Bad Request                                        | Rebate amount can not be equal or greater than the bank slip amount.                                                              | O valor do rebate não pode ser igual ou maior do que o valor do boleto.                          |
| 400                      | BKS000047            | Bad Request             | It was not possible to consult the sent pix key at this time. Please try again in a few minutes.          | Não foi possível consultar a chave pix enviada no momento. Por favor, tente novamente em alguns minutos.                                                           |
| 400                      | BKS000125            | Bad Request             | Partial payment data is required for this bank slip species type.          | Os dados de pagamento parcial são obrigatórios para o tipo de boleto fornecido.                                                           |
| 400                      | BKS000128            | Bad Request             | QR code payment is not allowed for partial payment.          | Pagamento via QR code não é permitido para pagamento parcial.                                                           |
| 400                      | BKS000128            | Bad Request             | QR code payment is not allowed for partial payment.          | Pagamento via QR code não é permitido para pagamento parcial.                                                           |
| 400                      | BKS000131            | Bad Request             | Rebate amount is not allowed for this bank slip species type.          | O valor de abatimento não é permitido para o tipo de boleto fornecido.                                                           |
| 400                      | BKS000132            | Bad Request             | Discount data is not allowed for this bank slip species type.          | Os dados de desconto não são permitidos para o tipo de boleto fornecido.                                                           |
| 400                      | BKS000133            | Bad Request             | Fine data is not allowed for this bank slip species type.          | Os dados de multa não são permitidos para o tipo de boleto fornecido.                                                           |
| 400                      | BKS000134            | Bad Request             | Interest data is not allowed for this bank slip species type.          | Os dados de juros não são permitidos para o tipo de boleto fornecido.                                                           |
| 400                      | BKS000136            | Bad Request             | Only credit card financial instrument type can have zero amount.          | Apenas o tipo de instrumento financeiro cartão de crédito pode ter valor zero.                                                           |

---

# Emissão de boletos em lote

URL: /documentation/boletos/emissao/emissao_em_lote

:::danger Importante
Para registrar bolePix, é necessário que exista uma chave Pix aleatória ativa na conta em que os boletos serão registrados.
:::

A emissão de boletos em lote é feita somente de maneira assíncrona. Caso um dos boletos falhe na validação das informações fornecidas, nenhum dos boletos será registrado nessa mesma requisição.

:::caution Atenção!
Como tratam-se de um registros assíncronos, o solicitante é notificado via [**webhook**](/documentation/boletos/v2/webhooks/boleto) assim que cada um dos boletos mudar de status de `accepted` para `registered` ou `rejected`.
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /bank_slip/batch
MÉTODO POST

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |

Request Body

```json
{
  "bank_slips": [
    {
      "request_control_key": "c86d8902-a5ae-4d1f-8872-e6fea1268aab",
      "our_number": 123456789,
      "document_number": "DOC4561237",
      "amount": 5000.00,
      "expiration": "2025-01-01",
      "bank_teller_instructions": "Confirm payment",
      "protest_data": {"days_to_protest": 7},
      "bankruptcy_protest_data": {"days_to_bankruptcy_protest": 14},
      "max_payment_days": 45,
      "fine_data": {"fine_type": "absolute", "fine_amount": 100.00, "days_to_fine": 10},
      "interest_data": {
        "interest_type": "workdays_daily_amount",
        "interest_amount": 10.00,
        "days_to_interest": 2,
      },
      "financial_instrument_type": "digital_commercial_invoice",
      "write_off_data": {"days_to_write_off": 365},
      "rebate_amount": 200.00,
      "discounts_data": [
        {
          "discount_amount": 50.00,
          "discount_number": 1,
          "discount_type": "absolute",
          "discount_limit_date": "2025-01-01",
        }
      ],
      "payer_data": {
        "name": "Global Tech",
        "contact": {
          "email": "finance@globaltech.com",
          "phone": {"country_code": "055", "area_code": "11", "number": "987654321"},
        },
        "address": {
          "street": "101 High St.",
          "neighborhood": "Tech Park",
          "number": "202",
          "postal_code": "49069234",
          "city": "Innovation City",
          "state": "SP",
          "complement": "Building A",
        },
        "document_number": "12345678000195",
        "person_type": "legal",
      },
      "guarantor_data": {
        "name": "Jane Doe",
        "contact": {
          "email": "jane.doe@qitech.com.br",
          "phone": {"country_code": "055", "area_code": "11", "number": "999999999"},
        },
        "address": {
          "street": "202 Elm St.",
          "neighborhood": "Quiet Neighborhood",
          "number": "303",
          "postal_code": "35700854",
          "city": "Peaceful Town",
          "state": "RJ",
          "complement": "House 1",
        },
        "document_number": "23456789012",
        "person_type": "natural",
      },
      "pix_key": "78252991-d26d-4d6b-8c50-be3233ffabf7",
      "notification": {
        "document_number": "12345678000195",
        "name": "Global Tech",
        "email": "finance@globaltech.com",
        "phone": {"country_code": "055", "area_code": "11", "number": "987654321"},
        "send_2_way": true,
        "send_before_due_date": true,
        "send_after_due_date": true,
        "send_on_protest": true
      }
    },
    {
      "request_control_key": "b3a428fd-58ee-4d6f-8872-633874ebf5e2",
      "our_number": 987654321,
      "document_number": "DOC4561237",
      "amount": 5000.00,
      "expiration": "2025-01-01",
      "bank_teller_instructions": "Confirm payment",
      "protest_data": {"days_to_protest": 7},
      "bankruptcy_protest_data": {"days_to_bankruptcy_protest": 14},
      "max_payment_days": 45,
      "fine_data": {"fine_type": "absolute", "fine_amount": 100.00, "days_to_fine": 10},
      "interest_data": {
        "interest_type": "workdays_daily_amount",
        "interest_amount": 10.00,
        "days_to_interest": 2
      },
      "financial_instrument_type": "digital_commercial_invoice",
      "write_off_data": {"days_to_write_off": 365},
      "rebate_amount": 200.00,
      "discounts_data": [
        {
          "discount_amount": 50.00,
          "discount_number": 1,
          "discount_type": "absolute",
          "discount_limit_date": "2025-01-01"
        }
      ],
      "payer_data": {
        "name": "Global Tech",
        "contact": {
          "email": "finance@globaltech.com",
          "phone": {"country_code": "055", "area_code": "11", "number": "987654321"},
        },
        "address": {
          "street": "101 High St.",
          "neighborhood": "Tech Park",
          "number": "202",
          "postal_code": "79071231",
          "city": "Innovation City",
          "state": "SP",
          "complement": "Building A"
        },
        "document_number": "12345678000195",
        "person_type": "legal"
      },
      "guarantor_data": {
        "name": "Jane Doe",
        "contact": {
          "email": "jane.doe@qitech.com.br",
          "phone": {"country_code": "055", "area_code": "11", "number": "999999999"},
        },
        "address": {
          "street": "202 Elm St.",
          "neighborhood": "Quiet Neighborhood",
          "number": "303",
          "postal_code": "65066380",
          "city": "Peaceful Town",
          "state": "RJ",
          "complement": "House 1"
        },
        "document_number": "23456789012",
        "person_type": "natural"
      }
    }
  ]
}
```

### Request Body Params

| Campo            | Tipo          | Descrição                             | Caracteres                                |
|------------------|---------------|---------------------------------------|-------------------------------------------|
| `bank_slips` *   | Array de **[Objeto bank_slip](#objeto-bank_slip)**  | Lista de boletos a serem registrados  | - |

### Objeto bank_slip

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------|
| `request_control_key` *    | uuidv4  | Chave única de identificação da request utilizada pelo cliente no formato uuid v4  | 36                                                |
| `our_number`               | integer | Número único de identificação do boleto junto à carteira. Pode ser enviado pelo cliente e, caso não seja, a QI Tech irá gerar um                           | 11                                                |
| `document_number`          | string  | Número de identificação do boleto                                                  | 10                                                |
| `participant_control_number` | string | Nº Controle do Participante                                                       |
25                                                |
| `amount` *                 | float   | Valor base do boleto                                                               | -                                                 |
| `expiration` *             | string  | Data de vencimento                                                                 | 10                                                |
| `bank_teller_instructions` | string  | Instruções adicionais de registro, que constarão no PDF do boleto. Aceita no máximo 320 caracteres, distribuídos em até 7 linhas. Cada linha pode conter no máximo 90 caracteres. Caso uma linha ultrapasse 90 caracteres, o texto será automaticamente quebrado em uma nova linha | 320                                               |
| `rebate_amount`            | float   | Valor de abatimento do boleto, que será aplicado em cima do valor base             | -                                                 |
| `max_payment_days`         | integer | Máximo de dias corridos que o boleto ficará disponível para pagamento, após o vencimento (pode ser no máximo 365) | -          |
| `financial_instrument_type`   | string  | Tipo de espécie do boleto | **[Enumeradores financial_instrument_type](#enumeradores-financial_instrument_type)** |
| `partial_payment_data`    | object  | Configurações de pagamento parcial                      | **[Objeto partial_payment_data](#objeto-partial_payment_data)** |
| `write_off_data`       | object  | Configuração de baixa      | **[Objeto write_off_data](#objeto-write_off_settings)** |
| `protest_data`         | object  | Configuração de protesto       | **[Objeto protest_data](#objeto-protest_settings)** |
| `bankruptcy_protest_data` | object  | Configuração de protesto falimentar | **[Objeto bankruptcy_protest_data](#objeto-bankruptcy_protest_settings)** |
| `fine_data`            | object  | Configuração de multa                 | **[Objeto fine_data](#objeto-fine_settings)** |
| `interest_data`        | object  | Configuração de juros        | **[Objeto interest_data](#objeto-interest_settings)** |
| `discounts_data`           | object array | Descontos           | **[Objeto discount](#objeto-discounts_data)** |
| `payer_data` *             | object  | Dados do pagador                                                                   | **[Objeto payer_data](#objetos-payer_data-e-guarantor_data)** |
| `guarantor_data`           | object  | Dados do sacador avalista                                                          | **[Objeto guarantor_data](#objetos-payer_data-e-guarantor_data)** |
| `pix_key`                  | uuidv4  | Chave pix do tipo aleatória                                                        | 36                                                |

:::info BolePix
Caso o parâmetro `pix_key`, opcional, seja enviado na request, será gerado um bolePix. BolePix é um boleto cujo pagamento é vinculado a um QR Code Pix. Sendo assim, o pagador pode realizar o pagamento do boleto tanto utilizando a linha digitável do mesmo, quanto através da leitura do QR Code Pix vinculado. Caso o pagamento seja feito via QR Code, a liquidação financeira se dá instantaneamente, enquanto os retornos bancários e webhooks envolvidos na liquidação serão gerados assim como é feito para um boleto comum.

Importante: para registrar um bolePix, é necessário que exista uma chave Pix aleatória ativa na conta em que boleto será registrado.
:::

:::tip Configurações Padrão da Carteira
Caso cada um dos campos `max_payment_days`, `write_off_data`, `protest_data`, `bankruptcy_protest_data`, `fine_data`, `interest_data` e `pix_key` não sejam enviados na request e a carteira possua configurações padrão (i.e. `max_payment_days`, `write_off_settings`, `protest_settings`, `bankruptcy_protest_settings`, `fine_settings`, `interest_settings` e `qr_code_settings`, respectivamente, no `configuration_data` do `requester_profile`), serão utilizadas tais configurações padrão para a emissão do título.
:::

:::caution Limitações e Restrições
- **Boletos de Pagamento Parcial:** Não é permitido o pagamento via QR Code Pix. Portanto, não é permitido enviar a `pix_key` no registro, nem ter uma configuração padrão de geração de bolePix para a carteira.

- **Boletos de Cartão de Crédito:** Não é necessário nem permitido enviar informações rebate, desconto, multa e juros. Isso se deve ao padrão do mercado, onde muitas Instituições Financeiras não aceitam o pagamento de boletos de cartão de crédito que contenham essas informações. A carteira também não pode ter essas configurações definidas como padrão. Sendo assim boletos desse tipo podem ser pagos parcialmente mesmo após o vencimento, sem incidência de juros, multas, descontos ou abatimentos na fatura corrente. Para aplicar esses valores é necessário incluí-los na próxima fatura, seja através da [ocorrência de edição de valor](/documentation/boletos/instrucoes/valor) do boleto ou emitindo um novo boleto que inclua esses valores. É possível enviar `amount = 0` para boletos deste tipo.

**Importante:** Boletos do tipo `credit_card` são obrigatoriamente de pagamento parcial, sendo assim é necessário fornecer as informações de `partial_payment_data` ou ter essa configuração padrão na carteira. Caso o campo `financial_instrument_type` não seja enviado, o valor padrão será `digital_commercial_invoice`.
:::

:::tip Recomendações de Carteiras
- **Carteira para Boletos Padrão:** Mantenha as configurações padrão para multas, juros e protesto
- **Carteira para Boletos de Pagamento Parcial:** Sem configuração de Pix e com regras específicas para pagamento parcial
- **Carteira para Boletos de Cartão de Crédito:** Sem configurações de multa, juros, desconto ou rebate

Criar carteiras específicas garante que as configurações padrão sejam adequadas para cada tipo de boleto e evita conflitos nas regras de negócio.
:::

:::info Máquina de Estados
A máquina de status para boletos de pagamento parcial possui algumas diferenças. Para mais detalhes, consulte a [introdução](/documentation/boletos/introducao) , onde há uma explicação sobre como aplicar a incidência de juros e multas no boleto seguindo as boas práticas do mercado.
:::

### Enumeradores financial_instrument_type

| Enumerador  | Descrição                        |
|-------------|----------------------------------|
| digital_commercial_invoice | DMI Duplicata Mercantil Indicação |
| credit_card | Cartão de Crédito |
| check | CH Cheque |
| digital_commercial | DM Duplicata Mercantil |
| digital_service_invoice | Duplicata de Serviço |
| digital_service_invoice_indication | DSI Duplicata de Serviço Indicação |
| digital_rural_invoice | DR Duplicata Rural |
| bill_of_exchange | LC Letra de Câmbio |
| commercial_credit_note | NCC Nota de Crédito Comercial |
| export_credit_note | NCE Nota de Crédito Exportação |
| industrial_credit_note | NCI Nota de Crédito Industrial |
| rural_credit_note | NCR Nota de Crédito Rural |
| promissory_note | NP Nota Promissória |
| rural_promissory_note | NPR Nota Promissória Rural |
| mercantile_triplicate | TM Triplicata Mercantil |
| service_triplicate | TS Triplicata de Serviço |
| insurance_note | NS Nota de Seguro |
| receipt | RC Recibo |
| printed_bank_slip | FAT Bloqueto |
| debit_note | ND Nota de Débito |
| insurance_policy | AP Apólice de Seguro |
| school_monthly_fee | ME Mensalidade Escolar |
| consortium_installment | PC Parcela de Consórcio |
| invoice | NF Nota Fiscal |
| debt_document | DD Documento de Dívida |
| rural_product_certificate | Cédula de Produto Rural |
| warrant | Warrant |
| state_active_debt | Dívida Ativa de Estado |
| municipal_active_debt | Dívida Ativa de Município |
| federal_active_debt | Dívida Ativa da União |
| condominium_charges | Encargos condominiais |
| proposal_bank_slip | Boleto proposta |
| deposit_and_contribution_bank_slip | Boleto de Depósito e Aporte |
| others | Outros |

### Objeto partial_payment_data

| Campo                             | Tipo    | Descrição                                                                 | Caracteres |
|-----------------------------------|---------|---------------------------------------------------------------------------|------------|
| `partial_payment_minimum_type` *  | string  | Tipo de valor mínimo para pagamento parcial                               | **[Enumeradores partial_payment_type](#enumeradores-partial_payment_type)** |
| `partial_payment_minimum_percentage` | float | Percentual mínimo permitido para o pagamento parcial                      | -          |
| `partial_payment_minimum_amount`  | float  | Valor mínimo permitido para o pagamento parcial                           | -          |
| `partial_payment_maximum_type`    | string  | Tipo de valor máximo para pagamento parcial                               | **[Enumeradores partial_payment_type](#enumeradores-partial_payment_type)** |
| `partial_payment_maximum_percentage` | float | Percentual máximo permitido para o pagamento parcial                      | -          |
| `partial_payment_maximum_amount`  | float  | Valor máximo permitido para o pagamento parcial                           | -          |
| `partial_payment_quantity` *      | integer | Quantidade de pagamentos parciais permitidos                              | -          |

:::caution Atenção!
De acordo com o valor enviado nos campos `partial_payment_minimum_type` e `partial_payment_maximum_type`, é necessário enviar o `partial_payment_minimum_amount` ou `partial_payment_minimum_percentage`, e o `partial_payment_maximum_amount` ou `partial_payment_maximum_percentage` correspondente.
:::

### Enumeradores partial_payment_type

| Enumerador  | Descrição                        |
|-------------|----------------------------------|
| absolute    | Valor absoluto                   |
| percentage  | Percentual                       |

### Objeto write_off_data

| Campo                     | Tipo    | Descrição                                                                   | Caracteres |
|---------------------------|---------|-----------------------------------------------------------------------------|------------|
| `days_to_write_off` *     | integer | Dias, após o vencimento, para que o boleto seja baixado automaticamente     | -          |

### Objeto protest_data

| Campo                     | Tipo    | Descrição                                                                   | Caracteres |
|---------------------------|---------|-----------------------------------------------------------------------------|------------|
| `days_to_protest` *       | integer | Dias, após o vencimento, para que o boleto seja protestado automaticamente  | -          |

### Objeto bankruptcy_protest_data

| Campo                          | Tipo    | Descrição                                                                   | Caracteres  |
|--------------------------------|---------|-----------------------------------------------------------------------------|------------|
| `days_to_bankruptcy_protest` * | integer | Dias, após o vencimento, para que o boleto seja protestado automaticamente  | -           |

### Objeto fine_data

Opção 1: multa em valor absoluto (`fine_type=absolute`)

| Campo                     | Tipo    | Descrição                                               | Caracteres                |
|---------------------------|---------|---------------------------------------------------------|-------------------------------------------------------------------------|
| `fine_type` *             | string  | Tipo da multa                                                       | **[Enumeradores fine_type](#enumeradores-fine_type)**                                              |
| `fine_amount` *           | float   | Valor absoluto da multa                                             | -                                                                        |
| `days_to_fine` *          | integer | Dias, após o vencimento, para que a multa seja cobrada              | -                                                                        |

Opção 2: multa em valor percentual (`fine_type=percentage`)

| Campo                     | Tipo    | Descrição                                                 | Caracteres                             |
|---------------------------|---------|-----------------------------------------------------------|---------------------------------------|
| `fine_type` *             | string  | Tipo da multa                                             | **[Enumeradores fine_type](#enumeradores-fine_type)** |
| `fine_percentage` *       | integer | Valor percentual da multa, de 1 a 100                     | -                                      |
| `days_to_fine` *          | integer | Dias, após o vencimento, para que a multa seja cobrada    | -                                      |

### Enumeradores fine_type

| Enumerador         | Descrição             |
|--------------------|-----------------------|
| absolute           | valor absoluto        |
| percentage         | valor percentual      |

### Objeto interest_data

Opção 1: juros utilizando valores absolutos (`interest_type=calendar_days_daily_amount` ou `interest_type=workdays_daily_amount`)

| Campo                     | Tipo    | Descrição                                                                     | Caracteres                                                                                      |
|---------------------------|---------|-------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|
| `interest_type` *         | string  | Tipo de juros       | **[Enumeradores interest_type](#enumeradores-interest_type)** |
| `interest_amount` *       | float   | Valor a ser cobrado por unidade de tempo determinada (dias úteis ou corridos) | -                                                                                               |
| `days_to_interest` *      | integer | Dias, após o vencimento, para que comece a cobrar os juros                    | -                                                                                               |

Opção 2: juros utilizando valores percentuais (`interest_type=calendar_days_monthly_percentage`)

| Campo                    | Tipo    | Descrição                                                                             | Caracteres                                                                                          |
|--------------------------|---------|---------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|
| `interest_type` *        | string  | Tipo de juros       | **[Enumeradores interest_type](#enumeradores-interest_type)** |
| `interest_percentage` *  | integer | Porcentagem a ser cobrada por unidade de tempo determinada (dias úteis ou corridos)                                                                      | -                                                                           |
| `days_to_interest` *     | integer | Dias, após o vencimento, para que comece a cobrar os juros                             | -                                                                                                   |

### Enumeradores interest_type

| Enumerador                       | Descrição                                                            |
|----------------------------------|----------------------------------------------------------------------|
| calendar_days_daily_amount       | Valor diário sobre dias corridos                                     |
| workdays_daily_amount            | Valor diário sobre dias úteis                                        |
| calendar_days_monthly_percentage | Porcentagem de juros cobrados mensalmente, com base em dias corridos |

### Objeto discount

Opção 1: descontos utilizando valores absolutos (`discount_type in ["absolute", "anticipation_calendar_days_daily_amount", "anticipation_workdays_daily_amount"]`)

| Campo                     | Tipo    | Descrição                                           | Caracteres                                                |
|---------------------------|---------|-----------------------------------------------------|-----------------------------------------------------------|
| `discount_amount` *       | float   | Valor absoluto de desconto por unidade de tempo                                            | -                                                          |
| `discount_number` *       | integer | Número do desconto                                     | -                                                         |
| `discount_type` *         | string  | Configuração do desconto em valores absolutos                                    | **[Enumerador discount_type](#enumeradores-discount_type)** |                                                       |
| `discount_limit_date` *   | string  | Data limite para aplicação do desconto   | 10                                                        |

Opção 2: descontos utilizando valores percentuais (`discount_type in ["percentage", "anticipation_calendar_days_daily_percentage", "anticipation_workdays_daily_percentage"]`)

| Campo                     | Tipo    | Descrição                                           | Caracteres                                                |
|---------------------------|---------|-----------------------------------------------------|-----------------------------------------------------------|
| `discount_percentage` *   | float   | Valor percentual de desconto por unidade de tempo                                            | -                                                          |
| `discount_number` *       | integer | Número do desconto                                     | -                                                         |
| `discount_type` *         | string  | Configuração do desconto em valores percentuais                                    | **[Enumerador discount_type](#enumeradores-discount_type)** |                                                       |
| `discount_limit_date` *   | string  | Data limite para aplicação do desconto   | 10                                                        |

:::caution Atenção!
O boleto pode ter até três descontos, sendo que os descontos devem ser todos do mesmo tipo , isto é, devem ter o mesmo `discount_type`. Os descontos devem ser numerados de 1 a 3, de maneira crescente e começando necessariamente em 1. Ou seja, caso sejam enviados dois descontos na requisição, devem necessariamente ser numerados com 1 e 2.
:::

### Enumeradores discount_type

| Enumerador                                  | Descrição                                                                |
|---------------------------------------------|--------------------------------------------------------------------------|
| absolute                                    | Valor fixo                                                               |
| anticipation_calendar_days_daily_amount     | Valor diário de desconto de antecipação, sobre dias corridos             |
| anticipation_workdays_daily_amount          | Valor diário de desconto de antecipação, sobre dias úteis                |
| percentage                                  | Porcentagem fixa                                                         |
| anticipation_calendar_days_daily_percentage | Porcentagem mensal de desconto de antecipação, com base em dias corridos |
| anticipation_workdays_daily_percentage      | Porcentagem anual de desconto de antecipação, com base em dias úteis     |

### Objetos payer_data e guarantor_data

| Campo                     | Tipo   | Descrição                                                  | Caracteres|
|---------------------------|--------|-------------------------------------|-----------------------------------------------------------|
| `name` *                  | string | Nome completo                       | 100                                                       |
| `document_number` *       | string | Número do documento (CPF/CNPJ)      | 11 ou 14                                                  |
| `person_type` *           | string | Tipo da pessoa (física ou jurídica) | **[Enumeradores person_type](#enumeradores-person_type)** |
| `contact`                 | object | Informações de contato              | **[Objeto contact](#objeto-contact)**                     |
| `address`                 | object | Endereço                            | **[Objeto address](#objeto-address)**                     |

### Enumeradores person_type

| Enumerador         | Descrição             |
|--------------------|-----------------------|
| natural            | pessoa física         |
| legal              | pessoa jurídica       |

### Objeto contact

| Campo                     | Tipo   | Descrição                         | Caracteres                         |
|---------------------------|--------|-----------------------------------|------------------------------------|
| `email`                   | string | E-mail de contato                 | 320                                |
| `phone`                   | object | Telefone de contato               | **[Objeto phone](#objeto-phone)**  |

### Objeto phone

| Campo                           | Tipo   | Descrição                                    | Caracteres |
|---------------------------------|--------|----------------------------------------------|------------|
| `country_code` *     | string | Código DDI (Discagem Direta Internacional)   | 3          |
| `area_code` *                   | string | Código DDD (Discagem Direta à Distância)     | 2          |
| `number` *                      | string | Complemento                                  | 9          |

### Objeto address

| Campo                     | Tipo   | Descrição                                    | Caracteres |
|---------------------------|--------|----------------------------------------------|------------|
| `street` *                | string | Logradouro                                   | 500        |
| `number` *                | string | Número                                       | 6          |
| `complement`              | string | Complemento                                  | 500        |
| `neighborhood` *          | string | Bairro                                       | 100        |
| `postal_code` *           | string | CEP                                          | 8          |
| `city` *                  | string | Cidade                                       | 100        |
| `state` *                 | string | Estado (UF) | **[Enumerador state](#enumeradores-state)** |

### Enumeradores state

| Enumerador         | Descrição             |
|--------------------|-----------------------|
| AC                 | Acre                  |
| AL                 | Alagoas               |
| AM                 | Amazonas              |
| AP                 | Amapá                 |
| BA                 | Bahia                 |
| CE                 | Ceará                 |
| DF                 | Distrito federal      |
| ES                 | Espírito Santo        |
| GO                 | Goiás                 |
| MA                 | Maranhão              |
| MG                 | Minas Gerais          |
| MS                 | Mato Grosso do Sul    |
| MT                 | Mato Grosso           |
| PA                 | Pará                  |
| PB                 | Paraíba               |
| PE                 | Pernambuco            |
| PI                 | Piauí                 |
| PR                 | Paraná                |
| RJ                 | Rio de Janeiro        |
| RN                 | Rio Grande do Norte   |
| RO                 | Rondônia              |
| RR                 | Roraima               |
| RS                 | Rio Grande do Sul     |
| SC                 | Santa Catarina        |
| SE                 | Sergipe               |
| SP                 | São Paulo             |
| TO                 | Tocantins             |
| EX                 | Exceção               |

### Objeto notification

| Campo                     | Tipo    | Descrição                                                                               | Caracteres |
|---------------------------|---------|-----------------------------------------------------------------------------------------|------------|
| `document_number` *       | string  | Número do documento de quem receberá as notificações (CPF/CNPJ)                         | 11 ou 14   |
| `name` *                  | string  | Nome de quem receberá as notificações                                                   | 100        |
| `email`                   | string  | E-mail para o qual serão enviadas as notificações                                       | 320        |
| `phone`                   | object  | Telefone de contato para o qual serão enviadas as notificações | **[Objeto phone](#objeto-phone)**   |
| `send_2_way` *            | boolean | Enviar segunda via                                                                      | -          |
| `send_before_due_date` *  | boolean | Enviar notificação ao pagador antes da data de vencimento                               | -          |
| `send_after_due_date` *   | boolean | Enviar notificação ao pagador quando o boleto vencer                                    | -          |
| `send_on_protest` *       | boolean | Enviar notificação ao entrar em fluxo de protesto                                       | -          |

## Response

STATUS 202

Response Body

```json
{
  "bank_slips": [
    {
      "request_control_key": "c86d8902-a5ae-4d1f-8872-e6fea1268aab",
      "bank_slip_key": "053c7074-c55c-49aa-b94d-629e8d2424cf",
      "bank_slip_status": "accepted",
      "our_number": 123456789,
      "barcode": "32992995900000892814549111682910713279164650",
      "digitable_line": "32994549121168291071332791646501299590000089281",
      "qr_code_data": {
        "qr_code_key": "0a6ffa83-63ec-438f-95be-76e1ab8329e5",
        "pix_key": "78252991-d26d-4d6b-8c50-be3233ffabf7",
        "receiver_conciliation_id": "01GVGV9NXBCY287Z6CJ4S0ENW9",
        "url": "00020126830014br.gov.bcb.pix2561qrcode.qitech.app/bacen/cobv/58fd5103a8e64bbbab2fd49b0bd580145204000053039865802BR5925GONNFUNDODEINVESTIMENTOEM6012RiodeJaneiro6107226401262070503***6304EA0D",
        "image": "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"
      }
    },
    {
      "request_control_key": "b3a428fd-58ee-4d6f-8872-633874ebf5e2",
      "bank_slip_key": "4056f1f1-a6ea-4162-8bac-b1ce2546a9bf",
      "bank_slip_status": "accepted",
      "our_number": 987654321,
      "barcode": "",
      "digitable_line":
    }
  ]
}
```

STATUS 4xx

### Response Body Params

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------|
| `bank_slips`               | Array de **[Objeto bank_slip_response](#objeto-bank_slip_response)** | Descontos                                                                          | - |

### Objeto bank_slip_response

| Campo                   | Tipo   | Descrição                                                                         | Caracteres |
|-------------------------|--------|-----------------------------------------------------------------------------------|------------|
| `request_control_key` * | uuidv4 | Chave única de identificação da request utilizada pelo cliente no formato uuid v4 | 36         |
| `bank_slip_key` *       | uuidv4 | Chave única de identificação do boleto no formato uuid v4                         | 36         |
| `bank_slip_status` *    | string | Status do boleto       | **[Enumeradores bank_slip_status](#enumeradores-bank_slip_status)**   |
| `our_number` *          | integer| Número único de identificação do boleto junto à carteira                          | 11         |
| `barcode` *             | string | Código de barras do boleto                                                        | 44         |
| `digitable_line` *      | string | Linha digitável do boleto                                                         | 47         |
| `qr_code_data`          | object | Dados do QR Code                             | **[Objeto qr_code_data](#objeto-qr_code_data)** |
| `created_at` *          | string | Data, no formato ISO (UTC - "YYYY-MM-DDTHH:MM:SSZ"), da criação da ocorrência     | 20         |

### Enumeradores bank_slip_status

| Enumerador         | Descrição                               |
|--------------------|-----------------------------------------|
| accepted           | Boleto aceito mas ainda não registrado  |

### Objeto qr_code_data
| Campo                      | Tipo   | Descrição                                             | Caracteres              |
|----------------------------|--------|-------------------------------------------------------|-------------------------|
| `qr_code_key`              | uuidv4 | Chave única de identificação do QR Code               | 36                      |
| `pix_key`                  | uuidv4 | Chave PIX vinculada ao QR Code                        | 36                      |
| `receiver_conciliation_id` | uuidv4 | Identificador de conciliação do QR Code               | 36                      |
| `url`                      | string | URL (Pix Copia e Cola) do QR Code                     | -                       |
| `image`                    | string | base64 da URL (Pix Copia e Cola) do QR Code           | -                       |

## Error Response

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | BKS000004            | Not Found | Pix key not found: `{pix_key}`                                               | Chave pix não encontrada: `{pix_key}`                                               |
| 403                      | BKS000005            | Forbidden                         | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 403                      | BKS000010            | Forbidden                                 | The pix key owner does not match the account owner.                                                                                     | O proprietário da chave pix não corresponde ao proprietário da conta.                                                             |
| 404                      | BKS000013            | Not Found | Requester profile not found         |               Carteira não encontrada                                                                 |
| 409                      | BKS000014            | Conflict           | Request control key already sent or duplicated sent: `{request_control_key}`                                                              | Chave de controle da requisição já utilizada ou enviada duplicada: `{request_control_key}`                                                                        |
| 400                      | BKS000016            | Bad Request                                        | Expiration date must be greater than the current date and have a maximum of 3650 days from the current date.                                    | A data de vencimento deve ser maior que a data atual e possuir no máximo 3650 dias corridos a partir da data atual.                                     |
| 409                      | BKS000017            | Conflict                                        | Our number already used or duplicated sent: `{our_number}`                                                                                       | Nosso número já utilizado ou enviado duplicado: `{our_number}`                                                                               |
| 400                      | BKS000018            | Bad Request                                        | The discount dates must be less than the expiration date and increasing.                                                      | A data dos descontos devem ser menores que a de expiração e crescentes.                                               |
| 400                      | BKS000019            | Bad Request                                        | Payer address is required for protest.                                                                                       | Endereço do pagador é obrigatório para protesto.                                                                         |
| 500                      | BKS000021            | Internal Server Error                                  | Error while trying to generate QR Code.                                                               | Erro ao tentar gerar QR Code de pagamento.                                                           |
| 400                      | BKS000022            | Bad Request                                        | Requester profile is not opened.                                                              | Carteira não está aberta.                          |
| 400                      | BKS000026            | Bad Request                      | Guarantor address is required for protest.                                                                                        | Endereço do sacador é obrigatório para protesto.                                                                   |
| 404                      | BKS000028            | Not Found             | Notary office attended region not found for postal code: `{postal_code}`                                                          | Região de cartório não encontrada para o CEP: `{postal_code}`                                                                                 |
| 400                      | BKS000043            | Bad Request             | Invalid discount numbering. Discounts must be numbered in ascending order and start on 1.          | Numeração dos descontos inválida. Os descontos devem ser numerados em ordem crescente e começar em 1.                                                           |
| 400                      | BKS000045            | Bad Request                                        | Rebate amount can not be equal or greater than the bank slip amount.                                                              | O valor do rebate não pode ser igual ou maior do que o valor do boleto.                          |
| 400                      | BKS000047            | Bad Request             | It was not possible to consult the sent pix key at this time. Please try again in a few minutes.          | Não foi possível consultar a chave pix enviada no momento. Por favor, tente novamente em alguns minutos.                                                           |
| 400                      | BKS000125            | Bad Request             | Partial payment data is required for this bank slip species type.          | Os dados de pagamento parcial são obrigatórios para o tipo de boleto fornecido.                                                           |
| 400                      | BKS000128            | Bad Request             | QR code payment is not allowed for partial payment.          | Pagamento via QR code não é permitido para pagamento parcial.                                                           |
| 400                      | BKS000128            | Bad Request             | QR code payment is not allowed for partial payment.          | Pagamento via QR code não é permitido para pagamento parcial.                                                           |
| 400                      | BKS000131            | Bad Request             | Rebate amount is not allowed for this bank slip species type.          | O valor de abatimento não é permitido para o tipo de boleto fornecido.                                                           |
| 400                      | BKS000132            | Bad Request             | Discount data is not allowed for this bank slip species type.          | Os dados de desconto não são permitidos para o tipo de boleto fornecido.                                                           |
| 400                      | BKS000133            | Bad Request             | Fine data is not allowed for this bank slip species type.          | Os dados de multa não são permitidos para o tipo de boleto fornecido.                                                           |
| 400                      | BKS000134            | Bad Request             | Interest data is not allowed for this bank slip species type.          | Os dados de juros não são permitidos para o tipo de boleto fornecido.                                                           |
| 400                      | BKS000136            | Bad Request             | Only credit card financial instrument type can have zero amount.          | Apenas o tipo de instrumento financeiro cartão de crédito pode ter valor zero.                                                           |

---

# Cancelamento de abatimento

URL: /documentation/boletos/instrucoes/abatimento/cancelar_abatimento

Cancelar um abatimento significa cancelar o abatimento existente para o boleto. O cancelamento deve ser efetuado caso seja de interesse remover o abatimento ou então criar um novo.

:::caution Atenção!
Caso exista algum pedido de cancelamento de abatimento pendente de confirmação, ou não exista abatimento ativo, não é possível solicitar o cancelamento de um abatimento.

Obs.: o valor de abatimento (`rebate_amount`) enviado no registro do boleto conta como um abatimento ativo (caso seja maior que R$0,00).
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /bank_slip/ BANK_SLIP_KEY /cancel_rebate
MÉTODO POST

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |
| `bank_slip_key`         | uuidv4 | Chave única de identificação do boleto, no formato uuid v4   | 36         |

Request Body

```json
{
  "request_control_key": "86864aec-a6c8-462e-8460-b05ef5a1eb62"
}
```

### Request Body Params

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|------------|
| `request_control_key` *    | uuidv4  | Chave única de identificação da request utilizada pelo cliente no formato uuid v4  | 36         |

## Response

STATUS 202

Response Body

```json
{
  "occurrence_key": "539cefc8-382e-4fef-80e1-978a3a178a5c",
  "bank_slip_key": "d402e91a-32ac-4428-8357-d71824b113b5"
}
```

### Response Body Params

| Campo              | Tipo   | Descrição                                                                         | Caracteres |
|--------------------|--------|-----------------------------------------------------------------------------------|------------|
| `occurrence_key` * | uuidv4 | Chave única de identificação da ocorrência (instrução) no formato uuid v4         | 36         |
| `bank_slip_key` *  | uuidv4 | Chave única de identificação do boleto no formato uuid v4                         | 36         |

### Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 404                      | BKS000013            | Not Found | Requester profile not found         |               Carteira não encontrada                                                                 |
| 409                      | BKS000014            | Conflict | Request control key already sent or duplicated sent: `<request_control_key>` | Chave de controle da requisição já utilizada ou enviada duplicada: `<request_control_key>` |
| 400                      | BKS000022            | Bad Request                                        | Requester profile is not opened.                                                              | Carteira não está aberta.                          |
| 404                      | BKS000029            | Not Found                                        | Bank slip not found for the given key (`{bank_slip_key}`).                                                              | Boleto não encontrado para a chave fornecida (`{bank_slip_key}`).                          |
| 400                      | BKS000031            | Bad Request                                        | Bank slip must have an active rebate.                                                              | O boleto deve possuir um rebate ativo.                          |
| 400                      | BKS000032            | Bad Request                                        | Bank slip must be in 'registered' status.                                                              | O boleto deve possuir o status 'registered'.                          |
| 409                      | BKS000034            | Bad Request                                        | There is already a pending cancel rebate occurrence for this bank slip.                                                              | Já existe uma ocorrência de cancelamento de rebate pendente para este boleto.                          |

---

# Criar abatimento

URL: /documentation/boletos/instrucoes/abatimento/criar_abatimento

Criar um abatimento para o boleto significa abater parte do valor base do título, para diminuir o valor final.

:::caution Atenção!
Caso exista algum pedido de abatimento pendente de confirmação, ou algum abatimento ativo, não é permitida a criação de um novo abatimento. Se houver algum abatimento ativo e for de interesse mudá-lo, primeiro deve ser enviada uma requisição de cancelamento de abatimento. Assim que a mesma for confirmada, é possível criar outro abatimento.

Obs.: o valor de abatimento (`rebate_amount`) enviado no registro do boleto não conta como um pedido de abatimento em aberto , mas conta como um pedido de abatimento ativo.
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /bank_slip/ BANK_SLIP_KEY /rebate
MÉTODO POST

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |
| `bank_slip_key`         | uuidv4 | Chave única de identificação do boleto, no formato uuid v4   | 36         |

Request Body

```json
{
  "request_control_key": "d66b807a-25fa-4e21-b198-9beb221a29ce",
  "rebate_amount": 150.00
}
```

### Request Body Params

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|------------|
| `request_control_key` *    | uuidv4  | Chave única de identificação da request utilizada pelo cliente no formato uuid v4  | 36         |
| `rebate_amount` *          | float   | Valor absoluto do abatimento                                                       | -          |

## Response

STATUS 202

Response Body

```json
{
  "occurrence_key": "7f01165b-fdd0-4f59-b231-42170ea90131",
  "bank_slip_key": "dad779c1-5e1c-422e-9f36-c704916a87cf"
}
```

### Response Body Params

| Campo              | Tipo   | Descrição                                                                         | Caracteres |
|--------------------|--------|-----------------------------------------------------------------------------------|------------|
| `occurrence_key` * | uuidv4 | Chave única de identificação da ocorrência (instrução) no formato uuid v4         | 36         |
| `bank_slip_key` *  | uuidv4 | Chave única de identificação do boleto no formato uuid v4                         | 36         |

### Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 404                      | BKS000013            | Not Found | Requester profile not found         |               Carteira não encontrada                                                                 |
| 409                      | BKS000014            | Conflict | Request control key already sent or duplicated sent: `<request_control_key>` | Chave de controle da requisição já utilizada ou enviada duplicada: `<request_control_key>` |
| 400                      | BKS000022            | Bad Request                                        | Requester profile is not opened.                                                              | Carteira não está aberta.                          |
| 404                      | BKS000029            | Not Found                                        | Bank slip not found for the given key (`{bank_slip_key}`).                                                              | Boleto não encontrado para a chave fornecida (`{bank_slip_key}`).                          |
| 409                      | BKS000030            | Conflict                                        | There is already a pending rebate occurrence for this bank slip.                                                              | Já existe uma ocorrência de rebate pendente para este boleto.                          |
| 400                      | BKS000032            | Bad Request                                        | Bank slip must be in 'registered' status.                                                              | O boleto deve possuir o status 'registered'.                          |
| 409                      | BKS000033            | Conflict                                        | This bank slip already has an active rebate. You must send a 'cancel_rebate' occurrence before trying to create another one. one.                                                              | Este boleto já possui um rebate ativo. Você deve mandar uma ocorrência do tipo 'cancel_rebate' antes de tentar criar outro.                          |
| 400                      | BKS000045            | Bad Request                                        | Rebate amount can not be equal or greater than the bank slip amount.                                                              | O valor do rebate não pode ser igual ou maior do que o valor do boleto.                          |

---

# Baixa

URL: /documentation/boletos/instrucoes/baixa

Quando um boleto é baixado, torna-se indisponível para pagamento. Ou seja, o boleto é "cancelado".

:::caution Atenção!
Caso exista algum pedido de baixa pendente de confirmação, não é permitida a criação de um novo pedido. 
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /bank_slip/ BANK_SLIP_KEY /write_off
MÉTODO POST

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |
| `bank_slip_key`         | uuidv4 | Chave única de identificação do boleto, no formato uuid v4   | 36         |

Request Body

```json
{
  "request_control_key": "614a451d-3b82-460e-bcc0-2caf3dde711f"
}
```

### Request Body Params

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|------------|
| `request_control_key` *    | uuidv4  | Chave única de identificação da request utilizada pelo cliente no formato uuid v4  | 36         |

## Response

STATUS 202

Response Body

```json
{
  "occurrence_key": "2552bd64-950b-437e-a53a-a133ffea03d7",
  "bank_slip_key": "960f78d4-4426-4762-98da-3ce3713ae0a5"
}
```

### Response Body Params

| Campo              | Tipo   | Descrição                                                                         | Caracteres |
|--------------------|--------|-----------------------------------------------------------------------------------|------------|
| `occurrence_key` * | uuidv4 | Chave única de identificação da ocorrência (instrução) no formato uuid v4         | 36         |
| `bank_slip_key` *  | uuidv4 | Chave única de identificação do boleto no formato uuid v4                         | 36         |

### Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 404                      | BKS000013            | Not Found | Requester profile not found         |               Carteira não encontrada                                                                 |
| 409                      | BKS000014            | Conflict | Request control key already sent or duplicated sent: `<request_control_key>` | Chave de controle da requisição já utilizada ou enviada duplicada: `<request_control_key>` |
| 400                      | BKS000022            | Bad Request                                        | Requester profile is not opened.                                                              | Carteira não está aberta.                          |
| 404                      | BKS000029            | Not Found                                        | Bank slip not found for the given key (`{bank_slip_key}`).                                                              | Boleto não encontrado para a chave fornecida (`{bank_slip_key}`).                          |
| 400                      | BKS000032            | Bad Request                                        | Bank slip must be in 'registered' status.                                                              | O boleto deve possuir o status 'registered'.                          |
| 409                      | BKS000049            | Conflict                                        | There is already a pending write off occurrence for this bank slip. Please, wait for the confirmation of this occurrence before sending another one. one.                                                              | Já existe uma ocorrência de baixa pendente para este boleto. Por favor, aguarde a confirmação dessa ocorrência antes de enviar outra.                          |

---

# Desconto

URL: /documentation/boletos/instrucoes/desconto

A instrução de desconto serve para aplicar descontos com diversas possibilidades de regras de cálculo. Caso já existam descontos para o boleto em questão, e seja aceita uma instrução de desconto, os descontos existentes previamente serão sobrescritos.

:::caution Atenção!
Caso exista algum pedido de acréscimo de desconto pendente de confirmação, não é permitida a criação de um novo pedido. 
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /bank_slip/ BANK_SLIP_KEY /discount
MÉTODO POST

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |
| `bank_slip_key`         | uuidv4 | Chave única de identificação do boleto, no formato uuid v4   | 36         |

Request Body

```json
{
    "request_control_key": "2e2f0053-a988-40c7-ad17-41c4c4da861e",
    "discounts_data": [
        {
            "discount_type": "anticipation_workdays_daily_percentage",
            "discount_percentage": 2,
            "discount_number": 1,
            "discount_limit_date": "2024-12-01"
        },
        {
            "discount_type": "anticipation_workdays_daily_percentage",
            "discount_percentage": 1,
            "discount_number": 2,
            "discount_limit_date": "2025-01-02"
        }
    ]
}
```

### Request Body Params

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|------------|
| `request_control_key` *    | uuidv4  | Chave única de identificação da request utilizada pelo cliente no formato uuid v4  | 36         |
| `discounts_data`           | object array | Descontos                                  | **[Objeto discount](#objeto-discounts_data)** |

### Objeto discount

Opção 1: descontos utilizando valores absolutos (`discount_type in ["absolute", "anticipation_calendar_days_daily_amount", "anticipation_workdays_daily_amount"]`)

| Campo                     | Tipo    | Descrição                                           | Caracteres                                                |
|---------------------------|---------|-----------------------------------------------------|-----------------------------------------------------------|
| `discount_amount` *       | float   | Valor absoluto de desconto por unidade de tempo                                            | -                                                          |
| `discount_number` *       | integer | Número do desconto                                     | -                                                         |
| `discount_type` *         | string  | Configuração do desconto em valores absolutos                                    | **[Enumerador discount_type](#enumeradores-discount_type)** |                                                       |
| `discount_limit_date` *   | string  | Data limite para aplicação do desconto   | 10                                                        |

Opção 2: descontos utilizando valores percentuais (`discount_type in ["percentage", "anticipation_calendar_days_daily_percentage", "anticipation_workdays_daily_percentage"]`)

| Campo                     | Tipo    | Descrição                                           | Caracteres                                                |
|---------------------------|---------|-----------------------------------------------------|-----------------------------------------------------------|
| `discount_percentage` *   | float   | Valor percentual de desconto por unidade de tempo                                            | -                                                          |
| `discount_number` *       | integer | Número do desconto                                     | -                                                         |
| `discount_type` *         | string  | Configuração do desconto em valores percentuais                                    | **[Enumerador discount_type](#enumeradores-discount_type)** |                                                       |
| `discount_limit_date` *   | string  | Data limite para aplicação do desconto   | 10                                                        |

:::caution Atenção!
O boleto pode ter até três descontos, sendo que os descontos devem ser todos do mesmo tipo , isto é, devem ter o mesmo `discount_type`. Os descontos devem ser numerados de 1 a 3, de maneira crescente e começando necessariamente em 1. Ou seja, caso sejam enviados dois descontos na requisição, devem necessariamente ser numerados com 1 e 2.
:::

### Enumeradores discount_type

| Enumerador                                  | Descrição                                                                |
|---------------------------------------------|--------------------------------------------------------------------------|
| absolute                                    | Valor fixo                                                               |
| anticipation_calendar_days_daily_amount     | Valor diário de desconto de antecipação, sobre dias corridos             |
| anticipation_workdays_daily_amount          | Valor diário de desconto de antecipação, sobre dias úteis                |
| percentage                                  | Porcentagem fixa                                                         |
| anticipation_calendar_days_daily_percentage | Porcentagem mensal de desconto de antecipação, com base em dias corridos |
| anticipation_workdays_daily_percentage      | Porcentagem anual de desconto de antecipação, com base em dias úteis     |

## Response

STATUS 202

Response Body

```json
{
  "occurrence_key": "aaf64135-6bd8-4d49-be6f-e8f884b20ee7",
  "bank_slip_key": "470cfcae-159b-4de4-ad22-2d3b2dd717f7"
}
```

### Response Body Params

| Campo              | Tipo   | Descrição                                                                         | Caracteres |
|--------------------|--------|-----------------------------------------------------------------------------------|------------|
| `occurrence_key` * | uuidv4 | Chave única de identificação da ocorrência (instrução) no formato uuid v4         | 36         |
| `bank_slip_key` *  | uuidv4 | Chave única de identificação do boleto no formato uuid v4                         | 36         |

### Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 404                      | BKS000013            | Not Found | Requester profile not found         |               Carteira não encontrada                                                                 |
| 409                      | BKS000014            | Conflict | Request control key already sent or duplicated sent: `<request_control_key>` | Chave de controle da requisição já utilizada ou enviada duplicada: `<request_control_key>` |
| 400                      | BKS000018            | Bad Request                                        | The discount dates must be less than the expiration date and increasing.                                                              | A data dos descontos devem ser menores que a de expiração e crescentes.                         |
| 400                      | BKS000022            | Bad Request                                        | Requester profile is not opened.                                                              | Carteira não está aberta.                          |
| 404                      | BKS000029            | Not Found                                        | Bank slip not found for the given key (`{bank_slip_key}`).                                                              | Boleto não encontrado para a chave fornecida (`{bank_slip_key}`).                          |
| 400                      | BKS000032            | Bad Request                                        | Bank slip must be in 'registered' status.                                                              | O boleto deve possuir o status 'registered'.                          |
| 400                      | BKS000043            | Bad Request                                        | Invalid discount numbering. Discounts must be numbered in ascending order and start on 1.                                                              | Numeração dos descontos inválida. Os descontos devem ser numerados em ordem crescente e começar em 1.                          |
| 400                      | BKS000046            | Bad Request                                        | Invalid discount type. All types in the discount list must be the same.                                                              | Tipo de desconto inválido. Todos os tipos da lista de descontos devem ser iguais.                          |
| 409                      | BKS000048            | Conflict                                        | There is already a pending discount occurrence for this bank slip. Please, wait for the confirmation of this occurrence before sending another one.                                                              | Já existe uma ocorrência de desconto pendente para este boleto. Por favor, aguarde a confirmação dessa ocorrência antes de enviar outra.                          |

---

# Edição

URL: /documentation/boletos/instrucoes/edicao

A instrução de edição serve para modificar dados configuráveis do boleto após sua emissão, como configurações de baixa automática, protesto, protesto falimentar e dados do pagador. Esta instrução permite atualizar múltiplos aspectos do boleto em uma única requisição.

:::caution Atenção!
O boleto deve estar no status 'registered' para que seja possível editá-lo. Ao menos um dos campos de dados (`write_off_data`, `protest_data`, `bankruptcy_protest_data` ou `payer_data`) deve ser informado junto com o `request_control_key`.
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /bank_slip/ BANK_SLIP_KEY /bank_slip_edit
MÉTODO POST

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |
| `bank_slip_key`         | uuidv4 | Chave única de identificação do boleto, no formato uuid v4   | 36         |

Request Body

```json
{
  "request_control_key": "c4dd443a-6e2f-4261-8f28-adfa4c0d4c5b",
  "write_off_data": {"days_to_write_off": 365},
  "protest_data": {"days_to_protest": 7},
  "bankruptcy_protest_data": {"days_to_bankruptcy_protest": 14},
  "payer_data": {
    "contact": {
      "email": "finance@globaltech.com",
      "phone": {"international_dial_code": "055", "area_code": "11", "number": "987654321"},
    },
    "address": {
      "street": "101 High St.",
      "neighborhood": "Tech Park",
      "number": "202",
      "postal_code": "01001000",
      "city": "Innovation City",
      "state": "SP",
      "complement": "Building A",
    },
  },
}
```

### Request Body Params

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|------------|
| `request_control_key` *    | uuidv4  | Chave única de identificação da request utilizada pelo cliente no formato uuid v4  | 36         |
| `write_off_data`           | object  | Configurações de baixa automática (null para remover)                             | **[Objeto write_off_data](#objeto-write_off_data)** |
| `protest_data`             | object  | Configurações de protesto (null para remover)                                     | **[Objeto protest_data](#objeto-protest_data)** |
| `bankruptcy_protest_data`  | object  | Configurações de protesto falimentar (null para remover)                          | **[Objeto bankruptcy_protest_data](#objeto-bankruptcy_protest_data)** |
| `payer_data`               | object  | Dados do pagador (`address` null ou `contact` null para remover)                                                                  | **[Objeto payer_data](#objeto-payer_data)** |

:::info Observação
Pelo menos um dos campos de dados (`write_off_data`, `protest_data`, `bankruptcy_protest_data` ou `payer_data`) deve ser informado na requisição.
:::

### Objeto write_off_data

| Campo                     | Tipo    | Descrição                                                                   | Caracteres |
|---------------------------|---------|-----------------------------------------------------------------------------|------------|
| `days_to_write_off` *     | integer | Dias, após o vencimento, para que o boleto seja baixado automaticamente     | -          |

### Objeto protest_data

| Campo                     | Tipo    | Descrição                                                                   | Caracteres |
|---------------------------|---------|-----------------------------------------------------------------------------|------------|
| `days_to_protest` *       | integer | Dias, após o vencimento, para que o boleto seja protestado automaticamente  | -          |

### Objeto bankruptcy_protest_data

| Campo                          | Tipo    | Descrição                                                                   | Caracteres  |
|--------------------------------|---------|-----------------------------------------------------------------------------|------------|
| `days_to_bankruptcy_protest` * | integer | Dias, após o vencimento, para que o boleto seja protestado automaticamente  | -           |

### Objeto payer_data

| Campo                     | Tipo   | Descrição                                                  | Caracteres|
|---------------------------|--------|-------------------------------------|-----------------------------------------------------------|
| `contact`                 | object | Informações de contato              | **[Objeto contact](#objeto-contact)**                     |
| `address`                 | object | Endereço                            | **[Objeto address](#objeto-address)**                     |

### Objeto contact

| Campo                     | Tipo   | Descrição                         | Caracteres                         |
|---------------------------|--------|-----------------------------------|------------------------------------|
| `email`                   | string | E-mail de contato                 | 320                                |
| `phone`                   | object | Telefone de contato               | **[Objeto phone](#objeto-phone)**  |

### Objeto phone

| Campo                           | Tipo   | Descrição                                    | Caracteres |
|---------------------------------|--------|----------------------------------------------|------------|
| `international_dial_code` *     | string | Código DDI (Discagem Direta Internacional)   | 3          |
| `area_code` *                   | string | Código DDD (Discagem Direta à Distância)     | 2          |
| `number` *                      | string | Complemento                                  | 9          |

### Objeto address

| Campo                     | Tipo   | Descrição                                    | Caracteres |
|---------------------------|--------|----------------------------------------------|------------|
| `street` *                | string | Logradouro                                   | 500        |
| `number` *                | string | Número                                       | 6          |
| `complement`              | string | Complemento                                  | 500        |
| `neighborhood` *          | string | Bairro                                       | 100        |
| `postal_code` *           | string | CEP                                          | 8          |
| `city` *                  | string | Cidade                                       | 100        |
| `state` *                 | string | Estado (UF) | **[Enumerador state](#enumeradores-state)** |

### Enumeradores state

| Enumerador         | Descrição             |
|--------------------|-----------------------|
| AC                 | Acre                  |
| AL                 | Alagoas               |
| AM                 | Amazonas              |
| AP                 | Amapá                 |
| BA                 | Bahia                 |
| CE                 | Ceará                 |
| DF                 | Distrito federal      |
| ES                 | Espírito Santo        |
| GO                 | Goiás                 |
| MA                 | Maranhão              |
| MG                 | Minas Gerais          |
| MS                 | Mato Grosso do Sul    |
| MT                 | Mato Grosso           |
| PA                 | Pará                  |
| PB                 | Paraíba               |
| PE                 | Pernambuco            |
| PI                 | Piauí                 |
| PR                 | Paraná                |
| RJ                 | Rio de Janeiro        |
| RN                 | Rio Grande do Norte   |
| RO                 | Rondônia              |
| RR                 | Roraima               |
| RS                 | Rio Grande do Sul     |
| SC                 | Santa Catarina        |
| SE                 | Sergipe               |
| SP                 | São Paulo             |
| TO                 | Tocantins             |
| EX                 | Exceção               |

## Response

STATUS 200

Response Body

```json
{
  "occurrence_key": "5a745b65-9a2c-44eb-b43e-c80ef5429d94",
  "bank_slip_key": "fdafdffa-cbd4-4f3c-8e3d-990428305161"
}
```

### Response Body Params

| Campo              | Tipo   | Descrição                                                                         | Caracteres |
|--------------------|--------|-----------------------------------------------------------------------------------|------------|
| `occurrence_key` * | uuidv4 | Chave única de identificação da ocorrência (instrução) no formato uuid v4         | 36         |
| `bank_slip_key` *  | uuidv4 | Chave única de identificação do boleto no formato uuid v4                         | 36         |

### Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | BKS000006            | Not Found                                          | The source account key was not found.                                                                                  | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                        | It was not possible to consult the source account at this time. Please try again in a few minutes.                     | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                |
| 400                      | BKS000008            | Bad Request                                        | The source account is closed.                                                                                          | A conta de origem está fechada.                                                                                         |
| 400                      | BKS000009            | Bad Request                                        | The source account is blocked.                                                                                         | A conta de origem está bloqueada.                                                                                       |
| 404                      | BKS000013            | Not Found                                          | Requester profile not found                                                                                            | Carteira não encontrada                                                                                                 |
| 409                      | BKS000014            | Conflict                                           | Request control key already sent or duplicated sent: `<request_control_key>`                                           | Chave de controle da requisição já utilizada ou enviada duplicada: `<request_control_key>`                             |
| 400                      | BKS000022            | Bad Request                                        | Requester profile is not opened.                                                                                       | Carteira não está aberta.                                                                                              |
| 404                      | BKS000029            | Not Found                                          | Bank slip not found for the given key (`{bank_slip_key}`).                                                             | Boleto não encontrado para a chave fornecida (`{bank_slip_key}`).                                                      |
| 400                      | BKS000032            | Bad Request                                        | Bank slip must be in 'registered' status.                                                                              | O boleto deve possuir o status 'registered'.                                                                           |

---

# Prorrogação

URL: /documentation/boletos/instrucoes/extensao

O pedido de prorrogação serve para estender a data de vencimento do título.

:::caution Atenção!
Caso exista algum pedido de prorrogação pendente de confirmação, não é permitida a criação de um novo pedido. 
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /bank_slip/ BANK_SLIP_KEY /extension
MÉTODO POST

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |
| `bank_slip_key`         | uuidv4 | Chave única de identificação do boleto, no formato uuid v4   | 36         |

Request Body

```json
{
  "request_control_key": "2e2f0053-a988-40c7-ad17-41c4c4da861e",
  "new_expiration_date": "2025-01-01"
}
```

### Request Body Params

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|------------|
| `request_control_key` *    | uuidv4  | Chave única de identificação da request utilizada pelo cliente no formato uuid v4  | 36         |
| `new_expiration_date` *    | string  | Nova data de expiração, no formato "YYYY-MM-DD"                                    | 10         |

## Response

STATUS 202

Response Body

```json
{
  "occurrence_key": "6f2eb385-898f-4fa3-96df-80a76a30ad01",
  "bank_slip_key": "0d462dda-7412-444f-ace9-375e4ab43c2f"
}
```

### Response Body Params

| Campo              | Tipo   | Descrição                                                                         | Caracteres |
|--------------------|--------|-----------------------------------------------------------------------------------|------------|
| `occurrence_key` * | uuidv4 | Chave única de identificação da ocorrência (instrução) no formato uuid v4         | 36         |
| `bank_slip_key` *  | uuidv4 | Chave única de identificação do boleto no formato uuid v4                         | 36         |

### Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 404                      | BKS000013            | Not Found | Requester profile not found         |               Carteira não encontrada                                                                 |
| 409                      | BKS000014            | Conflict | Request control key already sent or duplicated sent: `<request_control_key>` | Chave de controle da requisição já utilizada ou enviada duplicada: `<request_control_key>` |
| 400                      | BKS000022            | Bad Request                                        | Requester profile is not opened.                                                              | Carteira não está aberta.                          |
| 404                      | BKS000029            | Not Found                                        | Bank slip not found for the given key (`{bank_slip_key}`).                                                              | Boleto não encontrado para a chave fornecida (`{bank_slip_key}`).                          |
| 400                      | BKS000032            | Bad Request                                        | Bank slip must be in 'registered' status.                                                              | O boleto deve possuir o status 'registered'.                          |
| 400                      | BKS000041            | Bad Request                                        | The new expiration date must be greater than the current expiration date.                                                              | A nova data de expiração deve ser posterior à data de expiração atual.                          |
| 409                      | BKS000042            | Conflict                                        | There is already a pending extension occurrence for this bank slip. Please, wait for the confirmation of this occurrence before sending another one.                                                              | Já existe uma ocorrência de extensão pendente para este boleto. Por favor, aguarde a confirmação dessa ocorrência antes de enviar outra.                          |

---

# Juros

URL: /documentation/boletos/instrucoes/juros

A instrução de juros serve para configurar os juros que serão aplicados caso o boleto seja pago após a data limite. Caso já exista uma configuração de juros para o boleto em questão, e seja aceita uma instrução de juros, a configuração existente previamente será sobrescrita.

:::caution Atenção!
Caso exista alguma instrução de juros pendente de confirmação, não é permitido o envio de uma nova instrução. 
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /bank_slip/ BANK_SLIP_KEY /interest
MÉTODO POST

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |
| `bank_slip_key`         | uuidv4 | Chave única de identificação do boleto, no formato uuid v4   | 36         |

Request Body

```json
{
  "request_control_key": "c4dd443a-6e2f-4261-8f28-adfa4c0d4c5b",
  "interest_data": {
    "interest_type": "calendar_days_daily_amount",
    "interest_amount": 50.00,
    "days_to_interest": 5
  }
}
```

### Request Body Params

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|------------|
| `request_control_key` *    | uuidv4  | Chave única de identificação da request utilizada pelo cliente no formato uuid v4  | 36         |
| `interest_data`            | object  | Configurações de juros                      | **[Objeto interest_data](#objeto-interest_data)** |

### Objeto interest_data

Opção 1: juros utilizando valores absolutos (`interest_type=calendar_days_daily_amount` ou `interest_type=workdays_daily_amount`)

| Campo                     | Tipo    | Descrição                                                                     | Caracteres                                                                                      |
|---------------------------|---------|-------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|
| `interest_type` *         | string  | Tipo de juros       | **[Enumeradores interest_type](#enumeradores-interest_type)** |
| `interest_amount` *       | float   | Valor a ser cobrado por unidade de tempo determinada (dias úteis ou corridos) | -                                                                                               |
| `days_to_interest` *      | integer | Dias, após o vencimento, para que comece a cobrar os juros                    | -                                                                                               |

Opção 2: juros utilizando valores percentuais (`interest_type=calendar_days_monthly_percentage`)

| Campo                    | Tipo    | Descrição                                                                             | Caracteres                                                                                          |
|--------------------------|---------|---------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|
| `interest_type` *        | string  | Tipo de juros       | **[Enumeradores interest_type](#enumeradores-interest_type)** |
| `interest_percentage` *  | integer | Porcentagem a ser cobrada por unidade de tempo determinada (dias úteis ou corridos)                                                                      | -                                                                           |
| `days_to_interest` *     | integer | Dias, após o vencimento, para que comece a cobrar os juros                             | -                                                                                                   |

### Enumeradores interest_type

| Enumerador                       | Descrição                                                            |
|----------------------------------|----------------------------------------------------------------------|
| calendar_days_daily_amount       | Valor diário sobre dias corridos                                     |
| workdays_daily_amount            | Valor diário sobre dias úteis                                        |
| calendar_days_monthly_percentage | Porcentagem de juros cobrados mensalmente, com base em dias corridos |

## Response

STATUS 202

Response Body

```json
{
  "occurrence_key": "5a745b65-9a2c-44eb-b43e-c80ef5429d94",
  "bank_slip_key": "fdafdffa-cbd4-4f3c-8e3d-990428305161"
}
```

### Response Body Params

| Campo              | Tipo   | Descrição                                                                         | Caracteres |
|--------------------|--------|-----------------------------------------------------------------------------------|------------|
| `occurrence_key` * | uuidv4 | Chave única de identificação da ocorrência (instrução) no formato uuid v4         | 36         |
| `bank_slip_key` *  | uuidv4 | Chave única de identificação do boleto no formato uuid v4                         | 36         |

### Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 404                      | BKS000013            | Not Found | Requester profile not found         |               Carteira não encontrada                                                                 |
| 409                      | BKS000014            | Conflict | Request control key already sent or duplicated sent: `<request_control_key>` | Chave de controle da requisição já utilizada ou enviada duplicada: `<request_control_key>` |
| 400                      | BKS000018            | Bad Request                                        | The discount dates must be less than the expiration date and increasing.                                                              | A data dos descontos devem ser menores que a de expiração e crescentes.                         |
| 400                      | BKS000022            | Bad Request                                        | Requester profile is not opened.                                                              | Carteira não está aberta.                          |
| 404                      | BKS000029            | Not Found                                        | Bank slip not found for the given key (`{bank_slip_key}`).                                                              | Boleto não encontrado para a chave fornecida (`{bank_slip_key}`).                          |
| 400                      | BKS000032            | Bad Request                                        | Bank slip must be in 'registered' status.                                                              | O boleto deve possuir o status 'registered'.                          |
| 409                      | BKS000051            | Conflict                                        | There is already a pending interest occurrence for this bank slip. Please, wait for the confirmation of this occurrence before sending another one.                                                              | Já existe uma ocorrência de juros pendente para este boleto. Por favor, aguarde a confirmação dessa ocorrência antes de enviar outra.                          |

---

# Consultar lote de instruções

URL: /documentation/boletos/instrucoes/lote/consultar_lote_de_instrucoes

Retorna o detalhe de um lote previamente criado, com a lista de ocorrências geradas e o status individual de cada uma, junto com os dados básicos do boleto associado.

## Request

ENDPOINT /v2/bank_slip/account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /occurrence_batches/ BATCH_KEY /results
MÉTODO GET

### Path parameters

| Campo                   | Tipo   | Descrição                                                       | Caracteres |
|-------------------------|--------|-----------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4       | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4    | 36         |
| `batch_key`             | uuidv4 | Chave do lote (retornada pelo POST de criação)                  | 36         |

## Response

STATUS 200

Response Body

```json
{
  "batch_key": "f2d3e1b9-4a5c-46e7-8f12-9a8b7c6d5e4f",
  "requester_profile_key": "8217da98-3e26-4ca5-8b86-698bfa50b0df",
  "occurrence_type": "extension",
  "occurrence_quantity": 2,
  "accepted_quantity": 2,
  "created_at": "2026-06-09T17:08:33Z",
  "items": [
    {
      "bank_slip_key": "960f78d4-4426-4762-98da-3ce3713ae0a5",
      "occurrence_key": "2552bd64-950b-437e-a53a-a133ffea03d7",
      "request_control_key": "c86d8902-a5ae-4d1f-8872-e6fea1268aab",
      "occurrence_type": "extension",
      "payer_name": "Global Tech",
      "payer_document": "12345678000195",
      "amount": 5000.00,
      "our_number": "123456789",
      "requester_occurrence_status": "accepted",
      "registration_institution_occurrence_status": "submitted",
      "created_at": "2026-06-09T17:08:33Z"
    }
  ]
}
```

### Response Body Params

| Campo                     | Tipo    | Descrição                                                                                |
|---------------------------|---------|------------------------------------------------------------------------------------------|
| `batch_key` *             | uuidv4  | Chave do lote                                                                            |
| `requester_profile_key` * | uuidv4  | Chave da carteira dona do lote                                                           |
| `occurrence_type` *       | string  | Tipo de instrução do lote                                                                |
| `occurrence_quantity` *   | integer | Quantidade total de itens enviados no lote                                               |
| `accepted_quantity` *     | integer | Quantidade de itens aceitos no lote                                                      |
| `created_at` *            | string  | Data/hora UTC de criação do lote (ISO 8601 com sufixo `Z`)                               |
| `items` *                 | array   | Lista de ocorrências geradas pelo lote. Veja **[Objeto item](#objeto-item)**             |

### Objeto item

| Campo                                          | Tipo    | Descrição                                                                              |
|------------------------------------------------|---------|----------------------------------------------------------------------------------------|
| `bank_slip_key` *                              | uuidv4  | Chave do boleto da ocorrência                                                          |
| `occurrence_key` *                             | uuidv4  | Chave única da ocorrência criada                                                       |
| `request_control_key` *                        | string  | Chave de controle informada pelo cliente para o item                                   |
| `occurrence_type` *                            | string  | Tipo de instrução                                                                      |
| `payer_name`                                   | string  | Nome do pagador do boleto                                                              |
| `payer_document`                               | string  | Documento do pagador                                                                   |
| `amount`                                       | float   | Valor base do boleto                                                                   |
| `our_number`                                   | string  | Nosso número do boleto                                                                 |
| `requester_occurrence_status`                  | string  | Status da ocorrência do ponto de vista do solicitante (ex.: `accepted`, `rejected`)    |
| `registration_institution_occurrence_status`   | string  | Status do processamento na instituição registradora (ex.: `submitted`, `confirmed`)    |
| `created_at` *                                 | string  | Data/hora UTC de criação da ocorrência (ISO 8601 com sufixo `Z`)                       |

### Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title` | Descrição (eng)<br/>`description`                              | Descrição (pt-br)<br/>`translation`                              |
|--------------------------|----------------------|--------------------|----------------------------------------------------------------|------------------------------------------------------------------|
| 404                      | BKS000013            | Not Found          | Requester profile not found                                    | Carteira não encontrada                                          |

:::caution Atenção!
Quando o `batch_key` não existe ou não pertence à `requester_profile_key` informada, a API retorna o mesmo `BKS000013` ("Carteira não encontrada"). Verifique se o `batch_key` foi criado sob a carteira utilizada na consulta.
:::

---

# Criar lote de instruções

URL: /documentation/boletos/instrucoes/lote/criar_lote_de_instrucoes

Permite o envio, em uma única requisição, de múltiplas instruções de mesmo tipo (baixa, abatimento, prorrogação, protesto etc.) sobre boletos distintos. A QI Tech valida o lote inteiro e, ou todos os itens são aceitos, ou nenhum é processado.

- Se **qualquer** item falhar na validação semântica, **nenhum** item do lote é processado. A resposta de erro detalha, por item rejeitado, o motivo da rejeição.
- Se todos os itens passarem, as ocorrências são criadas e processadas individualmente, de forma assíncrona. O solicitante é notificado via [**webhook**](/documentation/boletos/v2/webhooks/boleto) à medida que cada ocorrência muda de status.

:::info Idempotência
A `request_control_key` do lote garante idempotência no nível do lote: reenviar a mesma chave retorna o lote já criado, sem duplicação.

Cada item do lote também possui sua própria `request_control_key` e é idempotente individualmente. Reenviar um item com `request_control_key` já existente faz o lote inteiro ser rejeitado.
:::

:::caution Atenção!
Esta operação está disponível apenas para carteiras registradas na instituição registradora **QI SCD**.
:::

## Request

ENDPOINT /v2/bank_slip/account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /occurrence_batches
MÉTODO POST

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |

Request Body

```json
{
  "request_control_key": "614a451d-3b82-460e-bcc0-2caf3dde711f",
  "occurrence_type": "extension",
  "items": [
    {
      "bank_slip_key": "960f78d4-4426-4762-98da-3ce3713ae0a5",
      "request_control_key": "c86d8902-a5ae-4d1f-8872-e6fea1268aab",
      "new_due_date": "2026-08-15"
    },
    {
      "bank_slip_key": "5e3a1b2c-7d9f-4e88-9012-3a4b5c6d7e8f",
      "request_control_key": "b3a428fd-58ee-4d6f-8872-633874ebf5e2",
      "new_due_date": "2026-08-20"
    }
  ]
}
```

### Request Body Params

| Campo                   | Tipo                                          | Descrição                                                                          | Caracteres |
|-------------------------|-----------------------------------------------|------------------------------------------------------------------------------------|------------|
| `request_control_key` * | string                                        | Chave única do lote, definida pelo cliente. Garante idempotência do lote           | 1–64       |
| `occurrence_type` *     | string                                        | Tipo de instrução aplicada a todos os itens. Veja **[Enumeradores occurrence_type](#enumeradores-occurrence_type)** | -          |
| `items` *               | Array de **[Objeto item](#objeto-item)**      | Lista de instruções (mínimo 1, máximo 10000)                                       | -          |

### Enumeradores occurrence_type

| Enumerador               | Descrição                                                  |
|--------------------------|------------------------------------------------------------|
| `extension`              | Prorrogação de vencimento — requer `new_due_date` no item   |
| `rebate`                 | Concessão de abatimento — requer `rebate_amount` no item    |
| `cancel_rebate`          | Cancelamento de abatimento                                  |
| `write_off`              | Baixa do boleto                                             |
| `protest_request`        | Pedido de protesto                                          |
| `protest_cancel_request` | Desistência (sustação) do pedido de protesto                |
| `protest_remove_request` | Remoção (cancelamento) do protesto                          |

### Objeto item

| Campo                   | Tipo     | Descrição                                                                            | Caracteres |
|-------------------------|----------|--------------------------------------------------------------------------------------|------------|
| `bank_slip_key` *       | uuidv4   | Chave do boleto sobre o qual a instrução será aplicada                               | 36         |
| `request_control_key` * | string   | Chave única do item, definida pelo cliente. Garante idempotência por item            | 1–64       |
| `new_due_date`          | string   | Nova data de vencimento (`YYYY-MM-DD`). Obrigatório para `occurrence_type=extension` | 10         |
| `rebate_amount`         | float    | Valor de abatimento. Obrigatório para `occurrence_type=rebate`                       | -          |

## Response

STATUS 201

Response Body

```json
{
  "batch_key": "f2d3e1b9-4a5c-46e7-8f12-9a8b7c6d5e4f",
  "occurrence_quantity": 2,
  "accepted_quantity": 2,
  "semantic_errors": []
}
```

### Response Body Params

| Campo                   | Tipo    | Descrição                                                                              | Caracteres |
|-------------------------|---------|----------------------------------------------------------------------------------------|------------|
| `batch_key` *           | uuidv4  | Chave única do lote. Utilize para consultar o detalhe do lote                          | 36         |
| `occurrence_quantity` * | integer | Quantidade total de itens enviados no lote                                             | -          |
| `accepted_quantity` *   | integer | Quantidade de itens aceitos no lote                                                    | -          |
| `semantic_errors` *     | array   | Lista vazia em caso de sucesso. Em caso de rejeição semântica, ver **[Error Response](#error-response)** | - |

### Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

Em caso de rejeição semântica (`BLP000112`), o campo `reasons` da resposta detalha cada item rejeitado:

Response Body: Rejeição semântica

```json
{
  "title": "Unprocessable Entity",
  "description": "Rejected Remittance",
  "translation": "Remessa Rejeitada",
  "code": "BLP000112",
  "reasons": [
    {
      "occurrence_sequence": "0",
      "bank_slip_key": "960f78d4-4426-4762-98da-3ce3713ae0a5",
      "request_control_key": "c86d8902-a5ae-4d1f-8872-e6fea1268aab",
      "errors": [
        {
          "reason_code": "15",
          "translation_pt_br": "Boleto não encontrado",
          "translation_en_us": "Bank slip not found",
          "created_at": "2026-06-09T17:08:33"
        }
      ]
    }
  ]
}
```

### Campos do objeto `reasons[]`

| Campo                   | Tipo    | Descrição                                                                          |
|-------------------------|---------|------------------------------------------------------------------------------------|
| `occurrence_sequence` * | string  | Posição do item no array `items` da requisição (começando em `"0"`)                |
| `bank_slip_key` *       | uuidv4  | Chave do boleto do item rejeitado                                                  |
| `request_control_key` * | string  | Chave de controle informada pelo cliente para o item                               |
| `errors` *              | array   | Lista de motivos da rejeição (um item pode ter múltiplos motivos)                  |
| `errors[].reason_code` *      | string  | Código do motivo de rejeição (padrão Febraban)                                |
| `errors[].translation_pt_br`  | string  | Descrição em português do motivo                                              |
| `errors[].translation_en_us`  | string  | Descrição em inglês do motivo                                                 |
| `errors[].created_at`         | string  | Data/hora de cadastro do motivo no catálogo                                   |

### Códigos de erro

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`        | Descrição (eng)<br/>`description`                                                                                  | Descrição (pt-br)<br/>`translation`                                                                                          |
|--------------------------|----------------------|---------------------------|---------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request               | Schema Error                                                                                                        | Schema Inválido                                                                                                              |
| 400                      | BKS000141            | Bad Request               | Bank slip registration is restricted to QI SCD.                                                                     | Registro de boleto permitido apenas para QI SCD.                                                                             |
| 404                      | BKS000013            | Not Found                 | Requester profile not found                                                                                         | Carteira não encontrada                                                                                                      |
| 409                      | BKS000014            | Conflict                  | Request control key already sent or duplicated sent: `<request_control_key>`                                        | Chave de controle da requisição já utilizada ou enviada duplicada: `<request_control_key>`                                   |
| 422                      | BLP000112            | Unprocessable Entity      | Rejected Remittance                                                                                                 | Remessa Rejeitada                                                                                                            |

---

# Listar lotes de instruções

URL: /documentation/boletos/instrucoes/lote/listar_lotes_de_instrucoes

Lista, de forma paginada, os lotes de instruções criados para uma carteira, com filtros opcionais por tipo de instrução e intervalo de datas.

## Request

ENDPOINT /v2/bank_slip/account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /occurrence_batches
MÉTODO GET

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |

### Query Parameters

| Campo             | Tipo    | Descrição                                                                                          |
|-------------------|---------|----------------------------------------------------------------------------------------------------|
| `page`            | integer | Página da consulta (padrão `1`)                                                                    |
| `page_size`       | integer | Quantidade de lotes por página (padrão `20`, máximo `100`)                                         |
| `occurrence_type` | string  | Filtra pelo tipo de instrução do lote. Aceita os mesmos enumeradores do POST de criação            |
| `from_date`       | string  | Data inicial, inclusiva, no formato `YYYY-MM-DD`. Filtra sobre o `created_at` do lote              |
| `to_date`         | string  | Data final, inclusiva, no formato `YYYY-MM-DD`. Filtra sobre o `created_at` do lote                |

## Response

STATUS 200

Response Body

```json
{
  "data": [
    {
      "batch_key": "f2d3e1b9-4a5c-46e7-8f12-9a8b7c6d5e4f",
      "request_control_key": "614a451d-3b82-460e-bcc0-2caf3dde711f",
      "requester_profile_key": "8217da98-3e26-4ca5-8b86-698bfa50b0df",
      "occurrence_type": "extension",
      "occurrence_quantity": 14,
      "accepted_quantity": 14,
      "created_at": "2026-06-09T17:08:33Z"
    }
  ],
  "pagination": {
    "page": 1,
    "page_size": 20,
    "total": 1
  }
}
```

### Response Body Params

| Campo                            | Tipo    | Descrição                                                                  |
|----------------------------------|---------|----------------------------------------------------------------------------|
| `data` *                         | array   | Lista de lotes da página atual                                             |
| `data[].batch_key` *             | uuidv4  | Chave do lote                                                              |
| `data[].request_control_key` *   | string  | Chave de controle informada pelo cliente na criação do lote                |
| `data[].requester_profile_key` * | uuidv4  | Chave da carteira dona do lote                                             |
| `data[].occurrence_type` *       | string  | Tipo de instrução do lote                                                  |
| `data[].occurrence_quantity` *   | integer | Quantidade total de itens enviados no lote                                 |
| `data[].accepted_quantity` *     | integer | Quantidade de itens aceitos no lote                                        |
| `data[].created_at` *            | string  | Data/hora UTC de criação do lote (ISO 8601 com sufixo `Z`)                 |
| `pagination` *                   | object  | Metadados de paginação                                                     |
| `pagination.page` *              | integer | Página atual                                                               |
| `pagination.page_size` *         | integer | Tamanho da página                                                          |
| `pagination.total` *             | integer | Quantidade total de lotes que atendem aos filtros                          |

### Error Response

STATUS 4xx

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title` | Descrição (eng)<br/>`description` | Descrição (pt-br)<br/>`translation` |
|--------------------------|----------------------|--------------------|-----------------------------------|-------------------------------------|
| 400                      | QIT000001            | Bad Request        | Schema Error                      | Schema Inválido                     |
| 404                      | BKS000013            | Not Found          | Requester profile not found       | Carteira não encontrada             |

---

# Multa

URL: /documentation/boletos/instrucoes/multa

A instrução de multa serve para configurar a multa que será aplicada caso o boleto seja pago após a data limite. Caso já exista uma configuração de multa para o boleto em questão, e seja aceita uma instrução de multa, a configuração existente previamente será sobrescrita.

:::caution Atenção!
Caso exista alguma instrução de multa pendente de confirmação, não é permitido o envio de uma nova instrução. 
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /bank_slip/ BANK_SLIP_KEY /fine
MÉTODO POST

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |
| `bank_slip_key`         | uuidv4 | Chave única de identificação do boleto, no formato uuid v4   | 36         |

Request Body

```json
{
  "request_control_key": "c4dd443a-6e2f-4261-8f28-adfa4c0d4c5b",
  "fine_data": {
    "fine_type": "absolute",
    "fine_amount": 50.00,
    "days_to_fine": 5
  }
}
```

### Request Body Params

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|------------|
| `request_control_key` *    | uuidv4  | Chave única de identificação da request utilizada pelo cliente no formato uuid v4  | 36         |
| `interest_data`            | object  | Configurações de multa                              | **[Objeto fine_data](#objeto-fine_data)** |

### Objeto fine_data

Opção 1: multa em valor absoluto (`fine_type=absolute`)

| Campo                     | Tipo    | Descrição                                               | Caracteres                |
|---------------------------|---------|---------------------------------------------------------|-------------------------------------------------------------------------|
| `fine_type` *             | string  | Tipo da multa                                                       | **[Enumeradores fine_type](#enumeradores-fine_type)**                                              |
| `fine_amount` *           | float   | Valor absoluto da multa                                             | -                                                                        |
| `days_to_fine` *          | integer | Dias, após o vencimento, para que a multa seja cobrada              | -                                                                        |

Opção 2: multa em valor percentual (`fine_type=percentage`)

| Campo                     | Tipo    | Descrição                                                 | Caracteres                             |
|---------------------------|---------|-----------------------------------------------------------|---------------------------------------|
| `fine_type` *             | string  | Tipo da multa                                             | **[Enumeradores fine_type](#enumeradores-fine_type)** |
| `fine_percentage` *       | integer | Valor percentual da multa, de 1 a 100                     | -                                      |
| `days_to_fine` *          | integer | Dias, após o vencimento, para que a multa seja cobrada    | -                                      |

### Enumeradores fine_type

| Enumerador         | Descrição             |
|--------------------|-----------------------|
| absolute           | valor absoluto        |
| percentage         | valor percentual      |

## Response

STATUS 202

Response Body

```json
{
  "occurrence_key": "aaf64135-6bd8-4d49-be6f-e8f884b20ee7",
  "bank_slip_key": "470cfcae-159b-4de4-ad22-2d3b2dd717f7"
}
```

### Response Body Params

| Campo              | Tipo   | Descrição                                                                         | Caracteres |
|--------------------|--------|-----------------------------------------------------------------------------------|------------|
| `occurrence_key` * | uuidv4 | Chave única de identificação da ocorrência (instrução) no formato uuid v4         | 36         |
| `bank_slip_key` *  | uuidv4 | Chave única de identificação do boleto no formato uuid v4                         | 36         |

### Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 404                      | BKS000013            | Not Found | Requester profile not found         |               Carteira não encontrada                                                                 |
| 409                      | BKS000014            | Conflict | Request control key already sent or duplicated sent: `<request_control_key>` | Chave de controle da requisição já utilizada ou enviada duplicada: `<request_control_key>` |
| 400                      | BKS000018            | Bad Request                                        | The discount dates must be less than the expiration date and increasing.                                                              | A data dos descontos devem ser menores que a de expiração e crescentes.                         |
| 400                      | BKS000022            | Bad Request                                        | Requester profile is not opened.                                                              | Carteira não está aberta.                          |
| 404                      | BKS000029            | Not Found                                        | Bank slip not found for the given key (`{bank_slip_key}`).                                                              | Boleto não encontrado para a chave fornecida (`{bank_slip_key}`).                          |
| 400                      | BKS000032            | Bad Request                                        | Bank slip must be in 'registered' status.                                                              | O boleto deve possuir o status 'registered'.                          |
| 409                      | BKS000050            | Conflict                                        | There is already a pending fine occurrence for this bank slip. Please, wait for the confirmation of this occurrence before sending another one.                                                              | Já existe uma ocorrência de multa pendente para este boleto. Por favor, aguarde a confirmação dessa ocorrência antes de enviar outra.                          |

---

# Pagamento Parcial

URL: /documentation/boletos/instrucoes/pagamento_parcial

A instrução de pagamento parcial permite editar as configurações de pagamento parcial para um boleto, desde que o boleto já tenha sido registrado com o pagamento parcial ativo. Caso já exista uma configuração de pagamento parcial para o boleto em questão, e seja aceita uma nova instrução, a configuração existente previamente será sobrescrita.

:::caution Atenção!
Caso exista alguma instrução de pagamento parcial pendente de confirmação, não é permitido o envio de uma nova instrução.
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /bank_slip/ BANK_SLIP_KEY /partial_payment
MÉTODO POST

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |
| `bank_slip_key`         | uuidv4 | Chave única de identificação do boleto, no formato uuid v4   | 36         |

Request Body

```json
{
    "request_control_key": "01234567-89ab-cdef-0123-456789abcdef",
    "partial_payment_data": {
        "partial_payment_minimum_type": "absolute",
        "partial_payment_minimum_amount": 50.00,
        "partial_payment_maximum_type": "absolute",
        "partial_payment_maximum_amount": 1000.00,
        "partial_payment_quantity": 3
    }
}
```

### Request Body Params

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|------------|
| `request_control_key` *    | uuidv4  | Chave única de identificação da request utilizada pelo cliente no formato uuid v4  | 36         |
| `partial_payment_data` *    | object  | Configurações de pagamento parcial                      | **[Objeto partial_payment_data](#objeto-partial_payment_data)** |

### Objeto partial_payment_data

| Campo                             | Tipo    | Descrição                                                                 | Caracteres |
|-----------------------------------|---------|---------------------------------------------------------------------------|------------|
| `partial_payment_minimum_type` *  | string  | Tipo de valor mínimo para pagamento parcial                               | **[Enumeradores partial_payment_type](#enumeradores-partial_payment_type)** |
| `partial_payment_minimum_percentage` | float | Percentual mínimo permitido para o pagamento parcial                      | -          |
| `partial_payment_minimum_amount`  | float  | Valor mínimo permitido para o pagamento parcial                           | -          |
| `partial_payment_maximum_type`    | string  | Tipo de valor máximo para pagamento parcial                               | **[Enumeradores partial_payment_type](#enumeradores-partial_payment_type)** |
| `partial_payment_maximum_percentage` | float | Percentual máximo permitido para o pagamento parcial                      | -          |
| `partial_payment_maximum_amount`  | float  | Valor máximo permitido para o pagamento parcial                           | -          |
| `partial_payment_quantity` *      | integer | Quantidade de pagamentos parciais permitidos                              | -          |

:::caution Atenção!
De acordo com o valor enviado nos campos `partial_payment_minimum_type` e `partial_payment_maximum_type`, é necessário enviar o `partial_payment_minimum_amount` ou `partial_payment_minimum_percentage`, e o `partial_payment_maximum_amount` ou `partial_payment_maximum_percentage` correspondente.
:::

### Enumeradores partial_payment_type

| Enumerador  | Descrição                        |
|-------------|----------------------------------|
| absolute    | Valor absoluto                   |
| percentage  | Percentual                       |

## Response

STATUS 202

Response Body

```json
{
  "occurrence_key": "5a745b65-9a2c-44eb-b43e-c80ef5429d94",
  "bank_slip_key": "fdafdffa-cbd4-4f3c-8e3d-990428305161"
}
```

### Response Body Params

| Campo              | Tipo   | Descrição                                                                         | Caracteres |
|--------------------|--------|-----------------------------------------------------------------------------------|------------|
| `occurrence_key` * | uuidv4 | Chave única de identificação da ocorrência (instrução) no formato uuid v4         | 36         |
| `bank_slip_key` *  | uuidv4 | Chave única de identificação do boleto no formato uuid v4                         | 36         |

### Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 404                      | BKS000013            | Not Found | Requester profile not found         |               Carteira não encontrada                                                                 |
| 409                      | BKS000014            | Conflict | Request control key already sent or duplicated sent: `<request_control_key>` | Chave de controle da requisição já utilizada ou enviada duplicada: `<request_control_key>` |
| 400                      | BKS000022            | Bad Request                                        | Requester profile is not opened.                                                              | Carteira não está aberta.                          |
| 404                      | BKS000029            | Not Found                                        | Bank slip not found for the given key (`{bank_slip_key}`).                                                              | Boleto não encontrado para a chave fornecida (`{bank_slip_key}`).                          |
| 400                      | BKS000032            | Bad Request                                        | Bank slip must be in 'registered' status.                                                              | O boleto deve possuir o status 'registered'.                          |
| 409                      | BKS000126            | Conflict                                        | There is already a pending partial payment occurrence for this bank slip. Please, wait for the confirmation of this occurrence before sending another one.                                                              | Já existe uma ocorrência de pagamento parcial pendente para este boleto. Por favor, aguarde a confirmação dessa ocorrência antes de enviar outra.                          |
| 400                      | BKS000127            | Bad Request                                        | Partial payment data is not set for this bank slip.                                                              | Os dados de pagamento parcial não estão configurados para este boleto.                          |

---

# Consulta de instrumento de protesto

URL: /documentation/boletos/instrucoes/protesto/consulta_instrumento_de_protesto

O instrumento de protesto é um documento oficial emitido pelo cartório de protesto, que comprova a execução do processo de cobrança. Ele é emitido após a lavratura do protesto, caso o devedor não tenha pago a dívida após ser intimado.

:::caution Atenção!
Só é possível consultar o instrumento de protesto do título após o mesmo ser efetivamente protestado (`protest_status` possui o valor `protested`).
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /bank_slip/ BANK_SLIP_KEY /protest_instrument
MÉTODO GET

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |
| `bank_slip_key`         | uuidv4 | Chave única de identificação do boleto, no formato uuid v4   | 36         |

## Response

STATUS 200

Response Body

```json
{
  "bank_slip_key": "bc34e9b1-42e4-4f17-bfc0-c88f29d5230e",
  "file_url": "https://storage.googleapis.com/live-bank-slip-api/protest_instrument/bc34e9b1-42e4-4f17-bfc0-c88f29d5230e.pdf"
}
```

### Response Body Params

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------|
| `bank_slip_key` *          | uuidv4  | Chave única de identificação do boleto no formato uuid v4                          | 36                                                |
| `file_url` *               | string  | URL do arquivo, em PDF, contendo o documento do instrumento de protesto            | -                                                 |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (ptbr)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 404                      | BKS000013            | Not Found | Requester profile not found         |               Carteira não encontrada                                                                 |
| 404                      | BKS000029            | Not Found                                        | Bank slip not found for the given key (`{bank_slip_key}`).                                                              | Boleto não encontrado para a chave fornecida (`{bank_slip_key}`).                          |
| 400                      | BKS000081            | Bad Request | The protest instrument will be available only after bank slip's protest confirmation. | O instrumento de protesto só estará disponível após a confirmação do protesto do título. |
| 500                      | BKS000105            | Internal Server Error | Could not fetch protest instrument for the given 'bank_slip_key' at this moment. Please, try again later. | Não foi possível recuperar o instrumento de protesto para a chave ('bank_slip_key') fornecida. Por favor, tente novamente mais tarde. |
| 404                      | BKS000106            | Not Found | No protest found for the given bank slip. | Nenhum protesto foi encontrado para o boleto fornecido. |

---

# Consulta de protesto por chave

URL: /documentation/boletos/instrucoes/protesto/consulta_por_chave

A consulta de um protesto, utilizando sua chave, retorna informações detalhadas a respeito do mesmo.

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /protest/ BANK_SLIP_KEY
MÉTODO GET

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |
| `bank_slip_key`         | uuidv4 | Chave única de identificação do boleto, no formato uuid v4   | 36         |

## Response

STATUS 200

Response Body

```json
{
  "protest_key": "bc34e9b1-42e4-4f17-bfc0-c88f29d5230e",
  "request_control_key": "59515878-50e9-466b-b40d-1aac3939c3fd",
  "protest_status": "protested",
  "bank_slip_key": "7d3d262b-9b55-44cd-8355-2f00d5b1d142",
  "requester_profile_code": "329-09-0001-1467576",
  "protest_type": "protest",
  "protocol_number": "0000672016",
  "protocol_date": "2012-12-16",
  "notary_office": {
    "city": "VITORIA",
    "uf": "ES"
  }
}
```

### Response Body Params

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------|
| `protest_key      ` *      | uuidv4  | Chave única de identificação do protesto no formato uuid v4                        | 36                                                |
| `request_control_key` *    | uuidv4  | Chave única de identificação da request utilizada pelo cliente no formato uuid v4  | 36                                                |
| `protest_status` *         | string  | Status do protesto                                                                 | **[Enumeradores protest_status](#enumeradores-protest_status)**   |
| `bank_slip_key` *          | uuidv4  | Chave única de identificação do boleto no formato uuid v4                          | 36                                                |
| `requester_profile_code` * | string  | Código único de identificação da carteira                                          | 10                                                |
| `protest_type` *           | string  | Tipo de protesto                                                                   | **[Enumeradores protest_type](#enumeradores-protest_type)**       |
| `protocol_number`          | string  | Número do protocolo                                                                | 10                                                |
| `protocol_date`            | string  | Data do protocolo (formato "AAAA-MM-DD")                                           | 10                                                |
| `notary_office`            | object  | Dados do cartório de protesto                                                      | **[Objeto notary_office](#objeto-notary_office)**                         |

### Enumeradores protest_status

| Enumerador                   | Descrição                                                                      |
|------------------------------|--------------------------------------------------------------------------------|
| accepted                     | Aceito, mas ainda não enviado para os cartórios de protesto de títulos         |
| submitted                    | Enviado para o cartório                                                        |
| cancellation_requested       | Sustação de protesto solicitada                                                |
| cancelled                    | Envio cancelado, ou protesto sustado                                           |
| rejected                     | Pedido de protesto rejeitado                                                   |
| at_notary_office             | No cartório de protesto, em período de tríduo                                  |
| paid_at_notary_office        | Título pago em cartório                                                        |
| protested                    | Título protestado e baixado                                                    |
| removal_requested            | Título já protestado, com cancelamento solicitado                              |
| removed                      | Protesto cancelado                                                             |

### Enumeradores protest_type

| Enumerador                   | Descrição                                                                      |
|------------------------------|--------------------------------------------------------------------------------|
| protest                      | Protesto comum                                                                 |
| bankruptcy_protest           | Protesto falimentar                                                            |

### Objeto notary_office

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------|
| `city` *                   | string  | Cidade do cartório de protesto                                                     |  -                                                 |
| `uf` *                     | string  | Estado (UF) do cartório de protesto                                                | 2                                                 |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (ptbr)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 404                      | BKS000013            | Not Found | Requester profile not found         |               Carteira não encontrada                                                                 |
| 404                      | BKS000029            | Not Found                                        | Bank slip not found for the given key (`{bank_slip_key}`).                                                              | Boleto não encontrado para a chave fornecida (`{bank_slip_key}`).                          |
| 404                      | BKS000106            | Not Found | No protest found for the given bank slip. | Nenhum protesto foi encontrado para o boleto fornecido. |

---

# Desistência (sustação) de protesto

URL: /documentation/boletos/instrucoes/protesto/desistencia_de_protesto

É possível desistir de um pedido de protesto enviando uma instrução de `protest_cancel_request`.

:::caution Atenção!
A ocorrência de `protest_cancel_request`, por si só, não baixa o boleto. Se a saída do cartório for ocasionada por uma ocorrência do tipo `protest_cancel_request`, é criada outra ocorrência de `notary_office_exit`, a qual é enviada para a CIP/Nuclea para desbloquear o boleto para pagamento. Assim que ela é confirmada, o boleto volta a poder ser pago via linha digitável. Caso seja de interesse que o boleto seja baixado após a desistência de protesto, o ideal é enviar uma instrução de [**desistência de protesto e baixa do boleto**](/documentation/boletos/instrucoes/protesto/desistencia_de_protesto_e_baixa_do_boleto).
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /bank_slip/ BANK_SLIP_KEY /protest_cancel_request
MÉTODO POST

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |
| `bank_slip_key`         | uuidv4 | Chave única de identificação do boleto, no formato uuid v4   | 36         |

Request Body

```json
{
  "request_control_key": "614a451d-3b82-460e-bcc0-2caf3dde711f"
}
```

### Request Body Params

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|------------|
| `request_control_key` *    | uuidv4  | Chave única de identificação da request utilizada pelo cliente no formato uuid v4  | 36         |

## Response

STATUS 202

Response Body

```json
{
  "occurrence_key": "2552bd64-950b-437e-a53a-a133ffea03d7",
  "bank_slip_key": "960f78d4-4426-4762-98da-3ce3713ae0a5"
}
```

### Response Body Params

| Campo              | Tipo   | Descrição                                                                         | Caracteres |
|--------------------|--------|-----------------------------------------------------------------------------------|------------|
| `occurrence_key` * | uuidv4 | Chave única de identificação da ocorrência (instrução) no formato uuid v4         | 36         |
| `bank_slip_key` *  | uuidv4 | Chave única de identificação do boleto no formato uuid v4                         | 36         |

### Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 404                      | BKS000013            | Not Found | Requester profile not found         |               Carteira não encontrada                                                                 |
| 409                      | BKS000014            | Conflict | Request control key already sent or duplicated sent: `<request_control_key>` | Chave de controle da requisição já utilizada ou enviada duplicada: `<request_control_key>` |
| 400                      | BKS000019            | Bad Request | Payer address is required for protest. | Endereço do pagador é obrigatório para protesto. |
| 400                      | BKS000022            | Bad Request                                        | Requester profile is not opened.                                                              | Carteira não está aberta.                          |
| 404                      | BKS000029            | Not Found                                        | Bank slip not found for the given key (`{bank_slip_key}`).                                                              | Boleto não encontrado para a chave fornecida (`{bank_slip_key}`).                          |
| 400                      | BKS000032            | Bad Request                                        | Bank slip must be in 'registered' status.                                                              | O boleto deve possuir o status 'registered'.                          |
| 400                      | BKS000076            | Bad Request | Bank slip must have an ongoing protest request. | O boleto deve ter um pedido de protesto em vigência. |
| 400                      | BKS000077            | Bad Request | Invalid bank slip protest status to cancel protest request. | Status de protesto do boleto inválido para desistir do pedido de protesto. |

---

# Desistência (sustação) de protesto e baixa do boleto

URL: /documentation/boletos/instrucoes/protesto/desistencia_de_protesto_e_baixa_do_boleto

Outra forma de desistir de um pedido de protesto é enviando uma instrução de `protest_cancel_and_write_off_request`.

:::caution Atenção!
A instrução de `protest_cancel_and_write_off_request` também baixa o boleto na CIP/Nuclea. Assim que ela é confirmada, é automaticamente criada uma ocorrência de `write_off` e a mesma é enviada para Nuclea.
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /bank_slip/ BANK_SLIP_KEY /protest_cancel_and_write_off_request
MÉTODO POST

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |
| `bank_slip_key`         | uuidv4 | Chave única de identificação do boleto, no formato uuid v4   | 36         |

Request Body

```json
{
  "request_control_key": "614a451d-3b82-460e-bcc0-2caf3dde711f"
}
```

### Request Body Params

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|------------|
| `request_control_key` *    | uuidv4  | Chave única de identificação da request utilizada pelo cliente no formato uuid v4  | 36         |

## Response

STATUS 202

Response Body

```json
{
  "occurrence_key": "2552bd64-950b-437e-a53a-a133ffea03d7",
  "bank_slip_key": "960f78d4-4426-4762-98da-3ce3713ae0a5"
}
```

### Response Body Params

| Campo              | Tipo   | Descrição                                                                         | Caracteres |
|--------------------|--------|-----------------------------------------------------------------------------------|------------|
| `occurrence_key` * | uuidv4 | Chave única de identificação da ocorrência (instrução) no formato uuid v4         | 36         |
| `bank_slip_key` *  | uuidv4 | Chave única de identificação do boleto no formato uuid v4                         | 36         |

### Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 404                      | BKS000013            | Not Found | Requester profile not found         |               Carteira não encontrada                                                                 |
| 409                      | BKS000014            | Conflict | Request control key already sent or duplicated sent: `<request_control_key>` | Chave de controle da requisição já utilizada ou enviada duplicada: `<request_control_key>` |
| 400                      | BKS000019            | Bad Request | Payer address is required for protest. | Endereço do pagador é obrigatório para protesto. |
| 400                      | BKS000022            | Bad Request                                        | Requester profile is not opened.                                                              | Carteira não está aberta.                          |
| 404                      | BKS000029            | Not Found                                        | Bank slip not found for the given key (`{bank_slip_key}`).                                                              | Boleto não encontrado para a chave fornecida (`{bank_slip_key}`).                          |
| 400                      | BKS000032            | Bad Request                                        | Bank slip must be in 'registered' status.                                                              | O boleto deve possuir o status 'registered'.                          |
| 400                      | BKS000076            | Bad Request | Bank slip must have an ongoing protest request. | O boleto deve ter um pedido de protesto em vigência. |
| 400                      | BKS000077            | Bad Request | Invalid bank slip protest status to cancel protest request. | Status de protesto do boleto inválido para desistir do pedido de protesto. |

---

# Introdução

URL: /documentation/boletos/instrucoes/protesto/introducao

## Protesto em cartório

Um pedido de protesto em cartório pode ser feito após a data de vencimento do boleto, e serve para fazer com que o pagador seja intimado a pagar o título em cartório. Caso não o faça, é feito um registro público, em seu nome, da inadimplência, além de ter seu nome incluído em órgãos de proteção ao crédito, como a Serasa.

## Fluxo de protesto

### Pedido de protesto

O fluxo de protesto, para um boleto, é iniciado com um pedido de protesto : uma instrução do tipo `protest_request`. A partir do momento em que o pedido de protesto é aceito pela CIP/Nuclea (a instrução de `protest_request` é confirmada), o boleto passa a ficar bloqueado para pagamento, o que significa que o pagador passa a poder pagá-lo somente junto ao cartório. Além disso, também é criada uma ocorrência de `notary_office_entry`, que diz respeito ao envio do pedido de protesto para o cartório. As remessas de pedidos de protesto são enviados diariamente aos cartórios às 9 horas da manhã, portanto, caso sejam recebidas instruções de pedido de protesto após esse horário, elas são enviadas para os cartórios somente no dia seguinte.

Nos dias subsequentes, o cartório deve confirmar a entrada do título em cartório (a ocorrência de `notary_office_entry` é confirmada) e, com isso, inicia-se o período do tríduo. O tríduo é o prazo de 3 dias úteis para que o pagador pague o boleto no cartório sendo que, caso não o faça, o título será protestado. Se o título for pago em cartório, é criada ocorrência do tipo `notary_office_payment_notice` para o boleto em questão e o mesmo é liquidado no dia seguinte. Nesse último caso, também é gerada automaticamente uma instrução de `payment_write_off`, para que o boleto seja baixado junto à CIP/Nuclea.

Caso o período do tríduo termine e o boleto não seja pago e não haja desistência do protesto, o boleto é protestado. Nesse momento, é gerada uma instrução de `protest_write_off` para baixar o boleto na CIP/Nuclea, e encerra-se o ciclo de vida do título.

### Desistência (sustação) do pedido de protesto

Caso as questões referentes ao título sejam resolvidas diretamente entre o pagador e o sacador avalista, até o boleto ser de fato protestado (isto é, até o último dia do tríduo), é possível enviar uma instrução de `protest_cancel_request`, que desiste do pedido de protesto; ou uma instrução de `protest_cancel_and_write_off_request`, que desiste do pedido de protesto e também baixa o boleto na CIP/Nuclea. Vale ressaltar que a ocorrência de `protest_cancel_request`, por si só, não baixa o boleto. Se a saída do cartório for ocasionada por uma ocorrência do tipo `protest_cancel_request`, é criada outra ocorrência de `notary_office_exit`, a qual é enviada para a CIP/Nuclea para desbloquear o boleto para pagamento. Assim que ela é confirmada, o boleto volta a poder ser pago via linha digitável. Por outro lado, se a saída do cartório for ocasionada por uma ocorrência do tipo `protest_cancel_and_write_off_request`, é criada automaticamente uma ocorrência de `write_off`, a qual baixa o boleto na CIP/Nuclea.

### Remoção (cancelamento) do pedido de protesto

Caso a pendência entre o pagador e sacador avalista seja resolvida após o boleto já ter sido protestado, é possível enviar uma instrução do tipo `protest_remove_request`, a qual remove o registro público de inadimplência e qualquer registro, atrelado a esse boleto, que tenha sujado o nome do pagador. Caso a ocorrência seja confirmada (aceita pelo cartório), o protesto é removido e não é criada mais nenhuma instrução para este boleto, uma vez que ele já está baixado na CIP/Nuclea.

---

# Listar protestos

URL: /documentation/boletos/instrucoes/protesto/listar_protestos

A listagem de protestos retornará todos os protestos em cartório de boletos da carteira que se enquadrarem nos query parameters enviados na request.

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /protests
MÉTODO GET

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |

### Query parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres              |
|-------------------------|--------|--------------------------------------------------------------|-------------------------|
| `protest_key`           | uuidv4 | Chave única de identificação do protesto, no formato uuid v4 | 36                      |
| `request_control_key`   | uuidv4 | Chave única de identificação da request, no formato uuid v4  | 36                      |
| `protest_status`        | string | Status do protesto | **[Enumeradores protest_status](#enumeradores-protest_status)**   |
| `bank_slip_key`         | uuidv4 | Chave única de identificação do boleto, no formato uuid v4   | 36                      |
| `protocol_number`       | string | Número do protocolo                                          | 36                      |
| `protocol_date`         | string | Data do protocolo (formato "AAAA-MM-DD")                     | 10                      |
| `page_size`             | integer| Tamanho da página                                            | -                       |
| `from_date`             | string | Data inicial (formato "AAAA-MM-DD")                          | 10                      |
| `to_date`               | string | Data final (formato "AAAA-MM-DD")                            | 10                      |

### Enumeradores protest_status

| Enumerador                   | Descrição                                                                      |
|------------------------------|--------------------------------------------------------------------------------|
| accepted                     | Aceito, mas ainda não enviado para os cartórios de protesto de títulos         |
| submitted                    | Enviado para o cartório                                                        |
| cancellation_requested       | Sustação de protesto solicitada                                                |
| cancelled                    | Envio cancelado, ou protesto sustado                                           |
| rejected                     | Pedido de protesto rejeitado                                                   |
| at_notary_office             | No cartório de protesto, em período de tríduo                                  |
| paid_at_notary_office        | Título pago em cartório                                                        |
| protested                    | Título protestado e baixado                                                    |
| removal_requested            | Título já protestado, com cancelamento solicitado                              |
| removed                      | Protesto cancelado                                                             |

## Response

STATUS 200

Response Body

```json
{
    "data": [
        {
            "protest_key": "ad44278d-7cf1-4ac7-9545-410649a47dde",
            "request_control_key": "7e40ebab-f00c-4dbf-88be-ff34434ab358",
            "protest_status": "protested",
            "bank_slip_key": "7bf086ac-f520-4498-abd4-5a7d2173fd1c",
            "requester_profile_code": "329-09-0001-1467576",
            "protest_type": "protest",
            "protocol_number": "0000000004",
            "protocol_date": "2024-11-27",
            "notary_office": {
                "city": "SAO PAULO",
                "uf": "SP"
            }
        },
        {
            "protest_key": "0087f425-5e54-4b4c-ab17-a57bc80f223a",
            "request_control_key": "c413cedc-78ac-4deb-ace8-d94d4e98197c",
            "protest_status": "at_notary_office",
            "bank_slip_key": "e345c0b3-012b-4a4b-9d6b-6981f40b1a7c",
            "requester_profile_code": "329-09-0001-1467576",
            "protest_type": "protest",
            "protocol_number": "0000000016",
            "protocol_date": "2024-12-10",
            "notary_office": {
                "city": "RIO DE JANEIRO",
                "uf": "RJ"
            }
        },
        {
            "protest_key": "bc34e9b1-42e4-4f17-bfc0-c88f29d5230e",
            "request_control_key": "59515878-50e9-466b-b40d-1aac3939c3fd",
            "protest_status": "accepted",
            "bank_slip_key": "7d3d262b-9b55-44cd-8355-2f00d5b1d142",
            "requester_profile_code": "329-09-0001-1467576",
            "protest_type": "protest"
        }
    ],
    "pagination": {
        "current_page": 1,
        "rows_per_page": 100
    }
}
```

### Response Body Params

| Campo            | Tipo         | Descrição                             | Caracteres                                  |
|------------------|--------------|---------------------------------------|---------------------------------------------|
| `data` *         | object array | Protestos                             | **[Objeto protest](#objeto-protest)**       |
| `pagination` *   | object       | Informações de paginação              | **[Objeto pagination](#objeto-pagination)** |

### Objeto protest

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------|
| `protest_key      ` *      | uuidv4  | Chave única de identificação do protesto no formato uuid v4                        | 36                                                |
| `request_control_key` *    | uuidv4  | Chave única de identificação da request utilizada pelo cliente no formato uuid v4  | 36                                                |
| `protest_status` *         | string  | Status do protesto                                                                 | **[Enumeradores protest_status](#enumeradores-protest_status)**   |
| `bank_slip_key` *          | uuidv4  | Chave única de identificação do boleto no formato uuid v4                          | 36                                                |
| `requester_profile_code` * | string  | Código único de identificação da carteira                                          | 10                                                |
| `protest_type` *           | string  | Tipo de protesto                                                                   | **[Enumeradores protest_type](#enumeradores-protest_type)**       |
| `protocol_number`          | string  | Número do protocolo                                                                | 10                                                |
| `protocol_date`            | string  | Data do protocolo (formato "AAAA-MM-DD")                                           | 10                                                |
| `notary_office`            | object  | Dados do cartório de protesto                                                      | **[Objeto notary_office](#objeto-notary_office)**                         |

### Objeto pagination

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------------------|
| `current_page` *           | integer | Página atual                                                 | -      |
| `rows_per_page` *          | integer | Itens por página                                             | -      |

### Enumeradores protest_type

| Enumerador                   | Descrição                                                                      |
|------------------------------|--------------------------------------------------------------------------------|
| protest                      | Protesto comum                                                                 |
| bankruptcy_protest           | Protesto falimentar                                                            |

### Enumeradores protest_status

| Enumerador                   | Descrição                                                                      |
|------------------------------|--------------------------------------------------------------------------------|
| accepted                     | Aceito, mas ainda não enviado para os cartórios de protesto de títulos         |
| submitted                    | Enviado para o cartório                                                        |
| cancellation_requested       | Sustação de protesto solicitada                                                |
| cancelled                    | Envio cancelado, ou protesto sustado                                           |
| rejected                     | Pedido de protesto rejeitado                                                   |
| at_notary_office             | No cartório de protesto, em período de tríduo                                  |
| paid_at_notary_office        | Título pago em cartório                                                        |
| protested                    | Título protestado e baixado                                                    |
| removal_requested            | Título já protestado, com cancelamento solicitado                              |
| removed                      | Protesto cancelado                                                             |

### Objeto notary_office

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------|
| `city` *                   | string  | Cidade do cartório de protesto                                                     |  -                                                 |
| `uf` *                     | string  | Estado (UF) do cartório de protesto                                                | 2                                                 |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 403                      | BKS000005            | Forbidden                         | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 400                      | BKS000012            | Bad Request | Invalid integer value for page or size query string parameters. | Valor inválido para parâmetros de página ou tamanho de página. |
| 404                      | BKS000013            | Not Found | Requester profile not found         |               Carteira não encontrada                                                                 |

---

# Pedido de protesto

URL: /documentation/boletos/instrucoes/protesto/pedido_de_protesto

Um pedido de protesto em cartório pode ser feito após a data de vencimento do boleto, e serve para fazer com que o pagador seja intimado a pagar o título em cartório. Caso não o faça, é feito um registro público, em seu nome, da inadimplência, além de ter seu nome incluído em órgãos de proteção ao crédito, como a Serasa.

:::caution Atenção!
Para enviar um pedido de protesto, é obrigatório que o endereço do pagador esteja presente no boleto. Caso não esteja, é possível enviar uma instrução de edição do boleto. Ademais, caso exista um boleto esteja em fluxo de protesto, não é permitido o envio de um novo pedido.
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /bank_slip/ BANK_SLIP_KEY /protest_request
MÉTODO POST

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |
| `bank_slip_key`         | uuidv4 | Chave única de identificação do boleto, no formato uuid v4   | 36         |

Request Body

```json
{
  "request_control_key": "614a451d-3b82-460e-bcc0-2caf3dde711f",
  "protest_type": "protest"
}
```

### Request Body Params

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|------------|
| `request_control_key` *    | uuidv4  | Chave única de identificação da request utilizada pelo cliente no formato uuid v4  | 36         |
| `protest_type` *           | string  | Tipo de protesto (comum ou falimentar)                                             | **[Enumeradores protest_type](#enumeradores-protest_type)** |

### Enumeradores protest_type

| Enumerador                                  | Descrição                                                                |
|---------------------------------------------|--------------------------------------------------------------------------|
| protest                                     | Protesto comum                                                           |
| bankruptcy_protest                          | Protesto falimentar                                                      |

## Response

STATUS 202

Response Body

```json
{
  "occurrence_key": "2552bd64-950b-437e-a53a-a133ffea03d7",
  "bank_slip_key": "960f78d4-4426-4762-98da-3ce3713ae0a5"
}
```

### Response Body Params

| Campo              | Tipo   | Descrição                                                                         | Caracteres |
|--------------------|--------|-----------------------------------------------------------------------------------|------------|
| `occurrence_key` * | uuidv4 | Chave única de identificação da ocorrência (instrução) no formato uuid v4         | 36         |
| `bank_slip_key` *  | uuidv4 | Chave única de identificação do boleto no formato uuid v4                         | 36         |

### Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 404                      | BKS000013            | Not Found | Requester profile not found         |               Carteira não encontrada                                                                 |
| 409                      | BKS000014            | Conflict | Request control key already sent or duplicated sent: `<request_control_key>` | Chave de controle da requisição já utilizada ou enviada duplicada: `<request_control_key>` |
| 400                      | BKS000019            | Bad Request | Payer address is required for protest. | Endereço do pagador é obrigatório para protesto. |
| 400                      | BKS000022            | Bad Request                                        | Requester profile is not opened.                                                              | Carteira não está aberta.                          |
| 404                      | BKS000028            | Not Found | Notary office attended region not found for postal code: `<postal_code>` | Região de cartório não encontrada para o CEP: `<postal_code>` |
| 404                      | BKS000029            | Not Found                                        | Bank slip not found for the given key (`{bank_slip_key}`).                                                              | Boleto não encontrado para a chave fornecida (`{bank_slip_key}`).                          |
| 400                      | BKS000032            | Bad Request                                        | Bank slip must be in 'registered' status.                                                              | O boleto deve possuir o status 'registered'.                          |
| 409                      | BKS000075            | Conflict                                        | An open protest request already exists for the given 'bank_slip_key'.                                                              | Já existe um pedido de protesto em aberto para a 'bank_slip_key' fornecida.                          |
| 400                      | BKS000080            | Bad Request                                        | A protest request can only be sent after bank slip's business expiration date.                                                              | Um pedido de protesto só pode ser enviado após o dia útil de expiração do boleto.                          |

---

# Sustação de protesto

URL: /documentation/boletos/instrucoes/protesto/sustacao_de_protesto

Caso a pendência entre o pagador e sacador avalista seja resolvida após o boleto já ter sido protestado, é possível enviar uma instrução do tipo `protest_remove_request`, a qual remove o registro público de inadimplência e qualquer registro, atrelado a esse boleto, que tenha sujado o nome do pagador.

:::caution Atenção!
Caso a ocorrência seja confirmada (aceita pelo cartório), o protesto é removido e não é criada mais nenhuma instrução para este boleto, uma vez que ele já está baixado na CIP/Nuclea.
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /bank_slip/ BANK_SLIP_KEY /protest_remove_request
MÉTODO POST

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |
| `bank_slip_key`         | uuidv4 | Chave única de identificação do boleto, no formato uuid v4   | 36         |

Request Body

```json
{
  "request_control_key": "614a451d-3b82-460e-bcc0-2caf3dde711f"
}
```

### Request Body Params

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|------------|
| `request_control_key` *    | uuidv4  | Chave única de identificação da request utilizada pelo cliente no formato uuid v4  | 36         |

## Response

STATUS 202

Response Body

```json
{
  "occurrence_key": "2552bd64-950b-437e-a53a-a133ffea03d7",
  "bank_slip_key": "960f78d4-4426-4762-98da-3ce3713ae0a5"
}
```

### Response Body Params

| Campo              | Tipo   | Descrição                                                                         | Caracteres |
|--------------------|--------|-----------------------------------------------------------------------------------|------------|
| `occurrence_key` * | uuidv4 | Chave única de identificação da ocorrência (instrução) no formato uuid v4         | 36         |
| `bank_slip_key` *  | uuidv4 | Chave única de identificação do boleto no formato uuid v4                         | 36         |

### Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 404                      | BKS000013            | Not Found | Requester profile not found         |               Carteira não encontrada                                                                 |
| 409                      | BKS000014            | Conflict | Request control key already sent or duplicated sent: `<request_control_key>` | Chave de controle da requisição já utilizada ou enviada duplicada: `<request_control_key>` |
| 400                      | BKS000019            | Bad Request | Payer address is required for protest. | Endereço do pagador é obrigatório para protesto. |
| 400                      | BKS000022            | Bad Request                                        | Requester profile is not opened.                                                              | Carteira não está aberta.                          |
| 404                      | BKS000029            | Not Found                                        | Bank slip not found for the given key (`{bank_slip_key}`).                                                              | Boleto não encontrado para a chave fornecida (`{bank_slip_key}`).                          |
| 400                      | BKS000032            | Bad Request                                        | Bank slip must be in 'registered' status.                                                              | O boleto deve possuir o status 'registered'.                          |
| 400                      | BKS000076            | Bad Request | Bank slip must have an ongoing protest request. | O boleto deve ter um pedido de protesto em vigência. |
| 400                      | BKS000078            | Bad Request | Bank slip's protest_status must be 'protested' to send a protest remove request. | Status de protesto (protest_status) do boleto deve ser 'protested' para enviar um pedido de remoção de protesto. |

---

# Atualização de Rateio de Crédito

URL: /documentation/boletos/instrucoes/rateio_de_credito

Este endpoint permite atualizar o **rateio de crédito** (split de pagamento) de um boleto previamente emitido. As novas regras substituem integralmente as anteriores e passam a valer para a próxima liquidação do boleto.

:::caution Atenção!
- O boleto precisa estar com o status `registered` e ainda não pago.
- A soma de `beneficiary_settlement_percentage` com os percentuais de cada item de `split_payment_rules` deve ser exatamente igual a **100**.
- O envio do payload **substitui** todas as regras de rateio existentes (não é incremental).
- O rateio passa a valer para todos os fluxos de liquidação do boleto (SILOC, STR, cartório e Pix QR Code), inclusive em boletos com QR Code já emitido — neste caso, as regras também serão atualizadas no QR Code automaticamente.
- As contas das regras de rateio precisam estar abertas e cadastradas na QI Tech (a QI Tech consultará pelo `document_number`, `account_number` e `account_digit` informados).
:::

## Request

ENDPOINT /v2/bank_slip/account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /bank_slip/ BANK_SLIP_KEY /split_payment
MÉTODO PUT

### Path parameters

| Campo                   | Tipo   | Descrição                                                         | Caracteres |
|-------------------------|--------|-------------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta em que o boleto foi emitido | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira                          | 36         |
| `bank_slip_key`         | uuidv4 | Chave única de identificação do boleto                            | 36         |

Request Body

```json
{
  "beneficiary_settlement_percentage": 70,
  "split_payment_rules": [
    {
      "percentage": 20,
      "document_number": "12345678901",
      "account_owner_name": "João da Silva",
      "account_number": "1234567",
      "account_digit": "8"
    },
    {
      "percentage": 10,
      "document_number": "10987654321",
      "account_owner_name": "Maria Souza",
      "account_number": "7654321",
      "account_digit": "0"
    }
  ]
}
```

### Request Body Params

| Campo                                  | Tipo         | Descrição                                                                                          | Caracteres |
|----------------------------------------|--------------|----------------------------------------------------------------------------------------------------|------------|
| `beneficiary_settlement_percentage` *  | float        | Percentual do valor liquidado destinado ao beneficiário do boleto. Aceita valor de 0 a 100         | -          |
| `beneficiary_max_amount`               | float        | Valor máximo que o beneficiário recebe na liquidação. Quando o valor pago exceder este limite, o excedente é direcionado integralmente para a primeira regra do array `split_payment_rules`. Aceita valor maior que 0 e menor ou igual ao valor do boleto | - |
| `split_payment_rules` *                | object array | Lista de regras de rateio. Mínimo 1, máximo 10 regras                                              | **[Objeto split_payment_rule](#objeto-split_payment_rule)** |

### Objeto split_payment_rule

| Campo                  | Tipo    | Descrição                                                                                | Caracteres |
|------------------------|---------|------------------------------------------------------------------------------------------|------------|
| `percentage` *         | float   | Percentual do valor liquidado destinado a esta conta. Aceita valor de 0 a 100. Use `0` quando esta regra for destinada exclusivamente a receber o excedente do `beneficiary_max_amount` | - |
| `document_number` *    | string  | CPF/CNPJ do titular da conta destino                                                     | 11 ou 14   |
| `account_owner_name` * | string  | Nome do titular da conta destino                                                         | 100        |
| `account_number` *     | string  | Número da conta destino                                                                  | 20         |
| `account_digit` *      | string  | Dígito verificador da conta destino                                                      | 2          |

## Caso de uso: receber juros e multa em uma conta separada

> **Como configurar para que o juros e multa que excederem o valor de face do boleto sejam direcionados a uma conta diferente do beneficiário?**

Esse cenário é comum em plataformas que emitem boletos em nome de terceiros (escolas, condomínios, marketplaces), onde o titular do boleto deve receber sempre o valor de face e a plataforma fica com a parcela adicional de juros/multa em casos de pagamento em atraso.

A configuração é feita combinando `beneficiary_max_amount` com uma regra de rateio com `percentage = 0`:

```json
{
  "beneficiary_settlement_percentage": 100,
  "beneficiary_max_amount": 1000.00,
  "split_payment_rules": [
    {
      "percentage": 0,
      "document_number": "12345678000199",
      "account_owner_name": "Plataforma de Cobrança",
      "account_number": "1234567",
      "account_digit": "8"
    }
  ]
}
```

**Como o cálculo funciona** considerando um boleto de R$ 1.000,00:

| Cenário | Valor pago | Beneficiário recebe | Plataforma recebe |
|---|---|---|---|
| Pagamento em dia | R$ 1.000,00 | R$ 1.000,00 | R$ 0,00 (sem settlement gerado) |
| Pagamento em atraso (com R$ 100,00 de juros/multa) | R$ 1.100,00 | R$ 1.000,00 | R$ 100,00 |
| Pagamento parcial em atraso | R$ 950,00 | R$ 950,00 | R$ 0,00 |

A regra é: o beneficiário recebe **no máximo** `beneficiary_max_amount`; qualquer valor pago acima disso é direcionado integralmente para a **primeira** regra de `split_payment_rules`.

:::caution Atenção!
- `beneficiary_max_amount` deve ser maior que 0 e menor ou igual ao valor do boleto (`amount`).
- Quando alguma regra tem `percentage = 0`, o campo `beneficiary_max_amount` é obrigatório.
- Apenas **uma** regra de `split_payment_rules` pode ter `percentage = 0` por boleto (a destinatária do excedente).
:::

## Response

STATUS 204

Response Body

```json
{}
```

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`        | Descrição (eng)<br/>`description`                                                            | Descrição (pt-br)<br/>`translation`                                                                       |
|--------------------------|----------------------|---------------------------|----------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request               | Schema Error                                                                                 | Schema Inválido                                                                                           |
| 404                      | BKS000029            | Not Found                 | Bank slip not found for the given key (`{bank_slip_key}`).                                   | Boleto não encontrado para a chave fornecida (`{bank_slip_key}`).                                         |
| 400                      | BKS000032            | Bad Request               | Bank slip must be in 'registered' status.                                                    | O boleto deve possuir o status 'registered'.                                                              |
| 422                      | BKS000157            | Unprocessable Entity      | Could not find an account matching the provided split payment account data.                 | Não foi possível encontrar uma conta com os dados informados na regra de split payment.                   |
| 400                      | BKS000158            | Bad Request               | The beneficiary_max_amount must be greater than 0 and not greater than the bank slip amount. | O beneficiary_max_amount deve ser maior que 0 e não pode ser maior que o valor do boleto.                 |
| 400                      | BKS000159            | Bad Request               | Split payment rules with percentage equal to 0 require beneficiary_max_amount to be set.     | Regras de split payment com percentual igual a 0 exigem o campo beneficiary_max_amount preenchido.        |
| 400                      | BKS000160            | Bad Request               | Only one split payment rule with percentage equal to 0 is allowed.                           | É permitido apenas uma regra de split payment com percentual igual a 0.                                   |

---

# Valor

URL: /documentation/boletos/instrucoes/valor

A instrução de valor permite alterar o valor de um boleto, desde que o boleto já tenha sido registrado. Caso já exista uma instrução de valor pendente de confirmação para o boleto em questão, não é permitido o envio de uma nova instrução.

:::caution Atenção!
Caso exista alguma instrução de valor pendente de confirmação, não é permitido o envio de uma nova instrução.
:::

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /bank_slip/ BANK_SLIP_KEY /amount
MÉTODO POST

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |
| `bank_slip_key`         | uuidv4 | Chave única de identificação do boleto, no formato uuid v4   | 36         |

Request Body

```json
{
    "request_control_key": "01234567-89ab-cdef-0123-456789abcdef",
    "amount": 150.50
}
```

### Request Body Params

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|------------|
| `request_control_key` *    | uuidv4  | Chave única de identificação da request utilizada pelo cliente no formato uuid v4  | 36         |
| `amount` *                 | number  | Novo valor do boleto (deve ser diferente do valor atual)                           | -          |

:::caution Atenção!
O valor deve ser diferente do valor atual do boleto e deve ter no máximo 2 casas decimais.
:::

## Response

STATUS 202

Response Body

```json
{
  "occurrence_key": "5a745b65-9a2c-44eb-b43e-c80ef5429d94",
  "bank_slip_key": "fdafdffa-cbd4-4f3c-8e3d-990428305161"
}
```

### Response Body Params

| Campo              | Tipo   | Descrição                                                                         | Caracteres |
|--------------------|--------|-----------------------------------------------------------------------------------|------------|
| `occurrence_key` * | uuidv4 | Chave única de identificação da ocorrência (instrução) no formato uuid v4         | 36         |
| `bank_slip_key` *  | uuidv4 | Chave única de identificação do boleto no formato uuid v4                         | 36         |

### Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 404                      | BKS000013            | Not Found | Requester profile not found         |               Carteira não encontrada                                                                 |
| 409                      | BKS000014            | Conflict | Request control key already sent or duplicated sent: `<request_control_key>` | Chave de controle da requisição já utilizada ou enviada duplicada: `<request_control_key>` |
| 400                      | BKS000022            | Bad Request                                        | Requester profile is not opened.                                                              | Carteira não está aberta.                          |
| 404                      | BKS000029            | Not Found                                        | Bank slip not found for the given key (`{bank_slip_key}`).                                                              | Boleto não encontrado para a chave fornecida (`{bank_slip_key}`).                          |
| 400                      | BKS000032            | Bad Request                                        | Bank slip must be in 'registered' status.                                                              | O boleto deve possuir o status 'registered'.                          |
| 409                      | BKS000135            | Conflict                                        | An amount occurrence already exists for this bank slip.                                                              | Já existe uma ocorrência de valor para este boleto.                          |
| 400                      | BKS000136            | Bad Request                                        | Only credit card financial instrument type can have zero amount.                                                              | Apenas o tipo de instrumento financeiro cartão de crédito pode ter valor zero.                          |
| 400                      | BKS000137            | Bad Request                                        | Amount must be different from bank slip amount.                                                              | O valor deve ser diferente do valor do boleto.                          |

---

# Introdução

URL: /documentation/boletos/introducao

## Boleto bancário

Um boleto bancário geralmente está relacionado a cobranças. São caracterizados por terem linhas digitáveis que não são iniciadas com dígito 8. Possui registro na Câmara Interbancária de Pagamento (CIP/Núclea) e pode ser pago em instituições financeiras e de pagamento autorizadas a funcionar pelo Banco Central.

## Carteira de cobrança

De antemão, vale ressaltar que, nessa documentação, as carteiras de cobrança são chamadas de `requester_profile`. A carteira de cobrança está necessariamente relacionada a uma conta e carrega configurações padrão específicas (de juros, multa, protesto etc.) no que diz respeito ao registro de boletos. Uma vez atribuídas tais configurações padrão --- na criação ou edição da carteira de cobrança ---, sempre que o usuário registrar um boleto, sem mandar alguma dessas configurações, será utilizada a configuração padrão para o parâmetro em questão.

:::info Exemplo
Ao criar a carteira de cobrança, o usuário enviou uma configuração de multa para a carteira que faz com que, caso o pagador atrase o pagamento em 5 dias ou mais, será cobrado R$10,00 de multa. Ao registrar o boleto, essa configuração pode ser sobrescrita; por exemplo, pode-se optar por cobrar uma multa de R$15,00, ou até mesmo não cobrar multa nenhuma. No entanto, caso tal configuração não seja sobrescrita no momento do registro do boleto, valerá a configuração padrão da carteira (a aplicação dos R$10,00 de multa, caso o pagador atrase mais de 5 dias no pagamento).
:::

É possível criar várias carteiras de cobrança para uma mesma conta, e uma carteira inicial --- sem nenhuma configuração padrão ---, é criada juntamente com a abertura de conta na QI Tech. A possibilidade de se criar várias carteiras de cobrança permite a criação de diferentes carteiras com diferentes configurações padrão; e as configurações padrão, por sua vez, facilitam o registro de vários boletos com configurações em comum, uma vez que configurações de multa, juros etc. não precisam ser enviadas sempre que se deseja registrar um boleto.

## Máquina de estados do boleto

Os boletos, ao longo de seu ciclo de vida, podem passar pelos seguintes status:

| Enumerador                    | Tradução                 | Descrição                                                                    |
|-------------------------------|--------------------------|------------------------------------------------------------------------------|
| accepted                      | aceito                   | Boleto aceito e pendente de confirmação junto à CIP/Nuclea                   |
| rejected                      | rejeitado                | O registro do boleto não foi aceito                                          |
| registered                    | registrado               | Boleto registrado junto à CIP/Nuclea                                         |
| payment_blocked               | bloqueado para pagamento | Boleto bloqueado para pagamento na CIP/Nuclea por estar em fluxo de protesto |
| written_off                   | baixado                  | Boleto baixado (não está mais disponível para pagamento)                     |
| payment_notice                | pagamento notificado     | O boleto pago e baixado, mas ainda sem liquidação financeira                 |
| paid                          | pago                     | Boleto pago, baixado e liquidado financeiramente                             |

### Transições de estado

- `accepted` -> `rejected`: registro do boleto não foi aceito junto à CIP/Nuclea;
- `accepted` -> `registered`: registro do boleto aceito junto à CIP/Nuclea;
- `registered` -> `written_off`: boleto foi baixado sem ser pago;
- `registered` -> `payment_notice`: boleto foi pago e baixado, mas ainda não foi liquidado financeiramente;
- `payment_notice` -> `paid`: após o pagamento, boleto foi liquidado financeiramente;
- `registered` -> `payment_blocked`: pagamento do boleto foi bloqueado, devido ao início de um fluxo de protesto;
- `payment_blocked` -> `notary_office_payment_notice`: boleto foi pago em cartório e baixado, mas ainda não foi liquidado financeiramente;
- `notary_office_payment_notice` -> `paid`: após o pagamento em cartório, boleto foi liquidado financeiramente;
- `payment_blocked` -> `written_off`: boleto foi protestado.

:::caution Atenção
Para boletos com configurações de pagamento parcial, a transição de status funciona de maneira diferente. Após receber um pagamento, os boletos com configurações de pagamento parcial continuam no status de `registered` caso o pagamento enviado pelo outro banco tenha sido uma baixa parcial interbancária. Você receberá os webhooks de [payment notice](/documentation/boletos/webhooks/boleto) e [payment](/documentation/boletos/webhooks/boleto) normalmente, porém o boleto continua no status de `registered`. O boleto só mudará para o status de `payment_notice` e posteriormente para `paid` caso uma baixa integral interbancária seja enviada pelo banco pagante junto à CIP/Núclea. Caso queira baixar o boleto a qualquer momento ou quando o valor total tenha sido pago, mas nenhuma baixa integral interbancária tenha sido enviada pela outra instituição, você pode enviar uma [ocorrência de baixa](/documentation/boletos/instrucoes/baixa).

Para boletos do tipo **cartão de crédito** (`credit_card`), é importante observar que estes não recebem baixa integral interbancária. Portanto, será sempre de responsabilidade do cliente realizar a baixa manual do boleto, ou o mesmo será baixado automaticamente D+7 após a data máxima de pagamento (conforme configuração de `max_payment_days`).
:::

## Registro de boletos

### Via API

Fluxo de registro padrão

Caso o sistema receba uma requisição de registro de boleto pelo [**fluxo de registro padrão**](/documentation/boletos/emissao/emissao_boleto_unico_padrao), e tal requisição seja aceita --- isto é, caso não haja nenhuma inconsistência com as informações enviadas ---, será devolvido como resposta um boleto com o status `accepted`, mas ainda não é certeza de que o mesmo será de fato registrado. Após o envio do boleto para a CIP/Nuclea e o recebimento da resposta, o boleto passa para o status `rejected` ou para o status `accepted`.

Fluxo de registro em lote

A emissão de boletos em lote é feita de forma assíncrona, onde, se algum boleto falhar na validação, nenhum será registrado. O solicitante é notificado via [**webhook**](/documentation/boletos/v2/webhooks/boleto) quando os boletos mudam de status. Para mais detalhes, consulte a [**documentação completa**](/documentation/boletos/emissao/emissao_em_lote).

Fluxo de registro instantâneo

Há também uma outra opção para o registro de boletos: o [**fluxo de registro instantâneo**](/documentation/boletos/emissao/emissao_boleto_unico_instantanea). Nesse fluxo, o registro do boleto é processado de maneira síncrona e a resposta da API já retorna a informação se o boleto foi aceito ou rejeitado; ou seja, é devolvido como resposta um boleto que já possui status `accepted` ou `rejected`. O tempo de confirmação/rejeição da Nuclea/CIP, a respeito do registro do boleto, está incluso no tempo de resposta desse endpoint.

### Via arquivo de remessa

A solicitação de registro de boletos via arquivo surte exatamente o mesmo resultado final do registro via API. A diferença é que, quando registrando via arquivo, deve-se considerar o tempo de processamento do arquivo no tempo total para registro do boleto. Portanto, geralmente trata-se de um registro mais demorado do que o registro via API.

Em contrapartida, ao registrar via arquivo, é possível registrar um volume muito alto de boletos de uma vez só.

---

# Listar grupos de liquidação

URL: /documentation/boletos/liquidacao/listar_grupos_de_liquidacao

:::info Informação
Em nosso sistema, os grupos de liquidação são uma forma de conciliar as transações com os boletos liquidados. Esse processo (liquidação) descreve a transferência do valor de um boleto pago para a conta que deve receber esse pagamento. Resumidamente, sempre que a QI recebe a informação de que um boleto foi pago por outro banco ou, no caso de boletos protestados, pelo cartório, é criada uma liquidação para esse boleto específico. Posteriormente, são criados os **grupos de liquidação**, que representam lotes de liquidações agrupadas por tipo.

Em um momento posterior, é realizada a transação de pagamento desse grupo de liquidação para a conta do cliente. A **transaction_key** dessa transação é então salva para fins de conciliação, dessa foma você pode ver todos os boletos que foram liquidados em uma determinada transação. Por exemplo, se você tiver cinco boletos de R$ 5,00 cada, sendo que um foi pago via cartório, um foi pago via QR Code PIX e os outros três foram pagos utilizando a linha digitável ou código de barras por outro banco, serão criadas cinco liquidações referentes a esses boletos. Em seguida, essas liquidações serão agrupadas em três grupos de liquidação: um de R$ 15,00 com os três boletos pagos utilizando a linha digitável ou código de barras, para os quais será realizada uma única transação, outro de R$ 5,00 para o boleto pago via QR Code PIX e o último também de R$ 5,00 com o boleto pago via cartório.
:::

A listagem de grupos de liquidação retornará todos os grupos de liquidação da conta que se enquadrarem nos query parameters enviados na request.

## Request

ENDPOINT /account/ ACCOUNT_KEY /bank_slip_settlement_groups
MÉTODO GET

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta    | 36         |

### Query parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres              |
|-------------------------|--------|--------------------------------------------------------------|-------------------------|
| `bank_slip_settlement_group_key`         | uuidv4 | Chave única de identificação do grupo de liquidação   | 36                      |
| `transaction_key`             | uuidv4 | Chave única de identificação da transação do grupo de liquidação                           | 36                                                |
| `bank_slip_settlement_group_status`      | string | Status do grupo de liquidação | **[Enumeradores bank_slip_settlement_group_status](#enumeradores-bank_slip_settlement_group_status)** |
| `date_from`            | string    | Data inicial. Formato "YYYY-MM-DD".                                      |
| `date_to`              | string    | Data final. Formato "YYYY-MM-DD".                                        |
| `page`                  | integer| Número da página                                             | -                       |
| `page_size`             | integer| Tamanho da página                                            | -                       |

## Response

STATUS 200

Response Body

```json
{
    "data": [
        {
            "bank_slip_settlement_group_key": "5ba0b0cf-ac4a-4c91-819d-d6c46d70e3ab",
            "account_key": "96015228-4905-42fc-bda6-e70e0e552b6b",
            "transaction_key": "6704d927-9e0d-411d-8c44-c377c0c56637",
            "amount": 1069.24,
            "bank_slip_settlement_group_type": "notary_office",
            "bank_slip_settlement_group_status": "settled",
            "bank_slip_settlement_quantity": 1
        },
        {
            "bank_slip_settlement_group_key": "feda6069-c0cf-4148-b881-a475737330ab",
            "account_key": "96015228-4905-42fc-bda6-e70e0e552b6b",
            "transaction_key": "00d557de-78ca-4871-b254-2852499660e2",
            "amount": 2400.0,
            "bank_slip_settlement_group_type": "siloc",
            "bank_slip_settlement_group_status": "settled",
            "bank_slip_settlement_quantity": 303
        },
        {
            "bank_slip_settlement_group_key": "5493030c-ba1c-44de-9e85-5aaee0afe46d",
            "account_key": "96015228-4905-42fc-bda6-e70e0e552b6b",
            "transaction_key": "b42c4d0a-8060-41d7-bd00-17889cc76485",
            "amount": 250.0,
            "bank_slip_settlement_group_type": "siloc",
            "bank_slip_settlement_group_status": "settled",
            "bank_slip_settlement_quantity": 50
        },
        {
            "bank_slip_settlement_group_key": "f33c087d-cbae-47a9-bd5a-e6a8ecc04ed2",
            "account_key": "96015228-4905-42fc-bda6-e70e0e552b6b",
            "transaction_key": "6ee57aea-b589-4dff-9555-200c34380154",
            "amount": 4024800.0,
            "bank_slip_settlement_group_type": "str",
            "bank_slip_settlement_group_status": "settled",
            "bank_slip_settlement_quantity": 16
        },
        {
            "bank_slip_settlement_group_key": "27b9b2b7-549e-406e-9f41-c71e0cb08b00",
            "account_key": "96015228-4905-42fc-bda6-e70e0e552b6b",
            "transaction_key": "36aa7a00-6741-41d5-99e9-ce620fed5823",
            "amount": 300.0,
            "bank_slip_settlement_group_type": "split_payment",
            "bank_slip_settlement_group_status": "settled",
            "bank_slip_settlement_quantity": 1,
            "settlement_date": "2026-04-23"
        }
    ],
    "pagination": {
        "current_page": 1,
        "rows_per_page": 100
    }
}
```

### Response Body Params

| Campo            | Tipo         | Descrição                             | Caracteres                                  |
|------------------|--------------|---------------------------------------|---------------------------------------------|
| `data`          | object array | Boletos                               | **[Objeto bank_slip_settlement_group](#objeto-bank_slip_settlement_group)**   |
| `pagination`    | object       | Informações de paginação              | **[Objeto pagination](#objeto-pagination)** |

### Objeto bank_slip_settlement_group

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------|
| `bank_slip_settlement_group_key      `     | uuidv4  | Chave única de identificação do boleto no formato uuid v4                          | 36                                                |
| `account_key`     | uuidv4  | Chave única de identificação da conta | 36                                                |
| `transaction_key`             | uuidv4 | Chave única de identificação da transação do grupo de liquidação                           | 36                                                |
| `amount`                  | float   | Valor total liquidado                                                               | -
| `bank_slip_settlement_group_type`      | string | Tipo do grupo de liquidação | **[Enumeradores bank_slip_settlement_group_type](#enumeradores-bank_slip_settlement_group_type)** |
| `bank_slip_settlement_group_status`      | string | Status do grupo de liquidação | **[Enumeradores bank_slip_settlement_group_status](#enumeradores-bank_slip_settlement_group_status)** |
| `bank_slip_settlement_quantity`              | integer  |  Quantidade de liquidações do grupo  | - |

### Objeto pagination

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------------------|
| `current_page`            | integer | Página atual                                                 | -      |
| `rows_per_page`           | integer | Itens por página                                             | -      |

### Enumeradores bank_slip_settlement_group_type

| Enumerador                   | Descrição                                                                    |
|------------------------------|------------------------------------------------------------------------------|
| siloc                        | para pagamento de títulos (valor do título menor que R$ 250.000)                          |
| qr_code                      | para pagamento de títulos realizados via QR Code |
| str                          | para pagamento de títulos VR (valor do título maior que R$ 250.000) |
| notary_office                | para pagamento de títulos realizados via cartório             |
| split_payment                | grupo de liquidação destinado a uma conta rateada do [**rateio de crédito**](/documentation/boletos/instrucoes/rateio_de_credito) do boleto |

:::tip Boletos com rateio de crédito
Quando um boleto tem [**rateio de crédito**](/documentation/boletos/instrucoes/rateio_de_credito) configurado, o pagamento gera um grupo de liquidação por destinatário:
- O grupo da conta do **beneficiário do boleto** mantém o tipo original do fluxo de liquidação (`siloc`, `qr_code`, `str` ou `notary_office`).
- Os grupos das **contas rateadas** são criados com o tipo `split_payment`.

Cada conta envolvida (beneficiário e rateadas) consegue listar o seu próprio grupo de liquidação chamando este endpoint com a sua `account_key` — assim, os rateados conseguem conciliar exatamente quanto receberam de cada boleto.
:::

### Enumeradores bank_slip_settlement_group_status

| Enumerador                   | Descrição                                                                    |
|------------------------------|------------------------------------------------------------------------------|
| pending                      | grupo de liquidação criado mas a transação não foi realizada  |
| settled                      | grupo de liquidação criado e transação realizada |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 400                      | BKS000095            | Bad Request | Invalid bank slip settlement group status.         |               Status de grupo de liquidação de boleto inválido. |

---

# Listar liquidações

URL: /documentation/boletos/liquidacao/listar_liquidacoes

:::info Informação
Em nosso sistema, as **liquidações** descrevem a transferência do valor de um boleto pago para a conta que deve receber esse pagamento. Resumidamente, sempre que a QI recebe a informação de que um boleto foi pago por outro banco ou, no caso de boletos protestados, pelo cartório, é criada uma liquidação para esse boleto específico. Posteriormente, são criados os grupos de liquidação aos quais elas sempre estarão atreladas, que representam lotes de liquidações agrupadas por tipo.

Em um momento posterior, é realizada a transação de pagamento desse grupo de liquidação para a conta do cliente. A **transaction_key** dessa transação é então salva para fins de conciliação, dessa foma você pode ver todos os boletos que foram liquidados em uma determinada transação. Por exemplo, se você tiver cinco boletos de R$ 5,00 cada, sendo que um foi pago via cartório, um foi pago via QR Code PIX e os outros três foram pagos utilizando a linha digitável ou código de barras por outro banco, serão criadas cinco liquidações referentes a esses boletos. Em seguida, essas liquidações serão agrupadas em três grupos de liquidação: um de R$ 15,00 com os três boletos pagos utilizando a linha digitável ou código de barras, para os quais será realizada uma única transação, outro de R$ 5,00 para o boleto pago via QR Code PIX e o último também de R$ 5,00 com o boleto pago via cartório.
:::

A listagem de liquidações retornará todas as liquidações do grupo de liquidação enviado na request.

## Request

ENDPOINT /account/ ACCOUNT_KEY /bank_slip_settlement_group/ BANK_SLIP_SETTLEMENT_GROUP_KEY /bank_slip_settlements
MÉTODO GET

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta    | 36         |
| `bank_slip_settlement_group_key`         | uuidv4 | Chave única de identificação do grupo de liquidação   | 

## Response

STATUS 200

Response Body

```json
{
    "data": [
        {
            "settlement_key": "388eac3a-4138-421c-86af-f6fe3d1a9419",
            "amount": 4800.0,
            "account_key": "96015228-4905-42fc-bda6-e70e0e552b6b",
            "bank_slip_key": "d39e243b-8532-4006-9ffd-17607d5d1620",
            "barcode": "32991981000275000002269450000000043200779790"
        },
        {
            "settlement_key": "c3d7c62e-73fa-473f-b5a2-82e9b8a7f9bb",
            "amount": 1.0,
            "account_key": "96015228-4905-42fc-bda6-e70e0e552b6b",
            "bank_slip_key": "3088ffdd-dec0-4fa3-8643-995d6809a2e6",
            "barcode": "32999980300000001000001370000000000100828480"
        }
    ],
    "pagination": {
        "current_page": 1,
        "rows_per_page": 100
    }
}
```

### Response Body Params

| Campo            | Tipo         | Descrição                             | Caracteres                                  |
|------------------|--------------|---------------------------------------|---------------------------------------------|
| `data`          | object array | Boletos                               | **[Objeto bank_slip_settlement](#objeto-bank_slip_settlement_group)**   |
| `pagination`    | object       | Informações de paginação              | **[Objeto pagination](#objeto-pagination)** |

### Objeto bank_slip_settlement

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------|
| `settlement_key      `     | uuidv4  | Chave única de identificação da liquidação                          | 36                                                |
| `account_key`     | uuidv4  | Chave única de identificação da conta | 36                                                |
| `amount`                  | float   | Valor liquidado                                                               | -
| `bank_slip_key      `     | uuidv4  | Chave única de identificação do boleto no formato uuid v4                          |
| `barcode`              | string  | Código de barras do boleto                                                         |

### Objeto pagination

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------------------|
| `current_page`            | integer | Página atual                                                 | -      |
| `rows_per_page`           | integer | Itens por página                                             | -      |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000008            | Bad Request | The source account is closed.         |               A conta de origem está fechada.                                                                 |
| 400                      | BKS000009            | Bad Request | The source account is blocked.         |               A conta de origem está bloqueada.                                                                 |
| 400                      | BKS000012            | Bad Request | Invalid integer value for page or size query string parameters. | Valor inválido para parâmetros de página ou tamanho de página. |
| 404                      | BKS000093            | Bad Request | Settlement group not found for the given key.         |   Grupo de liquidação não encontrado para a chave fornecida. |

---

# Simulação de cenários

URL: /documentation/boletos/liquidacao/simulacao_de_cenarios_de_liquidacao

Esta página descreve como simular a efetivação de ações feitas por agentes externos para testar o fluxo de liquidação de boletos. Essas simulações são úteis para homologação e testes de integração.

:::info Informação
Não há payload de retorno (response body) nessas requisições. Elas simulam ações externas e retornam apenas o status HTTP.
:::

## 1 - Simulação de aviso de pagamento

Simula o aviso de pagamento de um boleto, alterando seu status para `payment_notice`.

ENDPOINT /mock/bank_slip/payment_notice
MÉTODO POST

Request Body

```json
{
    "bank_slip_key": "0d00b0e2-af11-472f-11f0-11f3330bae33",
    "paid_amount": 12.0,
    "payment_method": "cash",
    "payment_type": "full_interbank"
}
```

### Objeto Request Body

| Campo                            | Tipo    | Descrição                                                            | Máx. Caract. |
|----------------------------------|---------|----------------------------------------------------------------------|--------------|
| **bank_slip_key***               | string  | Chave unitária do boleto                                             | 36           |
| **paid_amount**                  | float   | Valor do pagamento. Se não informado, usa o valor original do boleto | -            |
| **payment_method**               | string  | Método de pagamento utilizado                                        | -            |
| **payment_type**                 | string  | Tipo de pagamento interbancário                                     | -            |

### Enumeradores payment_method

| Enumerador      | Descrição                    |
|-----------------|------------------------------|
| `cash`          | Dinheiro                     |
| `account_debit` | Débito em conta              |
| `credit_card`   | Cartão de crédito            |
| `check`         | Cheque                       |

### Enumeradores payment_type

| Enumerador              | Descrição                    |
|-------------------------|------------------------------|
| `full_interbank`        | Pagamento integral interbancário |
| `partial_interbank`     | Pagamento parcial interbancário  |

:::tip Comportamento
- Se `paid_amount` não for informado, será utilizado o valor original do boleto
- Se `payment_type` não for informado, será considerado como pagamento integral (`full_interbank`)
- A simulação cria uma ocorrência de aviso de pagamento
- O boleto será movido para o status `payment_notice` após a simulação
- **Importante**: Para `partial_interbank`, o status do boleto não é alterado. Esta opção é utilizada para simular casos de boletos de pagamento parcial, conforme explicado na [introdução](/documentation/boletos/introducao)
:::

## 2 - Simulação de liquidação de boleto

Simula o pagamento e liquidação financeira de um boleto, alterando seu status para `paid`.

ENDPOINT /mock/bank_slip/settlement
MÉTODO POST

Request Body

```json
{
    "bank_slip_key": "0d00b0e2-af11-472f-11f0-11f3330bae33",
    "paid_amount": 12.0,
    "payment_method": "cash"
}
```

### Objeto Request Body

| Campo                            | Tipo    | Descrição                                                            | Máx. Caract. |
|----------------------------------|---------|----------------------------------------------------------------------|--------------|
| **bank_slip_key***               | string  | Chave unitária do boleto                                             | 36           |
| **paid_amount**                  | float   | Valor do pagamento da liquidação. Se não informado, usa o valor original do boleto | -            |
| **payment_method**               | string  | Método de pagamento utilizado                                        | -            |

### Enumeradores payment_method

| Enumerador      | Descrição                    |
|-----------------|------------------------------|
| `cash`          | Dinheiro                     |
| `account_debit` | Débito em conta              |
| `credit_card`   | Cartão de crédito            |
| `check`         | Cheque                       |

:::tip Comportamento
- Se `paid_amount` não for informado, será utilizado o valor original do boleto
- A simulação cria uma ocorrência de pagamento com código 65 (pagamento) por padrão
- O boleto será movido para o status `paid` após a simulação
:::

---

# Listar arquivos retorno

URL: /documentation/boletos/retorno/listar_arquivos_retorno

:::info
Os arquivos disponibilizados nas URLs fornecidas na resposta desse endpoint seguem o padrão de Layout de Arquivo de Retorno com 400 posições da QI Tech.
Segue link para download do manual: [Layout de Cobrança - QI Tech versão 2.1.](https://storage.googleapis.com/live-doc-api/public_samples/Layout%20de%20Cobran%C3%A7a%20-%20QI%20Tech%20v2.1.pdf)
:::

Os arquivos retorno servem para conciliação. Nele, cada linha de Registro de Transação (Tipo 1) diz respeito a uma instrução (seja de emissão, prorrogação, abatimento etc.) que foi confirmada ou rejeitada pela CIP/Nuclea no dia anterior.

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /discharge_files
MÉTODO GET

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta    | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira, no formato uuid v4 | 36         |

### Query parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres              |
|-------------------------|--------|--------------------------------------------------------------|-------------------------|
| `discharge_file_key`         | uuidv4 | Chave única de identificação do arquivo retorno, no formato uuid v4   | 36                      |
| `page`                  | integer| Número da página                                             | -                       |
| `page_size`             | integer| Tamanho da página                                            | -                       |
| `from_date`             | string| Data inicial (formato "AAAA-MM-DD")                           | 10                      |
| `to_date`               | string| Data final (formato "AAAA-MM-DD")                             | 10                      |

## Response

STATUS 200

Response Body

```json
{
    "data": [
        {
            "discharge_file_key": "f1a8fe59-29cd-49e5-8d18-55194869b45c",
            "discharge_file_name": "CB15102401.RET",
            "discharge_file_url": "https://storage.googleapis.com/local-bank-slip-api/2024/61a746ca-05bf-429d-99c3-3fba0f9fbea7/329-20-7336-3073959/discharge/CB15102401.RET",
            "reference_date": "2024-10-15"
        }
    ],
    "pagination": {
        "current_page": 1,
        "rows_per_page": 100
    }
}
```

### Response Body Params

| Campo            | Tipo         | Descrição                             | Caracteres                                  |
|------------------|--------------|---------------------------------------|---------------------------------------------|
| `data`          | object array | Arquivos retorno                               | **[Objeto discharge_file](#objeto-discharge_file)**   |
| `pagination`    | object       | Informações de paginação              | **[Objeto pagination](#objeto-pagination)** |

### Objeto discharge_file

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------|
| `discharge_file_key      `     | uuidv4  | Chave única de identificação do arquivo retorno no formato uuid v4                          | 36                                                |
| `discharge_file_name`     | string  | Nome do arquivo retorno | -                                                |
| `discharge_file_url`             | string | URL do arquivo retorno                           | -                                                |
| `reference_date`                  | string   | Data de referencia do aquivo retorno no formato YYYY-MM-DD                                                               | 10 |

### Objeto pagination

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------------------|
| `current_page`            | integer | Página atual                                                 | -      |
| `rows_per_page`           | integer | Itens por página                                             | -      |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 403                      | BKS000005            | Forbidden                         | User is not allowed to do this action | Usuário não tem autorização para fazer essa ação |
| 404                      | BKS000006            | Not Found                                  | The source account key was not found.                                                                                | A chave da conta de origem não foi encontrada.                                                                           |
| 400                      | BKS000007            | Bad Request                                  | It was not possible to consult the source account at this time. Please try again in a few minutes.                                                                                      | Não foi possível consultar a conta de origem neste momento. Por favor, tente novamente em alguns minutos.                                                                                    |
| 400                      | BKS000012            | Bad Request | Invalid integer value for page or size query string parameters. | Valor inválido para parâmetros de página ou tamanho de página. |
| 404                      | BKS000013            | Not Found | Requester profile not found         |               Carteira não encontrada                                                                 |
| 400                      | BKS000052            | Bad Request        | Invalid account status.                                                                            | Status da conta inválido.                                                                                 |

---

# Webhooks de boletos

URL: /documentation/boletos/webhooks/boleto

:::danger Atenção!
Os webhooks da QI Tech não devem ser mapeadas de forma restrita. 
Campos adicionais podem ser incluídos aos payloads dos webhooks retornados em nossas APIs.
:::

:::info Reenvio de Webhooks
Você pode consultar e reenviar webhooks seguindo as instruções detalhadas na documentação: [Reenvio de Webhooks](/documentation/notificacoes/reenvio_de_notificacoes).
:::

## Introdução

Ao longo do ciclo de vida dos boletos, dentro do nosso sistema, serão enviados webhooks com os seguintes status do boleto (`bank_slip_status`):

| Enumerador                    | Tradução                       | Descrição                                                       |
|-------------------------------|--------------------------------|------------------------------------------------------------------------------------------------|
|  registered                   | registrado                     | Boleto registrado e disponível para pagamento |
|  rejected                     | rejeitado                      | Solicitação de emissão de boleto rejeitada por erros de validação                               |
|  payment_notice               | aviso de pagamento             | Aviso de pagamento do boleto (boleto pago mas pagamento ainda não liquidado)                    |
|  notary_office_payment_notice | aviso de pagamento em cartório | Aviso de pagamento em cartório do boleto (boleto pago mas pagamento ainda não liquidado)                    |
|  paid                         | pago                           | Boleto pago e liquidado financeiramente                         |
|  written_off                  | baixado                        | Boleto baixado (não pode mais ser pago) e sem liquidação financeira                              |
|  payment_blocked              | bloqueado para pagamento       | Bloqueado para pagamento devido a fluxo de protesto                    |

E os webhooks são enviados sempre que são confirmadas ocorrências dos seguintes tipos (`occurrence_type`):

| Enumerador                    | Tradução                       | Descrição                                                                    |
|-------------------------------|--------------------------------|------------------------------------------------------------------------------|
|  registration                 | registro                       | Registro do boleto                                                           |
|  rebate                       | abatimento                     | Abatimento de parte do valor base do título                                  |
|  cancel_rebate                | cancelamento de abatimento     | Cancelamento de abatimento existente                                         |
|  extension                    | extensão                       | Extensão da data de expiração do título                                      |
|  write_off                    | baixa                          | Baixa do boleto                                                              |
|  protest_write_off            | baixa por protesto             | Baixa do boleto por protesto em cartório                                     |
|  payment_write_off            | baixa por pagamento            | Baixa do boleto por pagamento                                                |
|  discount                     | desconto                       | Alteração dos descontos                                                      |
|  fine                         | multa                          | Alteração da multa                                                           |
|  interest                     | juros                          | Alterações dos juros                                                         |
|  protest_request              | pedido de protesto             | Pedido de protesto em cartório                                               |
|  bankruptcy_protest_request   | pedido de protesto falimentar  | Pedido de protesto falimentar em cartório                                    |
|  notary_office_entry          | entrada em cartório            | Ocorrência de entrada do título em cartório                                  |
|  protest_cancel_request       | desistência de pedido de protesto | Desistência do pedido de protesto corrente                                |
|  protest_remove_request       | sustação de protesto           | Sustação do protesto do título                                               |
|  notary_office_exit           | saída do cartório              | Ocorrência de saída do título do cartório                                    |
|  payment_notice               | aviso de pagamento             | Aviso de pagamento do boleto (boleto pago mas pagamento ainda não liquidado) |
|  notary_office_payment_notice | aviso de pagamento em cartório | Aviso de pagamento em cartório do boleto (boleto pago mas pagamento ainda não liquidado)  |
|  payment                      | pagamento                      | Notificação de que o boleto foi pago e baixado                               |

:::info Informação
O timeout para resposta de nosso webhooks é de 10 segundos.
:::

## Exemplos
----

### Registro

Webhook Body: ocorrência aceita

```json
{
	"webhook_type": "baas.bank_slip.occurrence",
	"webhook_datetime": "2024-08-13T21:35:55.679Z",
	"data": {
		"bank_slip_key": "11b13b2c-4204-41b3-8596-2ee7ecbde38c",
		"bank_slip_status": "registered",
		"occurrence_key": "9077cc0b-5bbd-4432-888e-6bf6384c250a",
		"occurrence_type": "registration",
		"occurrence_status": "confirmed"
	}
}
```

Webhook Body: ocorrência rejeitada

```json
{
	"webhook_type": "baas.bank_slip.occurrence",
	"webhook_datetime": "2024-08-13T21:35:55.679Z",
	"data": {
		"bank_slip_key": "ae783ed7-b892-4e48-8480-b045e3b492f5",
		"bank_slip_status": "rejected",
		"occurrence_key": "db04719d-4370-4f3f-82b7-d72d3db2f39e",
		"occurrence_type": "registration",
		"occurrence_status": "rejected"
	}
}
```

### Abatimento/cancelamento de abatimento

Webhook Body: abatimento

```json
{
	"webhook_type": "baas.bank_slip.occurrence",
	"webhook_datetime": "2024-08-13T21:35:55.679Z",
	"data": {
		"bank_slip_key": "11b13b2c-4204-41b3-8596-2ee7ecbde38c",
		"bank_slip_status": "registered",
		"occurrence_key": "db04719d-4370-4f3f-82b7-d72d3db2f39e",
		"occurrence_type": "rebate",
		"occurrence_status": "confirmed"
	}
}
```

Webhook Body: cancelamento de abatimento

```json
{
	"webhook_type": "baas.bank_slip.occurrence",
	"webhook_datetime": "2024-08-13T21:35:55.679Z",
	"data": {
		"bank_slip_key": "11b13b2c-4204-41b3-8596-2ee7ecbde38c",
		"bank_slip_status": "registered",
		"occurrence_key": "db04719d-4370-4f3f-82b7-d72d3db2f39e",
		"occurrence_type": "cancel_rebate",
		"occurrence_status": "confirmed"
	}
}
```

### Prorrogação

Webhook Body

```json
{
	"webhook_type": "baas.bank_slip.occurrence",
	"webhook_datetime": "2024-08-13T21:35:55.679Z",
	"data": {
		"bank_slip_key": "11b13b2c-4204-41b3-8596-2ee7ecbde38c",
		"bank_slip_status": "registered",
		"occurrence_key": "db04719d-4370-4f3f-82b7-d72d3db2f39e",
		"occurrence_type": "extension",
		"occurrence_status": "confirmed"
	}
}
```

### Desconto

Webhook Body

```json
{
	"webhook_type": "baas.bank_slip.occurrence",
	"webhook_datetime": "2024-08-13T21:35:55.679Z",
	"data": {
		"bank_slip_key": "a8df1c2e-77ff-49ea-9e7a-8fd536a6e357",
		"bank_slip_status": "registered",
		"occurrence_key": "db04719d-4370-4f3f-82b7-d72d3db2f39e",
		"occurrence_type": "discount",
		"occurrence_status": "confirmed"
	}
}
```

### Juros

Webhook Body

```json
{
	"webhook_type": "baas.bank_slip.occurrence",
	"webhook_datetime": "2024-08-13T21:35:55.679Z",
	"data": {
		"bank_slip_key": "69f3f345-07c5-4c80-a8dd-51054afdad01",
		"bank_slip_status": "registered",
		"occurrence_key": "8550e47a-7554-455c-bdd8-cf0c048a277c",
		"occurrence_type": "interest",
		"occurrence_status": "confirmed"
	}
}
```

### Multa

Webhook Body

```json
{
	"webhook_type": "baas.bank_slip.occurrence",
	"webhook_datetime": "2024-08-13T21:35:55.679Z",
	"data": {
		"bank_slip_key": "97e6edab-b793-4eb6-a1a7-0a27e1d5c73e",
		"bank_slip_status": "registered",
		"occurrence_key": "47b06bdb-c006-47a7-81f2-7aac7fff823b",
		"occurrence_type": "fine",
		"occurrence_status": "confirmed"
	}
}
```

### Baixa

O campo `occurrence_reason` é opcional e enviado quando o banco informa o motivo da baixa. Ele contém o código e o nome do motivo fornecidos pela instituição financeira.

Webhook Body: sem motivo

```json
{
	"webhook_type": "baas.bank_slip.occurrence",
	"webhook_datetime": "2024-08-13T21:35:55.679Z",
	"data": {
		"bank_slip_key": "45c21054-57fd-4d28-8d5a-0cdc5cb29670",
		"bank_slip_status": "written_off",
		"occurrence_key": "0b92bd47-fae5-46c0-8c40-e5aebc9ecd28",
		"occurrence_type": "write_off",
		"occurrence_status": "confirmed"
	}
}
```

Webhook Body: com motivo

```json
{
	"webhook_type": "baas.bank_slip.occurrence",
	"webhook_datetime": "2026-05-04T21:12:07.877Z",
	"data": {
		"bank_slip_key": "25add0b0-cb2d-4be4-8f22-4305a4dd9793",
		"bank_slip_status": "written_off",
		"occurrence_key": "ca71f446-be05-47cc-b470-234e4806344c",
		"occurrence_type": "write_off",
		"occurrence_status": "confirmed",
		"occurrence_reason": {
			"bank_reason_code": "16",
			"bank_reason_name": "Título Baixado pelo Banco por decurso de Prazo"
		}
	}
}
```

### Baixa por protesto

Webhook Body

```json
{
	"webhook_type": "baas.bank_slip.occurrence",
	"webhook_datetime": "2024-10-25T18:05:01.395Z",
	"data": {
		"bank_slip_key": "7182639f-dea5-46c6-99c6-af0d94d772cb",
		"bank_slip_status": "written_off",
		"occurrence_key": "93380917-beee-4f3e-af01-6c24e140d53d",
		"occurrence_type": "protest_write_off",
		"occurrence_status": "confirmed"
	}
}
```

### Baixa por pagamento

Webhook Body

```json
{
	"webhook_type": "baas.bank_slip.occurrence",
	"webhook_datetime": "2024-10-18T18:02:15.152Z",
	"data": {
		"bank_slip_key": "40d6a1bc-cfed-4444-a901-e02ecc169ce5",
		"bank_slip_status": "written_off",
		"occurrence_key": "78221daa-945f-485b-b39c-97ef0e251afe",
		"occurrence_type": "payment_write_off",
		"occurrence_status": "confirmed"
	}
}
```

### Pedido de protesto

Webhook Body

```json
{
	"webhook_type": "baas.bank_slip.occurrence",
	"webhook_datetime": "2024-10-16T20:54:13.013Z",
	"data": {
		"bank_slip_key": "f03c5fec-b31c-402a-b832-80da8a493653",
		"bank_slip_status": "payment_blocked",
		"occurrence_key": "304958f6-cdf2-4fb1-b8f3-5482030bf0eb",
		"occurrence_type": "protest_request",
		"occurrence_status": "confirmed"
	}
}
```

### Pedido de protesto falimentar

Webhook Body

```json
{
	"webhook_type": "baas.bank_slip.occurrence",
	"webhook_datetime": "2024-10-16T20:54:13.013Z",
	"data": {
		"bank_slip_key": "21aeefb4-4fa1-4e32-b2bb-32a7486128f0",
		"bank_slip_status": "payment_blocked",
		"occurrence_key": "11a7e9e8-4667-471b-bc3f-2f65f77e22e9",
		"occurrence_type": "bankruptcy_protest_request",
		"occurrence_status": "confirmed"
	}
}
```

### Entrada em cartório

Webhook Body

```json
{
	"webhook_type": "baas.bank_slip.occurrence",
	"webhook_datetime": "2024-10-17T18:00:48.341Z",
	"data": {
		"bank_slip_key": "5bc4c1d4-d51b-4b0b-b308-81850d04e523",
		"bank_slip_status": "payment_blocked",
		"occurrence_key": "159e6e3f-fce5-4362-829e-1595fc14d66c",
		"occurrence_type": "notary_office_entry",
		"occurrence_status": "confirmed"
	}
}
```

### Cancelamento de protesto

Webhook Body

```json
{
	"webhook_type": "baas.bank_slip.occurrence",
	"webhook_datetime": "2024-10-23T18:00:52.374Z",
	"data": {
		"bank_slip_key": "96d2a896-f2da-484c-8d40-20fabbde15ee",
		"bank_slip_status": "registered",
		"occurrence_key": "2505fedf-0061-478b-b45e-8420b755ebbb",
		"occurrence_type": "protest_cancel_request",
		"occurrence_status": "confirmed"
	}
}
```

### Sustação de protesto

Webhook Body

```json
{
	"webhook_type": "baas.bank_slip.occurrence",
	"webhook_datetime": "2024-10-30T18:01:00.452Z",
	"data": {
		"bank_slip_key": "878d462e-be4e-40bd-b797-b831fef87f48",
		"bank_slip_status": "written_off",
		"occurrence_key": "cb08785d-0a4d-41f4-a64c-bafe730b175b",
		"occurrence_type": "protest_remove_request",
		"occurrence_status": "confirmed"
	}
}
```

### Saída do cartório

Webhook Body

```json
{
	"webhook_type": "baas.bank_slip.occurrence",
	"webhook_datetime": "2024-11-01T18:01:01.949Z",
	"data": {
		"bank_slip_key": "79d07a3d-3953-4195-a2e2-bbbf10635f27",
		"bank_slip_status": "registered",
		"occurrence_key": "c703b04c-7334-40fe-bf8d-b43bd991dbab",
		"occurrence_type": "notary_office_exit",
		"occurrence_status": "confirmed"
	}
}
```

### Aviso de pagamento

Primeiro webhook: boleto foi pago, mas ainda não foi liquidado

Webhook Body

```json
{
	"webhook_type": "baas.bank_slip.payment_notice",
	"webhook_datetime": "2024-08-13T21:35:55.679Z",
	"data": {
		"bank_slip_key": "db04719d-4370-4f3f-82b7-d72d3db2f39e",
		"bank_slip_status": "payment_notice",
		"occurrence_key": "d0341ad7-aa87-4dad-929b-38c8c9218f23",
		"occurrence_type": "payment_notice",
		"occurrence_status": "confirmed"
	}
}
```

### Aviso de pagamento em cartório

Primeiro webhook: boleto foi pago em cartório, mas ainda não foi liquidado

Webhook Body

```json
{
	"webhook_type": "baas.bank_slip.notary_office_payment_notice",
	"webhook_datetime": "2024-10-16T18:00:43.621Z",
	"data": {
		"bank_slip_key": "05f2b81b-b241-4e72-9b2c-7312257a0284",
		"bank_slip_status": "notary_office_payment_notice",
		"occurrence_key": "3ecab7b1-c991-4d91-8d71-08a34eec1d7d",
		"occurrence_type": "notary_office_payment_notice",
		"occurrence_status": "confirmed"
	}
}
```

### Pagamento

Webhook Body

```json
{
	"webhook_type": "baas.bank_slip.payment",
	"webhook_datetime": "2024-08-13T21:35:55.679Z",
	"data": {
		"bank_slip_key": "db04719d-4370-4f3f-82b7-d72d3db2f39e",
		"bank_slip_status": "paid",
		"occurrence_key": "db04719d-4370-4f3f-82b7-d72d3db2f39e",
		"occurrence_type": "payment",
		"occurrence_status": "confirmed",
		"paid_amount": 850.0,
		"paid_rebate_amount": 200.0,
		"paid_discount_amount": 0.0,
		"paid_fine_amount": 0.0,
		"paid_interest_amount": 50.0,
		"payment_method": "account_debit",
		"payment_origin": "qr_code",
		"payment_credit_date": "2024-07-02",
		"payment_bank": {
			"code": "341",
			"ispb": 60701190,
			"name": "ITAU UNIBANCO S.A."
		},
		"payment_branch": "0216"
	}
}
```

:::info Informação
Os campos `payment_bank` e `payment_branch` indicam o banco e a agência em que o boleto foi pago. Eles só são preenchidos quando essa informação é recebida na liquidação do pagamento; caso o banco pagador não seja identificado, `payment_bank` será retornado como `null`.
:::

### Enumeradores payment_origin

| Enumerador         | Descrição                               |
|--------------------|-----------------------------------------|
| cash       | Espécie                  |
| account_debit             | Débito em conta                |
| credit_card      | Cartão de crédito |
| check          | Cheque                  |

### Enumeradores payment_origin

| Enumerador           | Descrição                                |
|----------------------|------------------------------------------|
| phisical_cashier     | Agências - Postos tradicionais           |
| taa                  | Terminal de Auto-atendimento             |
| internet             | Internet (home/office bank)              |
| corban               | Correspondente bancário                  |
| call_center          | Central de atendimento (call center)     |
| eletronic_file       | Arquivo eletrônico                       |
| dda                  | DDA                                       |
| digital_correspondent| Correspondente Digital                   |
| qr_code              | Pagamento via Pix QR Code                |

---

# Webhooks de carteiras de boletos

URL: /documentation/boletos/webhooks/carteira

:::danger Atenção!
Os webhooks da QI Tech não devem ser mapeadas de forma restrita. 
Campos adicionais podem ser incluídos aos payloads dos webhooks retornados em nossas APIs.
:::

:::info Reenvio de Webhooks
Você pode consultar e reenviar webhooks seguindo as instruções detalhadas na documentação: [Reenvio de Webhooks](/documentation/notificacoes/reenvio_de_notificacoes).
:::

## Introdução

Após a criação de uma carteira (`requester_profile`) dentro do nosso sistema, serão enviados webhooks com os seguintes status:

| Enumerador                    | Tradução               | Descrição                                                  |
|-------------------------------|------------------------|------------------------------------------------------------|
|  opened                       | aberto                 | Carteira de boletos aberta e pronta para registrar boletos |

:::info Informação
O timeout para resposta de nosso webhooks é de 10 segundos.
:::

## Exemplos
----

### Confirmação de abertura

Webhook Body

```json
{
	"webhook_type": "baas.bank_slip.requester_profile",
	"webhook_datetime": "2024-08-13T21:35:55.679Z",
	"data": {
		"requester_profile_key": "fd86d9b1-2a5e-4e03-9a59-a043c7632c97",
		"request_control_key": "0868a24b-4a69-4138-ac4d-ecaeddf0005f",
		"requester_profile_code": "329-04-2338-2625918",
		"requester_profile_status": "opened"
	}
}
```

---

# Webhooks de liquidação

URL: /documentation/boletos/webhooks/liquidacao

:::danger Atenção!
Os webhooks da QI Tech não devem ser mapeadas de forma restrita. 
Campos adicionais podem ser incluídos aos payloads dos webhooks retornados em nossas APIs.
:::

:::info Reenvio de Webhooks
Você pode consultar e reenviar webhooks seguindo as instruções detalhadas na documentação: [Reenvio de Webhooks](/documentation/notificacoes/reenvio_de_notificacoes).
:::

## Introdução

Em nosso sistema, os grupos de liquidação são uma forma de conciliar as transações com os boletos liquidados. Esse processo (liquidação) descreve a transferência do valor de um boleto pago para a conta que deve receber esse pagamento. Resumidamente, sempre que a QI recebe a informação de que um boleto foi pago por outro banco ou, no caso de boletos protestados, pelo cartório, é criada uma liquidação para esse boleto específico. Posteriormente, são criados os **grupos de liquidação**, que representam lotes de liquidações agrupadas por tipo.

Em um momento posterior, é realizada a transação de pagamento desse grupo de liquidação para a conta do cliente. A **transaction_key** dessa transação é então salva para fins de conciliação, dessa foma você pode ver todos os boletos que foram liquidados em uma determinada transação. Por exemplo, se você tiver cinco boletos de R$ 5,00 cada, sendo que um foi pago via cartório, um foi pago via QR Code PIX e os outros três foram pagos utilizando a linha digitável ou código de barras por outro banco, serão criadas cinco liquidações referentes a esses boletos. Em seguida, essas liquidações serão agrupadas em três grupos de liquidação: um de R$ 15,00 com os três boletos pagos utilizando a linha digitável ou código de barras, para os quais será realizada uma única transação, outro de R$ 5,00 para o boleto pago via QR Code PIX e o último também de R$ 5,00 com o boleto pago via cartório.

:::info Informação
O timeout para resposta de nosso webhooks é de 10 segundos.
:::

## Exemplos
----

### Grupo de liquidação

Webhook Body

```json
{
    "webhook_type": "baas.bank_slip.bank_slip_settlement_group",
    "webhook_datetime": "2024-08-13T21:35:55.679Z",
    "data": {
        "bank_slip_settlement_group_key": "87e6687b-d02b-45dc-b5b8-b51e16ec0a03",
        "amount": 1,
        "bank_slip_settlement_group_type": "siloc",
        "bank_slip_settlement_group_status": "settled",
        "transaction_key": "fc60a57e-c6ac-4e39-a3cf-2dc3c491dac6"
    }
}
```

### Enumeradores bank_slip_settlement_group_type

| Enumerador                   | Descrição                                                                    |
|------------------------------|------------------------------------------------------------------------------|
| siloc                        | para pagamento de títulos (valor do título menor que R$ 250.000)                          |
| qr_code                      | para pagamento de títulos realizados via QR Code |
| str                          | para pagamento de títulos VR (valor do título maior que R$ 250.000) |
| notary_office                | para pagamento de títulos realizados via cartório             |

### Enumeradores bank_slip_settlement_group_status

| Enumerador                   | Descrição                                                                    |
|------------------------------|------------------------------------------------------------------------------|
| pending                      | grupo de liquidação criado mas a transação não foi realizada  |
| settled                      | grupo de liquidação criado e transação realizada |

---

# Webhooks de arquivos retorno

URL: /documentation/boletos/webhooks/retorno

Os arquivos retorno servem para conciliação. Nele, cada linha de Registro de Transação (Tipo 1) diz respeito a uma instrução (seja de emissão, prorrogação, abatimento etc.) que foi confirmada ou rejeitada pela CIP/Nuclea no dia anterior.

:::danger Atenção!
Os webhooks da QI Tech não devem ser mapeadas de forma restrita. 
Campos adicionais podem ser incluídos aos payloads dos webhooks retornados em nossas APIs.
:::

:::info Reenvio de Webhooks
Você pode consultar e reenviar webhooks seguindo as instruções detalhadas na documentação: [Reenvio de Webhooks](/documentation/notificacoes/reenvio_de_notificacoes).
:::

:::info Informação
O timeout para resposta de nosso webhooks é de 10 segundos.
:::

## Exemplos
----

### Arquivo retorno

Webhook Body

```json
{
    "webhook_type": "baas.bank_slip.discharge_file",
    "webhook_datetime": "2024-08-13T21:35:55.679Z",
    "data": {
        "discharge_file_key": "f1a8fe59-29cd-49e5-8d18-55194869b45c",
        "reference_date": "2024-10-15",
        "requester_profile_key": "fc60a57e-c6ac-4e39-a3cf-2dc3c491dac6",
        "discharge_file_url": "https://storage.googleapis.com/local-bank-slip-api/2024/61a746ca-05bf-429d-99c3-3fba0f9fbea7/329-20-7336-3073959/discharge/CB15102401.RET",
        "cnab_bank": "qi_scd",
        "cnab_layout": "400",
    }
}
```

:::info Bancos Suportados
Atualmente, o webhook de arquivo retorno suporta os seguintes bancos:
- Bradesco (bradesco)
- Itaú (itau)
- QI SCD (qi_scd)
- Santander (santander)
:::

:::info Layouts Suportados
Atualmente, o webhook de arquivo retorno suporta os seguintes layouts CNAB:
- CNAB 400 (400)
:::

---

# Requisição de Autorização (Opcional)

URL: /documentation/cards/autorizacao/

---

Uma vez que o programa está configurado, o portador do cartão foi adicionado e tem um cartão ativo, este cartão pode ser usado para fazer compras em vários pontos de venda ao redor do mundo. Sempre que uma transação for iniciada em algum ponto de captura, uma `Authorization` será criada para autorizar este movimento. Será feita uma Requisição de Autorização `Authorization Request` ao sistema do cliente para que este decida pela aprovação ou não desta autorização com base nas informações contidas neste pedido.

A entidade `Authorization` contém a situação atual dos valores autorizados e capturados e pode assumir os seguintes valores de estado:

| Estado | Descrição |
|---|---|
| pending | Requisição de autorização foi aprovada e nenhum evento de captura ou cancelamento foi processado |
| unauthorized | Requisição de autorização não foi aprovada |
| completed | Pelo menos um valor capturado com sucesso para a autorização em questão (seja um valor igual, a menor ou a maior que o valor total aprovado nas requisições de autorização) |
| reversed | Autorização foi estornada por completo ou expirou sem captura |

Detalhamento dos campos de uma Autorização pode ser encontrado em [Buscar Autorização](/documentation/cards/search/buscar_autorizacao/)

A Requisição de Autorização `Authorization Request` quando enviada para o cliente conterá os [Cabeçalhos de Autenticação](/documentation/primeiros_passos/teste_de_autenticacao/webhook_v2/index.html) e possuirá a seguinte composição:

### Requisição de Autorização

ENDPOINT (client_url)/authorization_request
METODO POST

Request Body

```json
{
	"authorization_key": "c91ce179-517c-48f9-9c28-18368457b67f",
	"authorization_request_key": "cccbd9e9-863f-44b5-aa05-f6afa555bb74",
	"card": {
		"card_key": "05fd3654-1f5d-479d-ade5-64239fdf214d",
		"account_key": "595e08f0-da4e-40f7-8db4-f9a25c829818",
		"type": "virtual",
		"card_name": "ecommerce sample",
		"printed_name": "Aurora Catarina",
		"status": "active",
		"brand": "visa",
		"bin": "123456",
		"last_four_digits": "5695"
	},
	"terminal_id": "123456",
	"terminal_country_code": "BRA",
	"terminal_type": "2",
	"terminal_pin_entry_capability": true,
	"terminal_magnetic_stripe_capability": true,
	"terminal_contactless_capability": false,
	"terminal_chip_capability": true,
	"merchant_acquirer_code": "250",
	"merchant_code": "123456",
	"merchant_name": "VASP LINHAS AEREAS",
	"merchant_street": "RUA CMDTE X, 127",
	"merchant_city": "SAO PAULO, SP",
	"merchant_region": "BRA",
	"merchant_postal_code": "04570-140",
	"merchant_mcc": "3036",
	"authorization_code": "473890",
	"nsu": "123456",
    "acquirer_reference_number": "12312423",
	"merchant_currency_code": "BRL",
	"merchant_amount": 10.59,
	"billing_currency_code": "BRL",
	"billing_amount": 10.59,
	"processing_datetime": "2023-01-10T13:45:52.000Z",
	"number_of_installments": 1,
	"authorization_type": "authorization",
	"pan_entry_mode": "chip",
	"pin_sent": true,
	"autorization": {Objeto Autorização}
}
```

#### Authorization Request

| Campo | Tipo | Descrição |
|---|---| ---|
| `authorization_request_key` | string  | Identificador único da Requisição de Autorização |
| `authorization_key` | string  | Identificador único da entidade Autorização relacionada com esta requisição |
| `card` | object |**[Objeto Card](#objeto-card)**  |
| `terminal_id` | string | O identificador do terminal enviado pela adquirente na mensageria de autenticação |
| `terminal_country_code` | string | O código do país do terminal, enviado na mensagem de autorização conforme ISO 3166-1 alpha-3 |
| `terminal_type` | string | O tipo de terminal conforme recebido na mensageria de autorização |
| `terminal_pin_entry_capability` | boolean | Existe a possibilidade de inserir a senha do cartão no terminal? |
| `terminal_magnetic_stripe_capability` | boolean | O terminal é capaz de ler tarja magnética? |
| `terminal_contactless_capability` | boolean | O terminal é capaz de iniciar transações contactless? |
| `terminal_chip_capability` | boolean | O terminal é capaz de iniciar transações utilizando o chip EMV? |
| `merchant_acquirer_code` | string | O identificador da adquirente conforme mensageria de autorização |
| `merchant_code` | string | O identificador do lojista na adquirente conforme mensageria de autorização |
| `merchant_name` | string | O nome do lojista de acordo com a mensageria de autorização |
| `merchant_street` | string | A rua do endereço do lojista |
| `merchant_city` | string | A cidade do endereço do lojista |
| `merchant_region` | string | A região do endereço do lojista |
| `merchant_postal_code` | string | O código postal (CEP) do endereço do lojista  |
| `merchant_mcc` | string | Merchant Category Code - identificação do tipo de estabelecimento - [Lista Atualizada pode ser encontrada aqui](https://usa.visa.com/content/dam/VCOM/download/merchants/visa-merchant-data-standards-manual.pdf) |
| `authorization_code` | string | Código de Autorização de 6 dígitos |
| `nsu` | string | Número sequencial único que define uma autorização |
| `acquirer_reference_number` | string | Identificador único da autorização na adquirente |
| `merchant_currency_code` | string | A moeda utilizada na transação - ISO 4217-alpha |
| `merchant_amount` | decimal | Valor da transação na moeda em que a transação foi realizada |
| `billing_currency_code` | string | A moeda de cobrança do portador do cartão - ISO 4217-alpha |
| `billing_amount` | decimal | Valor da transação na moeda de cobrança do portador do cartão |
| `processing_datetime` | timestamp utc | Horário em que a requisição de autorização foi processada |
| `number_of_installments` | int | Número de parcelas sendo autorizadas nesta requisição |
| `authorization_request_type` | enum | Enumerador de **[Tipos de Requisição de Autorização](#tipos-de-autorizacao)** |
| `pan_entry_mode` | enum | **[Modos de entrada do PAN](#modos-de-entrada-do-pan)** - Chip, Digitada, Tarja, Fallback, Contactless |
| `pin_sent` | boolean | Foi inserida uma senha no terminal? |
| `authorization` | object | Objeto Autorização detalhado em [GET Autorização](/documentation/cards/search/buscar_autorizacao/), presente apenas quando o tipo de autorização for incremental. |

#### Objeto Card

| Campo | Tipo | Descrição |
|---| ---| ---|
| `card_key` | string | Chave de identificação do cartão|
| `account_key` | string | Identificador da conta do titular |
| `type` | string | Tipo de cartão |
| `card_name` | string | Identificador alphanumérico do cartão|
| `printed_name` | string | Nome impresso no cartão |
| `status` | string | Status atual do cartão |
| `brand` | string | Bandeira do cartão |
| `bin` | string | BIN do cartão |
| `last_four_digits` | string | Últimos 4 dígitos do cartão |

#### Tipos de Requisição de Autorização

| Enumerador  | Descrição |
|---|---|
| **authorization** | Requisição de autorização comum |
| **incremental_authorization** | Requisição de autorização incremental para uma Autorização preexistente |
| **partial_reversal_authorization** | Autorização para realizar o estorno parcial de uma transação prévia, aparece apenas em eventos, não é autorizada explicitamente pelo cliente |
| **reversal_authorization** | Autorização para realizar o estorno de uma transação prévia, aparece apenas em eventos, não é autorizada explicitamente pelo cliente |

#### Modos de Entrada do PAN

Enumerador | ISO 8583 | Descrição
---------- | -------- | -----------
unknown | 00 | PAN entry mode desconhecido.
typed | 01 | PAN inserido manualmente (digitado).
bar_code | 03 | PAN inserido por meio de leitora de código de barras
ocr | 04 | PAN inserido por meio de OCR (Optical Character Recognition)
chip | 05 | PAN inserido por cartão com circuito integrado (Chip)
track_1 | 06 | PAN inserido pela Track 1 do cartão de tarja
contactless | 07 | PAN inserido por meio de Contactless EMV
fallback_typed | 79 | Foi tentado utilizar o leitor de cartão ou de tarja do dispositivo e o cartão mas não foi possível processar a transação com aquela informação (Possivelmente um problema no dispositivo ou no cartão), foi então digitada o PAN. Em alguns casos a adquirente não está homologada para utilizar o CHIP ou a tarja e envia este código.
fallback_magnetic_stripe | 80 | Foi tentado utilizar o leitor de cartão do dispositivo e o cartão mas não foi possível processar a transação com aquela informação (Possivelmente um problema no dispositivo ou no cartão), foi então utilizada a tarja magnética do cartão.
ecommerce | 81 | Transação de e-commerce / não presencial
magnetic_stripe | 90 | Transação de tarja (Cartão não possui chip ou dispositivo não possui leitor/não foi homologado)

### Resposta de aprovação ou negação de uma requisição de autorização

A resposta à Rquisição de Autorização deverá ser sempre com HTTP Status 201 e o parecer deve ser informado no campo *approve*. Caso o parecer seja negativo, um enumerador de razão de negação deverá ser escolhido e é possível enviar uma descrição em texto para detalhar essa negação.

ENDPOINT (client_url)/authorization_request
MÉTODO POST
HTTP STATUS 201

Response Body

```json
	"authorization_request_response": "unauthorized",
	"denial_reason": "fraud_suspicion",
    "denial_reason_details": "Customer tried to perform a transaction 10 times the average transactions"
```

 
#### Detalhe

| Campo | Tipo | Descrição |
|---|---| ---|
| `authorization_request_response` *(required)* | enumerator  | `authorized` caso a autorização seja aprovada ou `unauthorized` caso a autorização seja negada |
| `denial_reason` | enum  | **[Enumerador Razão de Negação](#enumerador-razao-de-negacao)** |
| `denial_reason_details` | string  |  Deny reason details | |

#### Enumerador Razão de Negação
| Enumerador  | Descrição |
|-----------------------|---------------------------------------------------------------------------|
| **fraud_suspicion** | Movimentação com comportamento suspeito |
| **blocked_customer** | Portador com restrições |

#### Resposta negativa

Qualquer HTTP status que não seja 2XX será interpretado como incapacidade do cliente de processar a autorização. Será então aplicada a regra de decisão configurada no programa do cliente para os casos de indisponibilidade.

Importante: Autorizações que sejam negadas pelos critérios básicos de validação de cartões serão respondidas automaticamente pela QI sem o envio de uma requisição de autorização. O cliente receberá apenas um webhook de autorização negada.

## Autorização Incremental

Uma `Authorization` poderá receber mais de uma `Authorization Request`, situação que chamamos de autorização incremental. Cada `Authorization Request` pode ou não ser autorizado e a entidade `Authorization` irá sempre representar o resultado do que for capturado com sucesso dentre as N autorizações.

Uma autorização incremental poderá ser identificada pelo campo `authorization_type` com valor *incremental_authorization*. Sempre que a requisição for deste tipo, o objeto `Authorization` relacionado será enviado junto ao payload da `Authorization Request`.

---

# Simulação de autorização

URL: /documentation/cards/autorizacao/simular_autorizacao

### Request

ENDPOINT /mock/card/authorization
MÉTODO POST

Request Body

```json
{
  "card_key": "ff3c4484-7a52-457e-b989-d9dcb87dfcd6",
  "merchant_name": "Supermarket XYZ",
  "merchant_city": "São Paulo",
  "merchant_region": "BR",
  "merchant_postal_code": "01001000",
  "merchant_mcc": "5411",
  "amount": 150.75,
  "authorization_type": "purchase"
}
```

### Response

```json
{
  "is_approved": true,
  "response_code": "00",
  "limit_amount": null
}
```

### Objeto Request Body

Nessa tabela, está disponível o descritivo de todas as variáveis utilizadas pelas requisições acima detalhadas.

| Campo                 | Tipo   | Descrição                                          | Máx. Caract. | Exemplo              |
|-----------------------|--------|----------------------------------------------------|--------------|----------------------|
| **card_key**          | string | Chave única do cartão (obrigatório)                | 36           | "ff3c4484-7a52-457e-b989-d9dcb87dfcd6"    |
| **authorization_type**| string | Tipo de autorização (obrigatório)                  | **[Enumeradores](#authorization-type-enumeradores)** |
| **merchant_name**     | string | Nome do estabelecimento                            | 40           | "Supermarket XYZ"    |
| **merchant_city**     | string | Cidade do estabelecimento                          | 40           | "São Paulo"          |
| **merchant_region**   | string | País do estabelecimento                            | 2            | "BR"                 |
| **merchant_postal_code** | string | Código postal do estabelecimento                | 8            | "01001000"           |
| **merchant_mcc**      | string | Código da categoria do estabelecimento (MCC)       | **[Enumeradores](#merchant-mcc-enumeradores)** |
| **amount**            | number | Valor da transação                                 | -            | 150.75               |

### Enumeradores merchant_mcc

| Enumerador | Descrição                                  |
|------------|--------------------------------------------|
| 5812       | Eating Places, Restaurants                 |
| 5499       | Miscellaneous Food Stores                  |
| 5814       | Fast Food Restaurants                      |
| 5411       | Grocery Stores, Supermarkets               |
| 4121       | Taxicabs and Limousines                    |
| 4111       | Local and Suburban Transit                 |
| 4215       | Courier Services, Air or Ground            |
| 5912       | Drug Stores and Pharmacies                 |
| 5815       | Digital Goods: Applications (Excludes Games)|
| 8999       | Professional Services (Not Elsewhere Classified)|
| 5462       | Bakeries                                   |
| 5541       | Service Stations (with or without Ancillary Services)|
| 7523       | Parking Lots, Parking Meters and Garages   |
| 5300       | Wholesale Clubs                            |
| 4899       | Cable, Satellite and Other Pay Television and Radio Services|
| 5311       | Department Stores                          |
| 5813       | Bars, Cocktail Lounges, Discotheques, Nightclubs and Taverns (Drinking Places)|
| 7372       | Computer Programming, Data Processing and Integrated Systems Design Services|
| 5099       | Durable Goods (Not Elsewhere Classified)   |
| 5943       | Stationery Stores, Office and School Supply Stores|
| 7299       | Miscellaneous Personal Services (Not Elsewhere Classified)|
| 5199       | Nondurable Goods (Not Elsewhere Classified)|
| 7230       | Beauty and Barber Shops                    |
| 5999       | Miscellaneous and Specialty Retail Stores  |
| 5651       | Family Clothing Stores                     |

### Enumeradores authorization_type

| Enumerador  | Descrição                  |
|-------------|----------------------------|
| purchase    | Purchase                   |
| reversal    | Reversal                   |
| withdrawal  | Withdrawal                 |

---

# Gerar cartão físico

URL: /documentation/cards/create/gerar_cartao_fisico

## Request

ENDPOINT /prepaid/card
MÉTODO POST

Request Body

```json
{
    "account_key": "5294ed8d-08fc-4397-b15f-6d9aa07b0041",
    "program_key": "7d405c31-ec9a-46c1-8ac8-54bab209bf41",
    "type": "plastic",
    "card_name": "ecommerce",
    "printed_name": "Aurora Catarina",
    "contactless_enabled": true,    
    "delivery_address": {
        "address": "Rua Cel. Domingos Diniz",
        "number": 124,
        "neighborhood": "Centro",
        "zip_code": "35797000",
        "city": "Presidente Juscelino",
        "state": "MG",
        "complement": "Quadra 08 Lote 259",
        "reference": "Supermercado Presidente",
        "address_type": "residential"
    }
}
```

:::info
O endereço utilizado para o envio do cartão físico, será o mesmo informado na abertura da conta de pagamento na QI Tec. 
:::

  ### Body params

| Campo                   | Tipo    | Descrição                                                                                      | Caracteres                                  |
|-------------------------|---------|------------------------------------------------------------------------------------------------|---------------------------------------------|
| `account_key` *         | string  | Chave de identificação da conta de pagamento na QI Tech.                                       | uuid                                        |
| `program_key` *         | string  | Chave de identificação do programa para emitir um cartão.                                      | uuid                                        |
| `type` *                | string  | Tipo do cartão a ser emitido (PLASTIC).                                                        | **[Enumeradores](#enumeradores-card_type)** |
| `card_name` *           | string  | Alias do cartão, como esse cartão será identificado.                                           | 15                                          |
| `printed_name` *        | string  | Nome que será impresso no cartão (não será permitido o uso de números e caracteres especiais). | 26                                          |
| `contactless_enabled` * | boolean | Habilitar ou desabilitar o uso de contactless do cartão                                        | -                                           |
| `delivery_address`   | Object | Endereco de entrega do cartão                                                                               | **[Objeto Address](#address)** |

### Enumeradores card_type

| Enumerador | Tradução       | 
|------------|----------------|
| plastic    | Cartão físico  | 
| virtual    | Cartão virtual | 

### Address

| Campo                   | Tipo    | Descrição                                                                                      | Caracteres                                  |
|-------------------------|---------|------------------------------------------------------------------------------------------------|---------------------------------------------|
| address*              | string | Endereço de entrega | 100 |
| neighborhood*| string | Bairro do endereço de entrega | 100 |
| zip_code*    | string | CEP do endereço de entrega | 8 |
| city*        | string | Cidade do endereço de entrega | 100 |
| state*       | string | Estado do endereço de entrega | 2 |
| number        | number | Número do endereço de entrega |  |
| complement   | string | Complemento do endereço de entrega | 100 |
| reference    | string | Ponto de referência do endereço de entrega | 100 |
| address_type*        | string | Tipo de entrega  | **[Enumeradores](#enumeradores-address_type)** |

:::caution Atenção!
O campo `number` é opcional. Endereços sem numeração podem ser enviados sem este campo.
:::

### Enumeradores address_type

| Enumerador | Tradução             | 
|------------|----------------------|
| residential| Endereço residencial |  
| commercial | Endereço comercial   | 
| other      | Outro endereço       | 

## Response

STATUS 201

Response Body

```json
{
    "card_key": "05fd3654-1f5d-479d-ade5-64239fdf214d",
	"created_at": "2023-06-20T19:28:16Z",
    "status":"created"
}
```

### Erros

STATUS 4XX

Response Body

```json
{
  "title": "Bad Request",
  "description": "The type of person is invalid for this program, please try another.",
  "translation": "Invalid Person",
  "code": "CARD000007"
}
```

| Code      | Status code  | Descrição                      |
|:---------:|:------------:|:-------------------------------|
| QIT000001 | 400          | Invalid Json schema.|
| CARD000005| 404          | It was not possible to fetch the Program for the program_key \{program_key\}.|
| CARD000006| 404          | It was not possible to fetch the Account for the account_key \{account_key\}.|
| CARD000007| 400          | The type of person is invalid for this program, please try another.|
| CARD000008| 400          | The Card Holder with the status \{status\} is invalid for the operation.|
| CARD000009| 400          | We're sorry, but the card could not be generated. Please try again later.|
| CARD000010| 404          | It was not possible to fetch the Person for the person_key \{owner_person_key\}.|
| CARD000033| 403          | Create plastic card is not allowed for program_key \{program_key\}.|

### Webhook

WEBHOOK_TYPE baas.prepaid_card.card

Webhook Body

```json
{
    "webhook_type": "baas.prepaid_card.card",
    "event_datetime": "2023-07-24T12:00:00.000Z",
    "data": {
        "card_key": "9bd93e97-bb6d-410f-8981-06b2765f12a1",
        "account_key": "595e08f0-da4e-40f7-8db4-f9a25c829818",
        "program_key": "bf74df61-557a-45cb-914f-41e127a6e18c",
        "status": "created",
        "type": "plastic"
    }
}
```

---

# Criar cartão virtual

URL: /documentation/cards/create/gerar_cartao_virtual

## Request

ENDPOINT /prepaid/card
MÉTODO POST

Request Body

```json
{
    "account_key": "5294ed8d-08fc-4397-b15f-6d9aa07b0041",
    "program_key":"7d405c31-ec9a-46c1-8ac8-54bab209bf41",
    "type": "virtual",
    "card_name": "ecommerce",
    "printed_name": "Aurora Catarina",
    "cvv_rotation_interval_hours": 72
}
```

  ### Body params

| Campo                           | Tipo   | Descrição                                                                                      | Caracteres                                  |
|---------------------------------|--------|------------------------------------------------------------------------------------------------|---------------------------------------------|
| `account_key` *                 | string | Chave de identificação da conta de pagamento na QI Tech.                                       | uuid                                        |
| `program_key` *                 | string | Chave de identificação do programa para emitir um cartão.                                      | uuid                                        |
| `type` *                        | string | Tipo do cartão a ser emitido (VIRTUAL).                                                        | **[Enumeradores](#enumeradores-card_type)** |
| `card_name` *                   | string | Alias do cartão, como esse cartão será identificado.                                           | uuid                                        |
| `printed_name` *                | string | Nome que será impresso no cartão (não será permitido o uso de números e caracteres especiais). | uuid                                        |
| `cvv_rotation_interval_hours` * | int    | Intervalo em horas para atualizar o número CVV.                                                | Number                                      |

### Enumeradores card_type

| Enumerador | Tradução       | 
|------------|----------------|
| plastic    | Cartão físico  | 
| virtual     | Cartão virtual | 

## Response

STATUS 201

Response Body

```json
{
    "card_key": "05fd3654-1f5d-479d-ade5-64239fdf214d",
	"created_at": "2023-02-20T19:28:16Z",
    "status":"created"
}
```

### Erros

STATUS 4XX

Response Body

```json
{
  "title": "Bad Request",
  "description": "The type of person is invalid for this program, please try another.",
  "translation": "Invalid Person",
  "code": "CARD000007"
}
```

| Code      | Status code  | Descrição                      |
|:---------:|:------------:|:-------------------------------|
| QIT000001 | 400          | Invalid Json schema.|
| CARD000005| 404          | It was not possible to fetch the Program for the program_key \{program_key\}.|
| CARD000006| 404          | It was not possible to fetch the Account for the account_key \{account_key\}.|
| CARD000007| 400          | The type of person is invalid for this program, please try another.|
| CARD000008| 400          | The Card Holder with the status \{status\} is invalid for the operation.|
| CARD000009| 400          | We're sorry, but the card could not be generated. Please try again later.|
| CARD000010| 404          | It was not possible to fetch the Person for the person_key \{owner_person_key\}.|
| CARD000032| 403          | Create virtual card is not allowed for program_key \{program_key\}.|

### Webhook

WEBHOOK_TYPE baas.prepaid_card.card

Webhook Body

```json
{
    "webhook_type": "baas.prepaid_card.card",
    "event_datetime": "2023-07-24T12:00:00.000Z",
    "data": {
        "card_key": "9bd93e97-bb6d-410f-8981-06b2765f12a1",
        "account_key": "595e08f0-da4e-40f7-8db4-f9a25c829818",
        "program_key": "bf74df61-557a-45cb-914f-41e127a6e18c",
        "status": "created",
        "type": "virtual"
    }
}
```

---

# Introdução

URL: /documentation/cards/introducao

As APIs para emissão de cartão pré pago, permitem que os clientes dos parceiros da QI Tech, solicitem e emitam Cartões Pré Pagos, sejam eles físicos ou virtuais.

Na QI Tech, oferecemos aos nossos parceiros a oportunidade de se tornarem subemissores. Por meio das nossas APIs, os parceiros podem disponibilizar aos seus próprios clientes a possibilidade de emitir tanto cartões pré pagos físicos como virtuais, permitindo assim uma solução completa para serviços bancários.

Para entender melhor nosso sistema faremos uma breve introdução de como funciona o ecossistema de cartões pré pagos, mas lembramos que assim como as demais APIs a liberação do serviço deve ser feita junto ao nosso time e as **[chamadas são autenticadas](/documentation/primeiros_passos/teste_de_autenticacao)**.

### Cartão Pré Pago

O cartão pré pago é um cartão que esta vinculado a uma conta de pagamento dentro da QI Tech.

Todas as transações executadas através deste cartão, debitarão o saldo existente na conta de pagamentos.

Caso a conta não tenha saldo a transação será negada.

### Conta de Pagamento

A QI Tech é uma instituição financeira autorizada a operar com contas de pagamento pré pago pelo Banco Central do Brasil. Um Cartão pré pago esta sempre vinculado à uma conta de pagamento pré pago.

Sendo assim, para criação de um cartão pré pago, seja ele físico ou virtual, é sempre necessário realizar a abertura de uma conta de pagamento. Confira **[aqui](/documentation/contas/abertura_de_conta/abertura_de_conta_pf)** nossa API de abertura de contas.

### Programa

Para que um parceiro possa realizar a emissão de um cartão pré pago, é necessário que ele tenha um programa associado e configurado em sua integração com a QI.

O programa é nada mais que as configurações e regras necessárias para a emissão do cartão em conformidade com a bandeira VISA.

Aqui estão algumas informações importantes sobre o programa:

* **Tipo do programa** - Refere-se à modalidade de utilização do cartão. No caso desta documentação, trata-se da modalidade Pré Pago.
* **Bandeira** -  Utilizamos a bandeira VISA para os cartões emitidos pelo programa.
* **Layout do cartão** - Refere-se ao desenho que será impresso no cartão físico e que será apresentado na interface gráfica do cartão virtual. 

:::caution Atenção
Para configuração de um novo programa em uma integração, o time comercial e o time de implantação da QI Tech deverão ser acionados.
:::

### Cartão Virtual

A API de cartões da QI Tech oferece a funcionalidade de geração de cartões virtuais, que podem ser utilizados em transações online. Essa solução proporciona segurança e comodidade aos portadores de cartão.

Ao utilizar um cartão virtual, os portadores não precisam fornecer os detalhes do cartão físico durante transações pela internet. Em vez disso, eles podem gerar um cartão virtual único, com um número e informações específicas para aquela transação em particular. Isso ajuda a reduzir o risco de fraude e aumenta a confiança nas transações online.

### Cartão Físico

A API de cartões da QI Tech oferece a opção de criação de cartões físicos, proporcionando aos portadores a possibilidade de ter um cartão de plástico para uso em transações presenciais.

Ao solicitar um cartão físico, o portador receberá um cartão de plástico personalizado.

A disponibilidade do cartão físico oferece aos portadores uma forma tradicional e amplamente aceita de realizar pagamentos, garantindo conveniência e praticidade em suas transações presenciais. Além disso, o cartão físico também pode apresentar recursos adicionais, como tecnologia de pagamento por aproximação (contactless) para agilizar as transações.

API de cartões pré pagos da QI Tech, possibilita ao portador do cartão a flexibilidade de escolher entre o uso de cartões virtuais para transações online e a utilização de cartões físicos para transações presenciais, de acordo com suas necessidades e preferências individuais.

---

# Buscar autorização pela Chave da Autorização

URL: /documentation/cards/search/buscar_autorizacao

## Request

ENDPOINT /prepaid/card/(card_key)/authorization/(authorization_key)
MÉTODO GET

## Response

STATUS 200

Response Body

```json
{
    "authorization_key": "cccbd9e9-863f-44b5-aa05-f6afa555bb74",
    "merchant_currency_code": "BRL",
    "original_merchant_amount": 25.32,
    "billing_currency_code": "BRL",
    "original_billing_amount": 25.32,
    "merchant_amount": 25.32,
    "iof_amount": 0,
    "billing_amount": 25.32,
    "processing_datetime": "2023-07-24T12:00:00.000Z",
    "captured_amount": 25.32,
    "authorization_status": "completed",
    "card": {
        "card_key": "05fd3654-1f5d-479d-ade5-64239fdf214d",
        "account_key": "595e08f0-da4e-40f7-8db4-f9a25c829818",
        "type": "virtual",
        "card_name": "ecommerce sample",
        "printed_name": "Aurora Catarina",
        "status": "active",
        "brand": "visa",
        "bin": "123456",
        "last_four_digits": "5695"
    },
    "balance_transactions": [
        {
            "balance_transaction_key": "cccbd9e9-863f-44b5-aa05-f6afa555bb74",
            "balance_transaction_type": "debit",
            "account_transaction_key": "595e08f0-da4e-40f7-8db4-f9a25c820000",
            "account_key": "595e08f0-da4e-40f7-8db4-f9a25c829818",
            "merchant_currency_code": "BRL",
            "merchant_amount": 25.32,
            "billing_currency_code": "BRL",
            "billing_amount": 25.32,
            "processing_datetime": "2023-01-10T13:45:52.000Z",
            "balance_transaction_status": "transacted",
            "transacted_amount": 25.32,
        }
    ],
    "authorization_requests": [
        {
            "authorization_request_key": "cccbd9e9-863f-44b5-aa05-f6afa555bb74",
            "authorization_code": "473890",
            "nsu": "123456",
            "acquirer_reference_number": "12312423",
            "merchant_currency_code": "BRL",
            "merchant_amount": 25.32,
            "billing_currency_code": "BRL",
            "billing_amount": 25.32,
            "processing_datetime": "2023-01-10T13:45:52.000Z",
            "number_of_installments": 1,
            "authorization_type": "authorization",
            "authorization_request_response": "authorized"
        }
    ],
    "authorization_events": [
        {
            "merchant_currency_code": "BRL",
            "merchant_amount": 25.32,
            "billing_currency_code": "BRL",
            "billing_amount": 25.32,
            "processing_datetime": "2023-07-24T12:00:00.000Z",
            "authorization_event_type": "authorization"
        }
    ]
}
```

### Objeto Autorização

| Campo | Tipo | Descrição |
|---|---| ---|
| authorization_key | string | Identificador único da autorização |
| merchant_currency_code | string |  A moeda utilizada na transação - ISO 4217-alpha |
| original_merchant_amount | decimal | Valor original da transação na moeda em que a transação foi realizada |
| billing_currency_code | string | A moeda de cobrança do portador do cartão - ISO 4217-alpha |
| original_billing_amount | decimal | Valor original da transação na moeda de cobrança do portador do cartão |
| merchant_amount | decimal | Somatório do Valor da transação na moeda em que a transação foi realizada de todas requisições de autorização |
| iof_amount | decimal | Somatório do valor de IOF pago no câmbio quando as moedas da transação e de cobrança do portador forem diferentes |
| billing_amount | decimal | Somatório do valor da transação na moeda de cobrança do portador do cartão de todas requisições de autorização |
| processing_datetime | datetime UTC | Horário em que o objeto de autorização foi criado, em geral, horário da primeira requisição de autorização feita |
| captured_amount | decimal | Somatório do valor total capturado por todas requisições de autorização |
| authorization_status | enumerator | Enumerador de **[Status da Autorização](#status-da-autorizacao)** |
| card | object |**[Objeto Card](#objeto-card)**  |
| balance_transactions | list of objects |**[Objeto Balance Transaction](#objeto-balance-transaction)**  |
| authorization_requests | list of objects |**[Objeto Requisição de Autorização](#objeto-rquisicao-de-autorizacao)**  |
| authorization_events | list of objects | **[Objeto Evento de Autorização](#objeto-evento-autorizacao)**  |

### Objeto Card

| Campo | Tipo | Descrição |
|---| ---| ---|
| card_key | string | Chave de identificação do cartão|
| account_key | string | Identificador da conta do titular |
| type | string | Tipo de cartão |
| card_name | string | Identificador alphanumérico do cartão|
| printed_name | string | Nome impresso no cartão |
| cvv_rotation_interval_hours | int | Intervalo de rotação do CVV |
| status | string | Status atual do cartão |
| brand | string | Bandeira do cartão |
| bin | string | BIN do cartão |
| last_four_digits | string | Últimos 4 dígitos do cartão |

### Objeto Balance Transaction

O objeto `Balance Transaction` representa qualquer movimentação na QI Conta do titular do cartão que precise ser efetuada. Podem ser transações de *débito* por ocasião de uma Autorização aprovada, como podem ser de *crédito* numa situação de cancelamento de autorização por exemplo.

| Campo | Tipo | Descrição |
|---| ---| ---|
| balance_transaction_key | string | Identificador único da transação |
| balance_transaction_type | enumerador | *credit* quando se tratar de um crédito em conta e *debit* quando se tratar de um débito em conta|
| account_key | string | Identificador da QI Conta relacionada com o cartão usado na transação |
| merchant_currency_code | string | A moeda utilizada na transação - ISO 4217-alpha |
| merchant_amount | decimal | Equivalente de valor cobrado na moeda da transação |
| billing_currency_code | string | A moeda de cobrança do portador do cartão - ISO 4217-alpha |
| billing_amount | decimal | Valor da transação na moeda de cobrança do portador do cartão |
| processing_datetime | datetime | Representa a data de processamento e criação da transação. Como a transação efetiva na QI Conta pode não ocorrer, este valor é uma referência de quando a cobrança ou crédito foram gerados |
| balance_transaction_status | enumerator | Descreve se a transação foi executada na QI Conta do portador do cartão, podendo estar pendente (`pending_transaction_execution`), parcialmente transacionada (`partially_transacted`) ou transacionada (`transacted`)|
| transacted_amount | decimal | Valor total na moeda do portador do cartão do débito ou crédito que já foram executados na QI Conta |

### Objeto Requisição de Autorização

Detalhado em [Requisição de Autorização](/documentation/cards/autorizacao/)

### Objeto Evento de Autorização

O objeto `Authorization Event` representa os eventos que ocorrem com uma Autorização. Uma forma mais detalhada de como eles podem ocorrer está descrita em [Manuais](/documentation/manual_pre_pago/casos_uso/)
| Campo | Tipo | Descrição |
|---| ---| ---|
| merchant_currency_code | string | A moeda utilizada na transação - ISO 4217-alpha |
| merchant_amount | decimal |  Equivalente de valor cobrado na moeda da transação |
| billing_currency_code | string | A moeda de cobrança do portador do cartão - ISO 4217-alpha |
| billing_amount | decimal | Valor do evento na moeda de cobrança do portador do cartão |
| processing_datetime | datetime | Representa a data de processamento do evento |
| authorization_event_type | enumerator | **[Tipos de Evento de Autorização](#tipos-evento-autorizacao)** |

### Status da Autorização

| Estado | Descrição |
|---|---|
| pending | Requisição de autorização foi aprovada e nenhum evento de captura ou cancelamento foi processado |
| unauthorized | Requisição de autorização não foi aprovada |
| completed | Pelo menos um valor capturado com sucesso para a autorização em questão (seja um valor igual, a menor ou a maior que o valor total aprovado nas requisições de autorização) |
| reversed | Autorização foi estornada por completo ou expirou sem captura |

### Tipos de Evento de Autorização

| Tipo | Descrição |
|---|---|
| authorization | Informe de que uma requisição de autorização foi respondida |
| incremental_authorization | Informe de que uma requisição de autorização incremental foi respondida |
| authorization_reversal | Informe de que um cancelamento de autorização foi processado |
| partial_authorization_reversal | Informe de que um cancelamento parcial de autorização foi processado |
| authorization_expiration | Informe de que uma autorização expirou |
| capture | Informe de que um determinado valor foi capturado para uma autorização |
| refund | Informe de que uma autorização foi reembolsada |
| partial_refund | Informe de que uma autorização foi reembolsada parcialmente |

---

# Buscar Authorizações

URL: /documentation/cards/search/buscar_autorizacoes

## Request

ENDPOINT /prepaid/card/(card_key)/authorizations
MÉTODO GET
PARÂMETROS from_date, to_date, size, page

## QUERY PARAMS

| Campo           | Tipo   | Descrição                                                |
|-----------------|--------|----------------------------------------------------------|
| `size`          | int    | Quantidade de registros que será retornado. Default 10.  |
| `page`          | int    | Página que será realizado a busca. Default 1.            |
| `from_date`     | date   | Data de início do período desejado                       |
| `to_date`       | date   | Data de fim do período desejado                          |

## Response

STATUS 200

Response Body

```json
{
    "pagination": {
        "current_page": 1,
        "rows_per_page": 10,
        "next_page": 2
    },
    "data": [
        {
            "authorization_key": "cccbd9e9-863f-44b5-aa05-f6afa555bb74",
            "merchant_currency_code": "BRL",
            "original_merchant_amount": 25.31,
            "billing_currency_code": "BRL",
            "original_billing_amount": 25.31,
            "merchant_amount": 25.31,
            "iof_amount": 0,
            "billing_amount": 25.31,
            "processing_datetime": "2023-07-24T12:00:00.000Z",
            "captured_amount": 25.31,
            "authorization_status": "completed"
        },
        {
            "authorization_key": "9a7b2586-7070-4543-99eb-989d9165814e",
            "merchant_currency_code": "BRL",
            "original_merchant_amount": 65,
            "billing_currency_code": "BRL",
            "original_billing_amount": 65,
            "merchant_amount": 65,
            "iof_amount": 0,
            "billing_amount": 65,
            "processing_datetime": "2023-07-24T13:00:00.000Z",
            "captured_amount": 65,
            "authorization_status": "completed"
        }
    ]
```

---

# Buscar cartão por chave

URL: /documentation/cards/search/buscar_cartao_by_key

## Request

ENDPOINT /prepaid/card/ CARD_KEY
MÉTODO GET

### Path params

| Campo        | Tipo   | Descrição                         | Caracteres |
|--------------|--------|-----------------------------------|------------|   
| `CARD_KEY` * | string | Chave de identificação do cartão. | uuid       |
 

## Response

STATUS 200

Response Body

```json
{
    "card_key": "05fd3654-1f5d-479d-ade5-64239fdf214d",    
    "account_key": "595e08f0-da4e-40f7-8db4-f9a25c829818",
    "program_key": "6b6ebaac-043b-4390-8d62-e8098ec901e9",
    "type": "virtual",
    "card_name": "ecommerce",
    "printed_name": "Aurora Catarina",
    "cvv_rotation_interval_hours": 72,
    "created_at": "2023-02-20T19:28:16Z",
    "updated_at": "2023-02-22T19:28:16Z",
    "status": "active",
    "brand": "visa",
    "last_four_digits": "5695",
    "status_events": [
        {
            "status": "created",
            "created_at": "2023-02-20T19:28:16Z"
        },
        {
            "status": "active",
            "created_at": "2023-02-20T19:35:10Z"
        }
    ]
}
```

### Erros

STATUS 4XX

Response Body

```json
{
  "title": "Not Found",
  "description": "It was not possible to fetch the Card for the card_key f6bf148a-30b6-4a07-8c5b-3383a98ea32b.",
  "translation": "Not Found Card",
  "code": "CARD000011"
}
```

| Code      | Status code  | Descrição                      |
|:---------:|:------------:|:-------------------------------|
| CARD000011| 404          | It was not possible to fetch the Card for the card_key \{card_key\}.|
| CARD000016| 400          | We're sorry, but the card could not be fetch. Please try again later.|

---

# Buscar dados PCI

URL: /documentation/cards/search/buscar_dados_pci

## Request

ENDPOINT /prepaid/card/ CARD_KEY /pci
MÉTODO GET

### Path params

| Campo        | Tipo   | Descrição                         | Caracteres |
|--------------|--------|-----------------------------------|------------|   
| `CARD_KEY` * | string | Chave de identificação do cartão. | uuid       |

## Response

STATUS 200

Response Body

```json
{
    "printed_name": "Aurora Catarina",
    "valid_until": "2023-02-20T10:04:12Z",
    "expiration_date": "03/24",
    "card_number": "4539347744299311",
    "cvv": "713"
}
```

### Erros

STATUS 4XX

Response Body

```json
{
  "title": "Not Found",
  "description": "It was not possible to fetch the Card for the card_key f6bf148a-30b6-4a07-8c5b-3383a98ea32b.",
  "translation": "Not Found Card",
  "code": "CARD000011"
}
```

| Code      | Status code  | Descrição                      |
|:---------:|:------------:|:-------------------------------|
| CARD000011| 404          | It was not possible to fetch the Card for the card_key \{card_key\}.|
| CARD000012| 400          | It was not possible to fetch PCI for the card_key \{card_key\}.|

---

# Buscar entrega por chave de cartão

URL: /documentation/cards/search/buscar_entrega_by_key

## Request

ENDPOINT /card/ CARD_KEY /tracking
MÉTODO GET

### Path params

| Campo        | Tipo   | Descrição                         | Caracteres |
|--------------|--------|-----------------------------------|------------|
| `CARD_KEY` * | string | Chave de identificação do cartão. | uuid       |

## Response

STATUS 200

Response Body

```json
{
  "card_key": "92b4e2bd-4a6f-4c56-859e-17c729e1f0c8",
  "tracking_code": "4F68A72B902317",
  "status": "posted",
  "recipient": "João Silva",
  "address": {
    "zip_code": "1234567",
    "street": "Rua das Flores",
    "number": 123,
    "complement": "Bloco A",
    "neighborhood": "Centro",
    "city": "Cidade Exemplo",
    "state": "SP"
  },
  "event": [
    {
      "created_at": "2024-02-27T08:30:00Z",
      "old_status": "pending",
      "new_status": "posted",
      "description": "Pedido recebido e postado",
      "place": "SAO PAULO"
    }
  ]
}
```

### Enumeradores DeliveryStatus

| Enumerador         | Tradução            |
|--------------------|---------------------|
| pending            | Pendente            |
| posted             | Postado             |
| prepared           | Preparado           |
| in_transfer        | Em transferência    |
| in_delivery_unit   | Na unidade de entrega |
| on_route           | Em rota             |
| attempt_failed     | Tentativa falhou    |
| awaiting_withdrawal| Aguardando retirada |
| returning          | Retornando          |
| delivered          | Entregue            |
| returned           | Devolvido           |
| canceled           | Cancelado           |
| failed             | Falhou              |
| resend             | Reenviado           |

### Erros

STATUS 4XX

Response Body

```json
{
  "title": "Not Found",
  "description": "It was not possible to fetch the Tracking for the card_key f6bf148a-30b6-4a07-8c5b-3383a98ea32b.",
  "translation": "Not Found",
  "code": "TRACK000011"
}
```

| Code      | Status code  | Descrição                      |
|:---------:|:------------:|:-------------------------------|
| TRACK000011| 404          | It was not possible to fetch the Tracking for the card_key \{card_key\}.|
| TRACK000016| 400          | We're sorry, but the tracking could not be fetch. Please try again later.|

---

# Buscar Senha PCI

URL: /documentation/cards/search/buscar_senha

## Request

ENDPOINT /prepaid/card/ CARD_KEY /pci/password
MÉTODO GET

### Path params

| Campo        | Tipo   | Descrição                         | Caracteres |
|--------------|--------|-----------------------------------|------------|   
| `CARD_KEY` * | string | Chave de identificação do cartão. | uuid       |

## Response

STATUS 200

Response Body

```json
{
    "pin": "1234"
}
```

### Erros

STATUS 4XX

Response Body

```json
{
  "title": "Bad Request",
  "description": "It was not possible to fetch PCI for the card_key f6bf148a-30b6-4a07-8c5b-3383a98ea32b.",
  "translation": "Fetch PCI failed",
  "code": "CARD000012"
}
```

| Code      | Status code  | Descrição                      |
|:---------:|:------------:|:-------------------------------|
| CARD000011| 404          | It was not possible to fetch the Card for the card_key \{card_key\}.|
| CARD000012| 400          | It was not possible to fetch PCI for the card_key \{card_key\}.|

---

# Listar cartões

URL: /documentation/cards/search/listar_cartoes

## Request

ENDPOINT /prepaid/card
MÉTODO GET
PARÂMETROS account_key, size, page

## QUERY PARAMS

| Campo           | Tipo   | Descrição                                                | Caracteres |
|-----------------|--------|----------------------------------------------------------|------------| 
| `account_key` * | string | Chave de identificação da conta de pagamento na QI Tech. | uuid       |
| `size`          | int    | Quantidade de registros que será retornado. Default 10.  | -          |
| `page`          | int    | Página que será realizado a busca. Default 0.            | -          |

## Response

STATUS 200

Response Body

```json
{
    "pagination": {
        "current_page": 1,
        "rows_per_page": 0,
        "next_page": 2
    },
    "data": [
        {
            "card_key": "05fd3654-1f5d-479d-ade5-64239fdf214d",        
            "account_key": "595e08f0-da4e-40f7-8db4-f9a25c829818",
            "program_key": "6b6ebaac-043b-4390-8d62-e8098ec901e9",
            "type": "virtual",
            "card_name": "ecommerce",
            "printed_name": "Aurora Catarina",
            "cvv_rotation_interval_hours": 72,
            "created_at": "2023-02-20T19:28:16Z",
            "updated_at": "2023-02-22T19:28:16Z",
            "status": "active",
            "brand": "visa"
        },
        {
            "card_key": "ee084f00-d72e-4263-87fb-3a3c11a418c6",
            "account_key": "595e08f0-da4e-40f7-8db4-f9a25c829818",
            "program_key": "6b6ebaac-043b-4390-8d62-e8098ec901e9",
            "type": "virtual",
            "card_name": "uber",
            "printed_name": "Aurora Catarina",
            "cvv_rotation_interval_hours": 72,
            "created_at": "2023-02-10T11:28:16Z",
            "updated_at": "2023-02-15T11:28:16Z",
            "status": "canceled",
            "brand": "visa"
        }
    ]
}
```

### Erros

STATUS 4XX

Response Body

```json
{
  "title": "Not Found",
  "description": "It was not possible to fetch the Account for the account_key 94f982c0-164c-45e3-8a0e-69f54ad7b155.",
  "translation": "Not Found Account",
  "code": "CARD000006"
}
```

| Code      | Status code  | Descrição                      |
|:---------:|:------------:|:-------------------------------|
| CARD000006| 404          | It was not possible to fetch the Account for the account_key \{account_key\}.|
| CARD000021| 400          | Account key can not be null when search for cards.|
| CARD000022| 400          | Invalid integer value for page or size querystring parameters.|

---

# Ativar cartão físico

URL: /documentation/cards/status/ativar_cartao

Todo cartão físico precisa ser ativado através de um código de ativação que é enviado junto do cartão físico, ao portador.

Ao receber o cartão por correspondência, o portador do cartão precisa informar ao parceiro da QI, para que o parceiro realize a ativação do cartão através deste endpoint.

:::caution Atenção
Por motivos de segurança, não existe a possibilidade de consulta do código de ativação via API por parte do parceiro.

Este código é enviado, exclusivamente ao portador do cartão, no momento da postagem do cartão físico.

Para realizar testes de integração, esse código é devolvido em ambiente de sandobox ao consultar um cartão.
:::

## Request

ENDPOINT /prepaid/card/ CARD_KEY /activate
MÉTODO PATCH

### Path params
| Campo        | Tipo   | Descrição                         | Caracteres |
|--------------|--------|-----------------------------------|------------|   
| `CARD_KEY` * | string | Chave de identificação do cartão. | uuid       |

Request Body

```json
{
    "code": "253615"
}
```

  ### Body params

| Campo     | Tipo   | Descrição                     | Caracteres |
|-----------|--------|-------------------------------|------------|
| `code`  * | string | Código de ativação do cartão. | 6          |

### Erros

STATUS 4XX

Response Body

```json
{
  "title": "Not Acceptable",
  "description": "Invalid activation code [1254].",
  "translation": "Unable to activate card",
  "code": "CARD000020"
}
```

| Code      | Status code  | Description                    |
|:---------:|:------------:|:-------------------------------|
| QIT000001 | 400          | Invalid Json schema.|
| CARD000011| 404          | It was not possible to fetch the Card for the card_key \{card_key\}.|
| CARD000017| 406          | The activation operation is not valid for the current card status [\{card_status\}].|
| CARD000018| 400          | We're sorry, but the card could not be activate. Please try again later.|
| CARD000020| 406          | Invalid activation code [\{code\}].|
| CARD000023| 406          | The card type is invalid for this operation. Only plastic cards are allowed.|

### Webhook

WEBHOOK_TYPE baas.prepaid_card.card

Webhook Body

```json
{
    "webhook_type": "baas.prepaid_card.card",
    "event_datetime": "2023-07-25T12:00:00.000Z",
    "data": {
        "card_key": "9bd93e97-bb6d-410f-8981-06b2765f12a1",
        "type": "plastic",
        "status": "active",
        "old_status": "embossing"
    }
}
```

---

# Atualizar status

URL: /documentation/cards/status/update_status_cartao

## Request

ENDPOINT /prepaid/card/ CARD_KEY
MÉTODO PATCH

### Path params

| Campo        | Tipo   | Descrição                         | Caracteres |
|--------------|--------|-----------------------------------|------------|   
| `CARD_KEY` * | string | Chave de identificação do cartão. | uuid       |

Request Body

```json
{
    "status": "blocked"
}
```

  ### Body params

| Campo       | Tipo   | Descrição         | Caracteres                                    |
|-------------|--------|-------------------|-----------------------------------------------|
| `status`  * | string | Status do cartão. | **[Enumeradores](#enumeradores-card_status)** |

### Enumeradores card_status
| Enumerador | Tradução            | Tipo            |
|------------|---------------------|-----------------|
| created    | Criação solicitada  | Initial         |
| building   | Em construção       | Initial         |
| active     | Apto a transacionar | Active          |
| embossing  | Em produção         | Temporary block |
| blocked    | Bloqueado           | Temporary block |
| warning    | Com suspeita        | Temporary block |
| pending    | Pendente            | Temporary block |
| lost       | Perdido             | Terminated      |
| robbed     | Roubado             | Terminated      |
| fraud      | Fraudado            | Terminated      |
| canceled   | Cancelado           | Terminated      |
| theft      | Furtado             | Terminated      |

### Erros

STATUS 4XX

Response Body

```json
{
  "title": "Not Acceptable",
  "description": "The operation is not valid for the current status of the card [canceled]",
  "translation": "Unable to transition",
  "code": "CARD000014"
}
```

| Code      | Status code  | Descrição                      |
|:---------:|:------------:|:-------------------------------|
| QIT000001 | 400          | Invalid Json schema.|
| CARD000011| 404          | It was not possible to fetch the Card for the card_key \{card_key\}.|
| CARD000013| 406          | Unable to transition from \{old_status\} to \{new_status\}.|
| CARD000014| 406          | The operation is not valid for the current status of the card [\{card_status\}].|
| CARD000015| 400          | We're sorry, but the card could not be update. Please try again later|

### Webhook

WEBHOOK_TYPE baas.prepaid_card.card

Webhook Body

```json
{
    "webhook_type": "baas.prepaid_card.card",
    "event_datetime": "2023-07-25T12:00:00.000Z",
    "data": {
        "card_key": "9bd93e97-bb6d-410f-8981-06b2765f12a1",
        "type": "virtual",
        "status": "active",
        "old_status": "created"
    }
}
```

---

# Configuração do contactless

URL: /documentation/cards/update/contactless_cartao

Ativar ou desativar a funcionalidade de pagamento por aproximação (contactless) para uso presencial.

Para ativar ou desativar o pagamento por aproximação do cartão, o status do cartão deve ser do tipo **Ativo** ou **Bloqueio temporário**. (Para obter informações sobre os tipos de status, consulte [aqui](../../cards/status/update_status_cartao#enumeradores-card_status))

## Request

ENDPOINT /prepaid/card/ CARD_KEY /contactless
MÉTODO PATCH

### Path params
| Campo        | Tipo   | Descrição                         | Caracteres |
|--------------|--------|-----------------------------------|------------|   
| `CARD_KEY` * | string | Chave de identificação do cartão. | uuid       |

Request Body

```json
{
    "contactless_enabled": false
}
```

### Body params

| Campo                     | Tipo    | Descrição                         | Caracteres |
|---------------------------|---------|-----------------------------------|------------|
| `contactless_enabled`  *  | Boolean | Indica se está habilitado ou não. | true/false |

## Response

STATUS SUCCESS 200

### Erros

STATUS 4XX

Response Body

```json
{
  "title": "Bad Request",
  "description": "We're sorry, but the card could not be update contactless. Please try again later.",
  "translation": "Unexpected error update contactless card",
  "code": "CARD000026"
}
```

| Código    | Status code  | Descrição                      |
|:---------:|:------------:|:-------------------------------|
| QIT000001 | 400          | Invalid Json schema.|
| CARD000011| 404          | It was not possible to fetch the Card for the card_key \{card_key\}.|
| CARD000023| 406          | The card type is invalid for this operation. Only plastic cards are allowed.|
| CARD000026| 400          | We're sorry, but the card could not be update contactless. Please try again later.|
| CARD000025| 406          | The status \{status\} is invalid for the operation.|

### Webhook

WEBHOOK_TYPE baas.prepaid_card.card.updated.contactless

Webhook Body

```json
{
    "webhook_type": "baas.prepaid_card.card.updated.contactless",
    "event_datetime": "2023-07-25T12:00:00.000Z",
    "data": {
        "card_key": "9bd93e97-bb6d-410f-8981-06b2765f12a1",
        "contactless_enabled": true
    }
}
```

---

# Alterar senha cartão físico

URL: /documentation/cards/update/password_cartao

Todo cartão físico tem uma senha para autorizar a transação, e ela pode ser atualizada caso necessária.

Para atualizar a senha do cartão o status tem que ter o tipo **Active** ou **Temporary block**.(Para conhecer sobre status consulte [aqui](../../cards/status/update_status_cartao#enumeradores-card_status))

:::caution Atenção
Por motivos de segurança, cuidado ao atualizar uma senha, pois ela pode impactar na autorização de um cartão.

Crie regras para melhorar a segurança da autorização da senha, como não utilizar data de aniversário, números repetidos (ex: 3333).
:::

## Request

ENDPOINT /prepaid/card/ CARD_KEY /password
MÉTODO PATCH

### Path params
| Campo        | Tipo   | Descrição                         | Caracteres |
|--------------|--------|-----------------------------------|------------|   
| `CARD_KEY` * | string | Chave de identificação do cartão. | uuid       |

Request Body

```json
{
    "pin": "2143"
}
```

  ### Body params

| Campo     | Tipo   | Descrição                                     | Caracteres |
|-----------|--------|-----------------------------------------------|------------|
| `pin`  *  | string | Senha do cartão para autorizar uma transação. | 4          |

## Response

STATUS SUCCESS 200

### Erros

STATUS 4XX

Response Body

```json
{
  "title": "Bad Request",
  "description": "We're sorry, but the card could not be update password. Please try again later.",
  "translation": "Unexpected error update password card",
  "code": "CARD000024"
}
```

| Código    | Status code  | Descrição                      |
|:---------:|:------------:|:-------------------------------|
| QIT000001 | 400          | Invalid Json schema.|
| CARD000011| 404          | It was not possible to fetch the Card for the card_key \{card_key\}.|
| CARD000023| 406          | The card type is invalid for this operation. Only plastic cards are allowed.|
| CARD000024| 400          | We're sorry, but the card could not be update password. Please try again later.|
| CARD000025| 406          | The status \{status\} is invalid for the operation.|

### Webhook

WEBHOOK_TYPE baas.prepaid_card.card.updated.password

Webhook Body

```json
{
    "webhook_type": "baas.prepaid_card.card.updated.password",
    "event_datetime": "2023-07-25T12:00:00.000Z",
    "data": {
        "card_key": "9bd93e97-bb6d-410f-8981-06b2765f12a1"
    }
}
```

---

# Atualizar endereço de entrega

URL: /documentation/cards/update/update_delivery_address

A atualização do endereço de entrega serve para corrigir o endereço caso alguma inconsistência seja encontrada ou a entrega seja mal sucedida três vezes.

## Request

ENDPOINT /account/ ACCOUNT_KEY /card/ CARD_KEY /address
MÉTODO POST

### Path parameters

| Campo                   | Tipo   | Descrição                                                    | Caracteres |
|-------------------------|--------|--------------------------------------------------------------|------------|
| `account_key`           | uuidv4 | Chave única de identificação da conta, no formato uuid v4    | 36         |
| `card_key`              | uuidv4 | Chave única de identificação do cartão, no formato uuid v4   | 36         |

Request Body

```json
{
    "postal_code": "5425020",
    "street": "Rua Gilberto Sabino",
    "number": 215,
    "complement": "4 andar",
    "neighborhood": "Pinheiros",
    "city": "So Paulo",
    "state": "SP",
    "reference": "Terminal Pinheiros",
    "address_type": "commercial",
    "notes": ["obs1", "obs2"],
    "phones": [
        {"country_code": "55", "area_code": "19", "number": "983151110"},
        {"country_code": "55", "area_code": "16", "number": "992334318"},
    ],
}
```

### Request Body

### Objeto address

| Campo                     | Tipo   | Descrição                                          | Caracteres |
|---------------------------|--------|----------------------------------------------------|------------|
| `street` *                | string | Logradouro                                         | 100        |
| `number`                  | string | Número                                             | 10         |
| `neighborhood` *          | string | Bairro                                             | 100        |
| `postal_code` *           | string | CEP                                                | 8          |
| `city` *                  | string | Cidade                                             | 100        |
| `complement`              | string | Complemento                                        | 100        |
| `reference`               | string | Ponto de referência                                | 100        |
| `notes`                   | string array | Observações relacionadas ao endereço         | 100        |
| `phones`                  | object array | Telefones de contato | **[Objeto phone](#objeto-phone)**  |
| `state` *                 | string | Estado (UF)       | **[Enumeradores state](#enumeradores-state)** |
| `address_type` *          | string | Tipo de endereço  | **[Enumeradores address_type](#enumeradores-address_type)** |

:::caution Atenção!
O campo `number` é opcional. Endereços sem numeração podem ser enviados sem este campo.
:::

:::caution Atenção!
Podem ser enviados até dois telefones de contato e quatro observações. Caso não haja telefone de contato e/ou observações, esses campos (`phones` e `notes`) não devem ser enviados.
:::

### Objeto phone

| Campo                           | Tipo   | Descrição                                    | Caracteres |
|---------------------------------|--------|----------------------------------------------|------------|
| `international_dial_code` *     | string | Código DDI (Discagem Direta Internacional)   | 2          |
| `area_code` *                   | string | Código DDD (Discagem Direta à Distância)     | 2          |
| `number` *                      | string | Complemento                                  | 9          |

### Enumeradores address_type

| Enumerador         | Descrição                |
|--------------------|--------------------------|
| residential        | endereço residencial     |
| commercial         | endereço comercial       |
| other              | outros tipos de endereço |

### Enumeradores state

| Enumerador         | Descrição             |
|--------------------|-----------------------|
| AC                 | Acre                  |
| AL                 | Alagoas               |
| AM                 | Amazonas              |
| AP                 | Amapá                 |
| BA                 | Bahia                 |
| CE                 | Ceará                 |
| DF                 | Distrito federal      |
| ES                 | Espírito Santo        |
| GO                 | Goiás                 |
| MA                 | Maranhão              |
| MG                 | Minas Gerais          |
| MS                 | Mato Grosso do Sul    |
| MT                 | Mato Grosso           |
| PA                 | Pará                  |
| PB                 | Paraíba               |
| PE                 | Pernambuco            |
| PI                 | Piauí                 |
| PR                 | Paraná                |
| RJ                 | Rio de Janeiro        |
| RN                 | Rio Grande do Norte   |
| RO                 | Rondônia              |
| RR                 | Roraima               |
| RS                 | Rio Grande do Sul     |
| SC                 | Santa Catarina        |
| SE                 | Sergipe               |
| SP                 | São Paulo             |
| TO                 | Tocantins             |
| EX                 | Exceção               |

## Response

STATUS 200

Response Body

```json
{
  "card_key": "1e3183f0-1bac-4e59-81e8-2d89db224040",
  "tracking_code": "FD89B071241022",
  "address": {
    "city": "So Paulo",
    "notes": [
      "obs1",
      "obs2"
    ],
    "state": "SP",
    "number": 215,
    "phones": [
      {
        "number": "983151110",
        "area_code": "19",
        "country_code": "55"
      },
      {
        "number": "992334318",
        "area_code": "16",
        "country_code": "55"
      }
    ],
    "street": "Rua Gilberto Sabino",
    "reference": "Terminal Pinheiros",
    "complement": "4 andar",
    "postal_code": "5425020",
    "address_type": "commercial",
    "neighborhood": "Pinheiros"
  }
}

```

### Response Body Params

| Campo                   | Tipo   | Descrição                                                                                       | Caracteres |
|-------------------------|--------|-------------------------------------------------------------------------------------------------|------------|
| `card_key` *            | uuidv4 | Chave única de identificação do cartão, no formato uuid v4                                      | 36         |
| `tracking_code` *       | string | Código de rastreio da entrega do cartão                                                         | 14         |
| `address`               | object | Objeto do tipo `address`, semelhante ao que é enviado na requisição | **[Objeto address](#objeto-address)**  |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 403                      | QIT000005            | Permission Validator Error               | Selected agent and person_key are different | Agente selecionado e person_key são diferentes |
| 400                      | TRACK000004          | Bad Request                 | Invalid status to change delivery address. | Status inválido para mudar o endereço de entrega. |
| 500                      | TRACK000007          | Internal Server Error      | Failed to update delivery address at delivery service provider. Please, try again later!   | Falha ao atualizar endereço de entrega junto à provedora de serviços de delivery. Por favor, tente novamente mais tarde! |
| 404                      | TRACK000012          | Not Found                                 | Tracking not found for the given 'card_key'. | Rastreio não encontrado para a 'card_key' fornecida. |

---

# Configuração do contactless

URL: /documentation/cartao_pos_pago/cartao/atualizar/atualizar_contactless

Ativar ou desativar a funcionalidade de pagamento por aproximação (contactless) para uso presencial.

Para ativar ou desativar o pagamento por aproximação do cartão, o status do cartão deve ser do tipo **Ativo** ou **Bloqueio temporário**. (Para obter informações sobre os tipos de status, consulte [aqui](../../credit_cards/status/atualiar_status_cartao#enumeradores-card_status))

## Request

ENDPOINT /wallet/ WALLET_KEY /card/ CARD_KEY /contactless
MÉTODO PATCH

### Path params
| Campo        | Tipo   | Descrição                         | Caracteres |
|--------------|--------|-----------------------------------|------------|
| `WALLET_KEY` * | string | Chave de identificação do carteira. | uuid       |    
| `CARD_KEY` * | string | Chave de identificação do cartão. | uuid       |

Request Body

```json
{
    "contactless_enabled": false
}
```

### Body params

| Campo                     | Tipo    | Descrição                         | Caracteres |
|---------------------------|---------|-----------------------------------|------------|
| `contactless_enabled`  *  | Boolean | Indica se está habilitado ou não. | true/false |

## Response

STATUS SUCCESS 200

Response Body

```json
{
    "card_key": "05fd3654-1f5d-479d-ade5-64239fdf214d",
    "status": "active",
    "account_key": "3571e292-3a83-4011-904d-20ee963022ef",
    "program_key": "6b6ebaac-043b-4390-8d62-e8098ec901e9",
    "type": "virtual",
    "card_name": "ecommerce",
    "printed_name": "Aurora Catarina",
    "brand": "visa",
    "last_four_digits": "5695",
    "created_at": "2023-02-20T19:28:16Z",
    "updated_at": "2023-02-22T19:28:16Z",
    "cvv_rotation_interval_hours": 72
}
```

### Erros

STATUS 4XX

Response Body

```json
{
  "title": "Bad Request",
  "description": "We're sorry, but the card could not be update contactless. Please try again later.",
  "translation": "Unexpected error update contactless card",
  "code": "CARD000026"
}
```

| Código    | Status code  | Descrição                      |
|:---------:|:------------:|:-------------------------------|
| QIT000001 | 400          | Invalid Json schema.|
| CARD000011| 404          | It was not possible to fetch the Card for the card_key \{card_key\}.|
| CARD000023| 406          | The card type is invalid for this operation. Only plastic cards are allowed.|
| CARD000026| 400          | We're sorry, but the card could not be update contactless. Please try again later.|
| CARD000025| 406          | The status \{status\} is invalid for the operation.|

---

# Atualizar endereço de entrega

URL: /documentation/cartao_pos_pago/cartao/atualizar/atualizar_endereco_entrega

A atualização do endereço de entrega serve para corrigir o endereço caso alguma inconsistência seja encontrada ou a entrega seja mal sucedida três vezes.

## Request

ENDPOINT /wallet/ WALLET_KEY /card/ CARD_KEY /address
MÉTODO PATCH

### Path params
| Campo        | Tipo   | Descrição                         | Caracteres |
|--------------|--------|-----------------------------------|------------|
| `WALLET_KEY` * | string | Chave de identificação do carteira. | uuid       |    
| `CARD_KEY` * | string | Chave de identificação do cartão. | uuid       |

Request Body

```json
{
    "postal_code": "5425020",
    "street": "Rua Gilberto Sabino",
    "number": 215,
    "complement": "4 andar",
    "neighborhood": "Pinheiros",
    "city": "So Paulo",
    "state": "SP",
    "reference": "Terminal Pinheiros",
    "address_type": "commercial",
    "notes": ["obs1", "obs2"],
    "phones": [
        {"country_code": "55", "area_code": "19", "number": "983151110"},
        {"country_code": "55", "area_code": "16", "number": "992334318"},
    ],
}
```

### Request Body

### Objeto address

| Campo                     | Tipo   | Descrição                                          | Caracteres |
|---------------------------|--------|----------------------------------------------------|------------|
| `street` *                | string | Logradouro                                         | 100        |
| `number` *                | string | Número                                             | 10         |
| `neighborhood` *          | string | Bairro                                             | 100        |
| `postal_code` *           | string | CEP                                                | 8          |
| `city` *                  | string | Cidade                                             | 100        |
| `complement`              | string | Complemento                                        | 100        |
| `reference`               | string | Ponto de referência                                | 100        |
| `notes`                   | string array | Observações relacionadas ao endereço         | 100        |
| `phones`                  | object array | Telefones de contato | **[Objeto phone](#objeto-phone)**  |
| `state` *                 | string | Estado (UF)       | **[Enumeradores state](#enumeradores-state)** |
| `address_type` *          | string | Tipo de endereço  | **[Enumeradores address_type](#enumeradores-address_type)** |

:::caution Atenção!
Podem ser enviados até dois telefones de contato e quatro observações. Caso não haja telefone de contato e/ou observações, esses campos (`phones` e `notes`) não devem ser enviados.
:::

### Objeto phone

| Campo                           | Tipo   | Descrição                                    | Caracteres |
|---------------------------------|--------|----------------------------------------------|------------|
| `international_dial_code` *     | string | Código DDI (Discagem Direta Internacional)   | 2          |
| `area_code` *                   | string | Código DDD (Discagem Direta à Distância)     | 2          |
| `number` *                      | string | Complemento                                  | 9          |

### Enumeradores address_type

| Enumerador         | Descrição                |
|--------------------|--------------------------|
| residential        | endereço residencial     |
| commercial         | endereço comercial       |
| other              | outros tipos de endereço |

### Enumeradores state

| Enumerador         | Descrição             |
|--------------------|-----------------------|
| AC                 | Acre                  |
| AL                 | Alagoas               |
| AM                 | Amazonas              |
| AP                 | Amapá                 |
| BA                 | Bahia                 |
| CE                 | Ceará                 |
| DF                 | Distrito federal      |
| ES                 | Espírito Santo        |
| GO                 | Goiás                 |
| MA                 | Maranhão              |
| MG                 | Minas Gerais          |
| MS                 | Mato Grosso do Sul    |
| MT                 | Mato Grosso           |
| PA                 | Pará                  |
| PB                 | Paraíba               |
| PE                 | Pernambuco            |
| PI                 | Piauí                 |
| PR                 | Paraná                |
| RJ                 | Rio de Janeiro        |
| RN                 | Rio Grande do Norte   |
| RO                 | Rondônia              |
| RR                 | Roraima               |
| RS                 | Rio Grande do Sul     |
| SC                 | Santa Catarina        |
| SE                 | Sergipe               |
| SP                 | São Paulo             |
| TO                 | Tocantins             |
| EX                 | Exceção               |

## Response

STATUS 200

Response Body

```json
{
  "card_key": "1e3183f0-1bac-4e59-81e8-2d89db224040",
  "tracking_code": "FD89B071241022",
  "address": {
    "city": "So Paulo",
    "notes": [
      "obs1",
      "obs2"
    ],
    "state": "SP",
    "number": 215,
    "phones": [
      {
        "number": "983151110",
        "area_code": "19",
        "country_code": "55"
      },
      {
        "number": "992334318",
        "area_code": "16",
        "country_code": "55"
      }
    ],
    "street": "Rua Gilberto Sabino",
    "reference": "Terminal Pinheiros",
    "complement": "4 andar",
    "postal_code": "5425020",
    "address_type": "commercial",
    "neighborhood": "Pinheiros"
  }
}

```

### Response Body Params

| Campo                   | Tipo   | Descrição                                                                                       | Caracteres |
|-------------------------|--------|-------------------------------------------------------------------------------------------------|------------|
| `card_key` *            | uuidv4 | Chave única de identificação do cartão, no formato uuid v4                                      | 36         |
| `tracking_code` *       | string | Código de rastreio da entrega do cartão                                                         | 14         |
| `address`               | object | Objeto do tipo `address`, semelhante ao que é enviado na requisição | **[Objeto address](#objeto-address)**  |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 403                      | QIT000005            | Permission Validator Error               | Selected agent and person_key are different | Agente selecionado e person_key são diferentes |
| 400                      | TRACK000004          | Bad Request                 | Invalid status to change delivery address. | Status inválido para mudar o endereço de entrega. |
| 500                      | TRACK000007          | Internal Server Error      | Failed to update delivery address at delivery service provider. Please, try again later!   | Falha ao atualizar endereço de entrega junto à provedora de serviços de delivery. Por favor, tente novamente mais tarde! |
| 404                      | TRACK000012          | Not Found                                 | Tracking not found for the given 'card_key'. | Rastreio não encontrado para a 'card_key' fornecida. |

---

# Alterar senha cartão físico

URL: /documentation/cartao_pos_pago/cartao/atualizar/atualizar_senha

Todo cartão físico tem uma senha para autorizar a transação, e ela pode ser atualizada caso necessária.

Para atualizar a senha do cartão o status tem que ter o tipo **Active** ou **Temporary block**.(Para conhecer sobre status consulte [aqui](../../credit_cards/status/atualiar_status_cartao#enumeradores-card_status))

:::caution Atenção
Por motivos de segurança, cuidado ao atualizar uma senha, pois ela pode impactar na autorização de um cartão.

Crie regras para melhorar a segurança da autorização da senha, como não utilizar data de aniversário, números repetidos (ex: 3333).
:::

## Request

ENDPOINT /wallet/ WALLET_KEY /card/ CARD_KEY /password
MÉTODO PATCH

### Path params
| Campo        | Tipo   | Descrição                         | Caracteres |
|--------------|--------|-----------------------------------|------------| 
| `WALLET_KEY` * | string | Chave de identificação do carteira. | uuid       |   
| `CARD_KEY` * | string | Chave de identificação do cartão. | uuid       |

Request Body

```json
{
    "pin": "2143"
}
```

  ### Body params

| Campo     | Tipo   | Descrição                                     | Caracteres |
|-----------|--------|-----------------------------------------------|------------|
| `pin`  *  | string | Senha do cartão para autorizar uma transação. | 4          |

## Response

STATUS SUCCESS 200

Response Body

```json
{
    "card_key": "05fd3654-1f5d-479d-ade5-64239fdf214d",
    "status": "active",
    "account_key": "3571e292-3a83-4011-904d-20ee963022ef",
    "program_key": "6b6ebaac-043b-4390-8d62-e8098ec901e9",
    "type": "virtual",
    "card_name": "ecommerce",
    "printed_name": "Aurora Catarina",
    "brand": "visa",
    "last_four_digits": "5695",
    "created_at": "2023-02-20T19:28:16Z",
    "updated_at": "2023-02-22T19:28:16Z",
    "cvv_rotation_interval_hours": 72
}
```

### Erros

STATUS 4XX

Response Body

```json
{
  "title": "Bad Request",
  "description": "We're sorry, but the card could not be update password. Please try again later.",
  "translation": "Unexpected error update password card",
  "code": "CARD000024"
}
```

| Código    | Status code  | Descrição                      |
|:---------:|:------------:|:-------------------------------|
| QIT000001 | 400          | Invalid Json schema.|
| CARD000011| 404          | It was not possible to fetch the Card for the card_key \{card_key\}.|
| CARD000023| 406          | The card type is invalid for this operation. Only plastic cards are allowed.|
| CARD000024| 400          | We're sorry, but the card could not be update password. Please try again later.|
| CARD000025| 406          | The status \{status\} is invalid for the operation.|

---

# Simulação de cenários

URL: /documentation/cartao_pos_pago/cartao/atualizar/simulacao_de_cenarios

Esta página descreve como simular a atualização do status de rastreamento de cartões pós-pagos para testar o fluxo de atualizações de entrega. Essas simulações são úteis para homologação e testes de integração.

:::info Informação

Essas requisições simulam atualizações de status de rastreamento e retornam o status HTTP com os dados atualizados do rastreamento.

:::

## 1 - Simulação de atualização de status de rastreamento

Simula a atualização do status de rastreamento de um cartão pós-pago, permitindo transicionar entre diferentes estados do processo de entrega. A atualização cria um novo evento no histórico de rastreamento.

ENDPOINT /mock/wallet/ WALLET_KEY /card/ CARD_KEY /tracking

MÉTODO PATCH

### Path Parameters

| Campo                        | Tipo   | Descrição                                    | Caracteres |
|------------------------------|--------|----------------------------------------------|------------|
| `wallet_key` *               | string | Chave única da carteira no formato UUID v4  | 36         |
| `card_key` *                 | string | Chave única do cartão no formato UUID v4     | 36         |

Request Body

```json
{
  "status": "posted",
  "place": "São Paulo - SP",
  "description": "Postado - logística iniciada",
  "reason": "Processamento concluído"
}
```

### Objeto Request Body

| Campo                                    | Tipo    | Descrição                                                                          | Máx. Caract. |
|------------------------------------------|---------|------------------------------------------------------------------------------------|--------------|
| `status` *                               | string  | Novo status do rastreamento                                                        | **[Enumeradores status](#enumeradores-status)** |
| `place` *                                | string  | Local onde ocorreu o evento                                                       | 100          |
| `description` *                          | string  | Descrição do evento de rastreamento                                               | 255          |
| `reason`                                 | string  | Motivo adicional do evento (opcional)                                             | 100          |

### Enumeradores status

| Enumerador                  | Descrição                                                                         |
|-----------------------------|-----------------------------------------------------------------------------------|
| `pending`                   | Pendente - aguardando processamento inicial                                      |
| `posted`                    | Postado - logística iniciada                                                     |
| `prepared`                  | Preparado - cartão preparado para transferência                                  |
| `in_transfer`               | Em transferência - cartão em trânsito                                            |
| `in_delivery_unit`          | Na unidade de entrega - cartão chegou à unidade de distribuição                  |
| `on_route`                  | Em rota - cartão saiu para entrega                                               |
| `attempt_failed`            | Tentativa falhou - tentativa de entrega não foi bem-sucedida                    |
| `awaiting_withdrawal`       | Aguardando retirada - cartão disponível para retirada                            |
| `returning`                 | Retornando - cartão em processo de devolução                                     |
| `delivered`                 | Entregue - cartão foi entregue com sucesso                                       |
| `returned`                  | Devolvido - cartão foi devolvido                                                 |
| `canceled`                  | Cancelado - rastreamento foi cancelado                                           |
| `failed`                    | Falhou - falha no processo de entrega                                            |
| `resend`                    | Reenvio - cartão será reenviado                                                  |
| `redispatch_error`          | Erro no redespacho - erro ao redespachar o cartão                                |
| `waiting_for_address_update`| Aguardando atualização de endereço - aguardando confirmação de endereço          |

### Response

STATUS 204

Response Body

```json
{}
```

:::tip Comportamento
- A simulação atualiza o status do rastreamento e cria um novo evento no histórico
- As transições de status seguem uma ordem específica e validações são aplicadas:
  - Não é possível retroceder para status anteriores (exceto status especiais)
  - Não é possível alterar status a partir de status finais (`delivered`, `returned`, `canceled`, `failed`)
  - Não é possível transicionar de `waiting_for_address_update` para outro status que não seja `pending`
  - Não é possível transicionar para `waiting_for_address_update` a partir de status finais
  - Status especiais (`attempt_failed`, `resend`, `redispatch_error`) podem ser utilizados em qualquer momento após o status inicial
- O campo `reason` é opcional e, quando fornecido, é concatenado à descrição do evento
:::

---

# Buscar cartão por chave

URL: /documentation/cartao_pos_pago/cartao/busca/buscar_cartao_por_chave

## Request

ENDPOINT /wallet/ WALLET_KEY /card/ CARD_KEY
MÉTODO GET

### Path params

| Campo        | Tipo   | Descrição                         | Caracteres |
|--------------|--------|-----------------------------------|------------| 
| `WALLET_KEY` * | string | Chave de identificação do carteira. | uuid       |    
| `CARD_KEY` * | string | Chave de identificação do cartão. | uuid       |
 

## Response

STATUS 200

Response Body

```json
{
    "card_key": "05fd3654-1f5d-479d-ade5-64239fdf214d",
    "status": "active",
    "account_key": "3571e292-3a83-4011-904d-20ee963022ef",
    "program_key": "6b6ebaac-043b-4390-8d62-e8098ec901e9",
    "type": "virtual",
    "card_name": "ecommerce",
    "printed_name": "Aurora Catarina",
    "brand": "visa",
    "last_four_digits": "5695",
    "created_at": "2023-02-20T19:28:16Z",
    "updated_at": "2023-02-22T19:28:16Z",
    "cvv_rotation_interval_hours": 72
}
```

### Erros

STATUS 4XX

Response Body

```json
{
  "title": "Not Found",
  "description": "It was not possible to fetch the Card for the card_key f6bf148a-30b6-4a07-8c5b-3383a98ea32b.",
  "translation": "Not Found Card",
  "code": "CARD000011"
}
```

| Code      | Status code  | Descrição                      |
|:---------:|:------------:|:-------------------------------|
| CARD000011| 404          | It was not possible to fetch the Card for the card_key \{card_key\}.|
| CARD000016| 400          | We're sorry, but the card could not be fetch. Please try again later.|

---

# Buscar entrega por chave de cartão

URL: /documentation/cartao_pos_pago/cartao/busca/buscar_dados_entrega_por_chave

## Request

ENDPOINT /wallet/ WALLET_KEY /card/ CARD_KEY /tracking
MÉTODO GET

### Path params
| Campo        | Tipo   | Descrição                         | Caracteres |
|--------------|--------|-----------------------------------|------------|
| `WALLET_KEY` * | string | Chave de identificação do carteira. | uuid       |    
| `CARD_KEY` * | string | Chave de identificação do cartão. | uuid       |

## Response

STATUS 200

Response Body

```json
{
  "card_key": "92b4e2bd-4a6f-4c56-859e-17c729e1f0c8",
  "tracking_code": "4F68A72B902317",
  "status": "posted",
  "recipient": "João Silva",
  "address": {
    "zip_code": "1234567",
    "street": "Rua das Flores",
    "number": 123,
    "complement": "Bloco A",
    "neighborhood": "Centro",
    "city": "Cidade Exemplo",
    "state": "SP"
  },
  "event": [
    {
      "created_at": "2024-02-27T08:30:00Z",
      "old_status": "pending",
      "new_status": "posted",
      "description": "Pedido recebido e postado",
      "place": "SAO PAULO"
    }
  ]
}
```

### Enumeradores DeliveryStatus

| Enumerador         | Tradução            |
|--------------------|---------------------|
| pending            | Pendente            |
| posted             | Postado             |
| prepared           | Preparado           |
| in_transfer        | Em transferência    |
| in_delivery_unit   | Na unidade de entrega |
| on_route           | Em rota             |
| attempt_failed     | Tentativa falhou    |
| awaiting_withdrawal| Aguardando retirada |
| returning          | Retornando          |
| delivered          | Entregue            |
| returned           | Devolvido           |
| canceled           | Cancelado           |
| failed             | Falhou              |
| resend             | Reenviado           |

### Erros

STATUS 4XX

Response Body

```json
{
  "title": "Not Found",
  "description": "It was not possible to fetch the Tracking for the card_key f6bf148a-30b6-4a07-8c5b-3383a98ea32b.",
  "translation": "Not Found",
  "code": "TRACK000011"
}
```

| Code      | Status code  | Descrição                      |
|:---------:|:------------:|:-------------------------------|
| TRACK000011| 404          | It was not possible to fetch the Tracking for the card_key \{card_key\}.|
| TRACK000016| 400          | We're sorry, but the tracking could not be fetch. Please try again later.|

---

# Buscar dados PCI

URL: /documentation/cartao_pos_pago/cartao/busca/buscar_dados_pci

## Request

ENDPOINT /wallet/ WALLET_KEY /card/ CARD_KEY /pci
MÉTODO GET

### Path params

| Campo        | Tipo   | Descrição                         | Caracteres |
|--------------|--------|-----------------------------------|------------|  
| `WALLET_KEY` * | string | Chave de identificação do carteira. | uuid       |   
| `CARD_KEY` * | string | Chave de identificação do cartão. | uuid       |

## Response

STATUS 200

Response Body

```json
{
    "printed_name": "Aurora Catarina",
    "valid_until": "2023-02-20T10:04:12Z",
    "expiration_date": "03/24",
    "card_number": "4539347744299311",
    "cvv": "713"
}
```

### Erros

STATUS 4XX

Response Body

```json
{
  "title": "Not Found",
  "description": "It was not possible to fetch the Card for the card_key f6bf148a-30b6-4a07-8c5b-3383a98ea32b.",
  "translation": "Not Found Card",
  "code": "CARD000011"
}
```

| Code      | Status code  | Descrição                      |
|:---------:|:------------:|:-------------------------------|
| CARD000011| 404          | It was not possible to fetch the Card for the card_key \{card_key\}.|
| CARD000012| 400          | It was not possible to fetch PCI for the card_key \{card_key\}.|

---

# Buscar Senha PCI

URL: /documentation/cartao_pos_pago/cartao/busca/buscar_senha

## Request

ENDPOINT /wallet/ WALLET_KEY /card/ CARD_KEY /pci/password
MÉTODO GET

### Path params

| Campo        | Tipo   | Descrição                         | Caracteres |
|--------------|--------|-----------------------------------|------------| 
| `WALLET_KEY` * | string | Chave de identificação do carteira. | uuid       |    
| `CARD_KEY` * | string | Chave de identificação do cartão. | uuid       |

## Response

STATUS 200

Response Body

```json
{
    "pin": "1234"
}
```

### Erros

STATUS 4XX

Response Body

```json
{
  "title": "Bad Request",
  "description": "It was not possible to fetch PCI for the card_key f6bf148a-30b6-4a07-8c5b-3383a98ea32b.",
  "translation": "Fetch PCI failed",
  "code": "CARD000012"
}
```

| Code      | Status code  | Descrição                      |
|:---------:|:------------:|:-------------------------------|
| CARD000011| 404          | It was not possible to fetch the Card for the card_key \{card_key\}.|
| CARD000012| 400          | It was not possible to fetch PCI for the card_key \{card_key\}.|

---

# Ativar cartão físico

URL: /documentation/cartao_pos_pago/cartao/status/ativar_cartao

Todo cartão físico precisa ser ativado através de um código de ativação que é enviado junto do cartão físico, ao portador.

Ao receber o cartão por correspondência, o portador do cartão precisa informar ao parceiro da QI, para que o parceiro realize a ativação do cartão através deste endpoint.

:::caution Atenção
Por motivos de segurança, não existe a possibilidade de consulta do código de ativação via API por parte do parceiro.

Este código é enviado, exclusivamente ao portador do cartão, no momento da postagem do cartão físico.

Para realizar testes de integração, esse código é devolvido em ambiente de sandobox ao consultar um cartão.
:::

## Request

ENDPOINT /wallet/ WALLET_KEY /card/ CARD_KEY /activate
MÉTODO PATCH

### Path params
| Campo        | Tipo   | Descrição                         | Caracteres |
|--------------|--------|-----------------------------------|------------| 
| `WALLET_KEY` * | string | Chave de identificação do carteira. | uuid       |  
| `CARD_KEY` * | string | Chave de identificação do cartão. | uuid       |

Request Body

```json
{
    "code": "253615"
}
```

  ### Body params

| Campo     | Tipo   | Descrição                     | Caracteres |
|-----------|--------|-------------------------------|------------|
| `code`  * | string | Código de ativação do cartão. | 6          |

## Response

STATUS 200

Response Body

```json
{
    "card_key": "05fd3654-1f5d-479d-ade5-64239fdf214d",
    "status": "active",
    "account_key": "3571e292-3a83-4011-904d-20ee963022ef",
    "program_key": "6b6ebaac-043b-4390-8d62-e8098ec901e9",
    "type": "virtual",
    "card_name": "ecommerce",
    "printed_name": "Aurora Catarina",
    "brand": "visa",
    "last_four_digits": "5695",
    "created_at": "2023-02-20T19:28:16Z",
    "updated_at": "2023-02-22T19:28:16Z",
    "cvv_rotation_interval_hours": 72
}
```

### Erros

STATUS 4XX

Response Body

```json
{
  "title": "Not Acceptable",
  "description": "Invalid activation code [1254].",
  "translation": "Unable to activate card",
  "code": "CARD000020"
}
```

| Code      | Status code  | Description                    |
|:---------:|:------------:|:-------------------------------|
| QIT000001 | 400          | Invalid Json schema.|
| CARD000011| 404          | It was not possible to fetch the Card for the card_key \{card_key\}.|
| CARD000017| 406          | The activation operation is not valid for the current card status [\{card_status\}].|
| CARD000018| 400          | We're sorry, but the card could not be activate. Please try again later.|
| CARD000020| 406          | Invalid activation code [\{code\}].|
| CARD000023| 406          | The card type is invalid for this operation. Only plastic cards are allowed.|

---

# Atualizar status

URL: /documentation/cartao_pos_pago/cartao/status/atualizar_status_cartao

## Request

ENDPOINT /wallet/ WALLET_KEY /card/ CARD_KEY
MÉTODO PATCH

### Path params

| Campo        | Tipo   | Descrição                         | Caracteres |
|--------------|--------|-----------------------------------|------------| 
| `WALLET_KEY` * | string | Chave de identificação do carteira. | uuid       |   
| `CARD_KEY` * | string | Chave de identificação do cartão. | uuid       |

Request Body

```json
{
    "status": "blocked"
}
```

  ### Body params

| Campo       | Tipo   | Descrição         | Caracteres                                    |
|-------------|--------|-------------------|-----------------------------------------------|
| `status`  * | string | Status do cartão. | **[Enumeradores](#enumeradores-card_status)** |

### Enumeradores card_status
| Enumerador | Tradução            | Tipo            |
|------------|---------------------|-----------------|
| created    | Criação solicitada  | Initial         |
| building   | Em construção       | Initial         |
| active     | Apto a transacionar | Active          |
| embossing  | Em produção         | Temporary block |
| blocked    | Bloqueado           | Temporary block |
| warning    | Com suspeita        | Temporary block |
| pending    | Pendente            | Temporary block |
| lost       | Perdido             | Terminated      |
| robbed     | Roubado             | Terminated      |
| fraud      | Fraudado            | Terminated      |
| canceled   | Cancelado           | Terminated      |
| theft      | Furtado             | Terminated      |

### Erros

STATUS 4XX

Response Body

```json
{
  "title": "Not Acceptable",
  "description": "The operation is not valid for the current status of the card [canceled]",
  "translation": "Unable to transition",
  "code": "CARD000014"
}
```

| Code      | Status code  | Descrição                      |
|:---------:|:------------:|:-------------------------------|
| QIT000001 | 400          | Invalid Json schema.|
| CARD000011| 404          | It was not possible to fetch the Card for the card_key \{card_key\}.|
| CARD000013| 406          | Unable to transition from \{old_status\} to \{new_status\}.|
| CARD000014| 406          | The operation is not valid for the current status of the card [\{card_status\}].|
| CARD000015| 400          | We're sorry, but the card could not be update. Please try again later|

### Webhook

WEBHOOK_TYPE baas.pospaid_card.card

Webhook Body

```json
{
    "webhook_type": "baas.pospaid_card.card",
    "event_datetime": "2023-07-25T12:00:00.000Z",
    "data": {
        "card_key": "9bd93e97-bb6d-410f-8981-06b2765f12a1",
        "type": "virtual",
        "status": "active",
        "old_status": "created"
    }
}
```

---

# Alteração de Limite de Carteira

URL: /documentation/cartao_pos_pago/faturas/carteira/alteracao_de_limite

A alteração de limite de carteira permite alterar o valor do limite de crédito pós-pago de uma carteira existente.

## Request

ENDPOINT /wallet/ WALLET_KEY /wallet_limit/ WALLET_LIMIT_KEY
MÉTODO PATCH

### Path Parameters

| Campo                        | Tipo   | Descrição                                    | Caracteres |
|------------------------------|--------|----------------------------------------------|------------|
| `wallet_key` *               | uuidv4 | Chave única da carteira no formato UUID v4  | 36         |
| `wallet_limit_key` *         | uuidv4 | Chave única do limite de carteira no formato UUID v4 | 36 |

Request Body

```json
{
  "limit_amount": 10000.00
}
```

### Request Body Params

| Campo                        | Tipo    | Descrição                                                                          | Caracteres |
|------------------------------|---------|------------------------------------------------------------------------------------|------------|
| `limit_amount` *             | float   | Novo valor do limite de crédito pós-pago                                          | -          |

:::info Observação
- O novo valor do limite deve ser maior ou igual ao limite utilizado (`used_limit`)
- Apenas limites do tipo `postpaid_credit_limit` podem ser atualizados
- Apenas carteiras do tipo `default` podem ter seus limites atualizados
- A atualização do limite também atualiza o limite no serviço de cartões
:::

## Response

STATUS 200

Response Body: Limite de carteira atualizado

```json
{
  "wallet_limit_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "limit_type": "postpaid_credit_limit",
  "limit_amount": 10000.00,
  "used_limit": 2500.00
}
```

### Response Body Params

| Campo                            | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------------|---------|------------------------------------------------------------------------------------|------------|
| `wallet_limit_key` *             | uuidv4  | Chave única de identificação do limite atualizado no formato UUID v4              | 36         |
| `limit_type` *                   | string  | Tipo do limite atualizado                                                          | **[Enumeradores limit_type](#enumeradores-limit_type)** |
| `limit_amount` *                 | float   | Novo valor do limite de crédito pós-pago após a atualização                        | -          |
| `used_limit` *                   | float   | Valor do limite utilizado no momento da atualização                                 | -          |

### Enumeradores limit_type

| Enumerador              | Descrição                               |
|-------------------------|-----------------------------------------|
| postpaid_credit_limit   | Limite de crédito pós-pago             |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | CIN000110            | Bad Request                                        | New limit amount is less than used limit                                                                                 | Novo valor do limite é menor que o valor utilizado                                                                     |
| 400                      | CIN000111            | Bad Request                                        | Error while updating postpaid wallet limit in card service, try again in a few minutes.                                  | Erro ao atualizar limite de carteira pós-pago no serviço de cartão, tente novamente em alguns minutos.                |
| 400                      | CIN000112            | Bad Request                                        | Requester postpaid limit exceeded for this client                                                                        | Limite das carteiras pós-pagas do cliente excedido                                                                     |
| 403                      | CIN000108            | Forbidden                                          | Wallet type payroll is not allowed for this operation                                                              | Tipo de carteira payroll não é permitido para esta operação                                                       |
| 403                      | CIN000109            | Forbidden                                          | Wallet limit type payroll_withdraw_limit is not allowed for this operation                                                  | Tipo de limite de carteira payroll_withdraw_limit não é permitido para esta operação                                       |
| 404                      | CIN000007            | Wallet not Found                                   | Wallet with key: e91d68d4-2904-4f9d-a6ef-50c82c34531e was not found                                                                              | Carteira com a chave: e91d68d4-2904-4f9d-a6ef-50c82c34531e não foi encontrado                                                                 |
| 404                      | CIN000107            | Not Found                                          | Wallet limit not found                                                                                                    | Limite de carteira não foi encontrado                                                                                   |

---

# Buscar Entrada de Carteira por Chave

URL: /documentation/cartao_pos_pago/faturas/carteira/consulta_entrada_por_chave

A busca de entrada de carteira por chave retornará os detalhes completos de uma entrada específica, incluindo todos os itens da fatura relacionados.

## Request

ENDPOINT /wallet/ WALLET_KEY /wallet_entry/ WALLET_ENTRY_KEY
MÉTODO GET

### Path Parameters

| Campo             | Tipo   | Descrição                                    | Caracteres |
|-------------------|--------|----------------------------------------------|------------|
| `wallet_key`      | uuidv4 | Chave única da carteira no formato UUID v4  | 36         |
| `wallet_entry_key`| uuidv4 | Chave única da entrada no formato UUID v4    | 36         |

## Response

STATUS 200

Response Body: Detalhes da entrada de carteira

```json
{
  "wallet_entry_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "wallet_entry_amount": 150.00,
  "wallet_entry_settlement_key": "cc8fb19b-d1e4-4ce6-ad4c-61e0609a8f8d",
  "wallet_entry_type": "revolving_credit",
  "wallet_entry_status": "concluded",
  "invoice_items": [
    {
      "invoice_item_key": "3571e292-3a83-4011-904d-20ee963022ef",
      "invoice_key": "f2cad6b4-2a68-9572-99a7-2849c8d6ecf8",
      "wallet_entry_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "payment_instrument_entry_key": null,
      "installment_number": 1,
      "invoice_description": "Crédito rotativo - Taxa de juros",
      "amount": 150.00,
      "used_limit": 150.00,
      "invoice_item_status": "concluded",
      "invoice_item_due_date": "2024-02-15",
      "created_at": "2024-01-15T10:30:00Z"
    }
  ],
  "created_at": "2024-01-15T10:30:00Z"
}
```

### Response Body Params

| Campo                        | Tipo         | Descrição                             | Caracteres                                  |
|------------------------------|--------------|---------------------------------------|---------------------------------------------|
| `wallet_entry_key` *         | uuidv4       | Chave única de identificação da entrada no formato uuid v4 | 36         |
| `wallet_entry_amount` *      | float  | Valor da entrada                                                                  | -          |
| `wallet_entry_settlement_key` * | string    | Chave de liquidação da entrada        | -          |
| `wallet_entry_type` *        | string       | Tipo da entrada da carteira           | **[Enumeradores wallet_entry_type](#enumeradores-wallet_entry_type)** |
| `wallet_entry_status` *      | string       | Status da entrada da carteira          | **[Enumeradores wallet_entry_status](#enumeradores-wallet_entry_status)** |
| `invoice_items` *            | object array | Itens da fatura relacionados          | **[Objeto invoice_item](#objeto-invoice_item)** |
| `created_at` *               | string       | Data de criação (formato ISO 8601 UTC) | -          |

### Objeto invoice_item

| Campo                              | Tipo    | Descrição                                                                         | Caracteres |
|------------------------------------|---------|-----------------------------------------------------------------------------------|------------|
| `invoice_item_key` *               | uuidv4  | Chave única de identificação do item da fatura no formato uuid v4                | 36         |
| `invoice_key` *                    | uuidv4  | Chave única de identificação da fatura no formato uuid v4                        | 36         |
| `wallet_entry_key`                 | uuidv4  | Chave única de identificação da entrada da carteira no formato uuid v4          | 36         |
| `payment_instrument_entry_key`     | uuidv4  | Chave única de identificação da entrada do instrumento de pagamento no formato uuid v4 | 36 |
| `installment_number` *             | integer | Número da parcela                                                                 | -          |
| `invoice_description` *            | string  | Descrição do item da fatura                                                       | -          |
| `amount` *                         | float  | Valor do item                                                                     | -          |
| `used_limit` *                     | float  | Limite utilizado                                                                 | -          |
| `invoice_item_status` *            | string  | Status do item da fatura                                                          | **[Enumeradores invoice_item_status](#enumeradores-invoice_item_status)** |
| `invoice_item_due_date` *          | string  | Data de vencimento do item (formato YYYY-MM-DD)                                  | 10         |
| `created_at` *                     | string  | Data de criação (formato ISO 8601 UTC)                                           | -          |

### Enumeradores wallet_entry_type

| Enumerador        | Descrição                                                                         |
|-------------------|-----------------------------------------------------------------------------------|
| revolving_credit  | Crédito rotativo                                                                  |
| payroll_withdraw  | Saque de folha                                                                    |
| payroll_overdue   | Atraso de folha                                                                   |

:::info Tipos de Entrada de Carteira
- **`revolving_credit`**: Valores de crédito disponibilizados para o cliente
- **`payroll_withdraw`**: Dívida gerada pelo saque do limite e que vai ser descontada todo mês do INSS
- **`payroll_overdue`**: Dívida gerada pelo não pagamento da fatura e também vai ser descontada todo mês do INSS
:::

### Enumeradores wallet_entry_status

| Enumerador | Descrição                               |
|------------|-----------------------------------------|
| concluded     | Entrada concluída |

### Enumeradores invoice_item_status

| Enumerador | Descrição                               |
|------------|-----------------------------------------|
| concluded    | Item concluído   |
| canceled  | Item cancelado               |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 404                      | CIN000007            | Wallet not Found                                   | Wallet with key: abeca0d0-a09d-4b3b-a495-40b553422ced was not found                                                   | Carteira com a chave: abeca0d0-a09d-4b3b-a495-40b553422ced não foi encontrado                                         |
| 404                      | CIN000078            | Not Found                                          | Wallet entry with key: 8cb70dea-9fb0-4a68-9572-99a72849c8d6 was not found                                             | Dívida da carteira com a chave: 8cb70dea-9fb0-4a68-9572-99a72849c8d6 não foi encontrado                                |

---

# Consulta de Carteira por Chave

URL: /documentation/cartao_pos_pago/faturas/carteira/consulta_por_chave

A consulta de carteira por chave retorna os detalhes completos de uma carteira específica, incluindo suas configurações de fatura e limites de crédito.

## Request

ENDPOINT /wallet/ WALLET_KEY
MÉTODO GET

### Path Parameters

| Campo                     | Tipo   | Descrição                                    | Caracteres |
|---------------------------|--------|----------------------------------------------|------------|
| `wallet_key`              | uuidv4 | Chave única de identificação da carteira     | 36         |

## Response

STATUS 200

Response Body: Detalhes da carteira

```json
{
  "request_control_key": "f7947b9d-9be3-49d8-aca2-4b3249e5fa65",
  "wallet_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "owner_person_key": "ecf87b4b-fa6e-49c0-a7f0-f2cad6b42d79",
  "owner_document_number": "12345678901",
  "invoice_configuration": {
    "closing_date_configuration": {
      "type": "fixed",
      "fixed_day": 15
    },
    "due_date_configuration": {
      "type": "fixed",
      "fixed_day": 20,
      "offset_months": 0
    },
    "invoice_payment_type": "bank_slip",
    "interest_base": "calendar_days",
    "monthly_interest_percentage": 2.0,
    "fine_percentage": 2.0
  },
  "wallet_status": "active",
  "wallet_type": "default",
  "wallet_limits": [
    {
      "wallet_limit_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "limit_type": "postpaid_credit_limit",
      "limit_amount": 5000.00,
      "used_limit": 0.00
    }
  ],
  "created_at": "2024-01-15T10:30:00Z"
}
```

### Response Body Params

| Campo                                    | Tipo    | Descrição                                                                          | Caracteres |
|------------------------------------------|---------|------------------------------------------------------------------------------------|------------|
| `wallet_key` *                           | string  | Chave única de identificação da carteira                                          | 36         |
| `owner_person_key` *                     | string  | Chave de identificação do proprietário da carteira                                | 36      |
| `owner_document_number` *                | string  | CPF/CNPJ do proprietário da carteira                                              | 11-14      |
| `invoice_configuration` *                | object  | Configurações de fatura da carteira                                                | **[Objeto invoice_configuration](#objeto-invoice_configuration)**          |
| `wallet_status` *                         | string  | Status atual da carteira                                                           | **[Enumeradores wallet_status](#enumeradores-wallet_status)**          |
| `wallet_type` *                           | string  | Tipo da carteira                                                                   | **[Enumeradores wallet_type](#enumeradores-wallet_type)**          |
| `wallet_limits` *                         | array   | Lista de limites da carteira                                                       | **[Objeto wallet_limits](#objeto-wallet_limits)**          |
| `created_at` *                            | string  | Data de criação (formato ISO 8601 UTC)                                            | -          |

### Objeto invoice_configuration

| Campo                                    | Tipo    | Descrição                                                                          | Caracteres |
|------------------------------------------|---------|------------------------------------------------------------------------------------|------------|
| `closing_date_configuration` *           | object  | Configuração da data de fechamento da fatura                                      | **[Objeto closing_date_configuration](#objeto-closing_date_configuration)** |
| `due_date_configuration` *               | object  | Configuração da data de vencimento da fatura                                      | **[Objeto due_date_configuration](#objeto-due_date_configuration)** |
| `invoice_payment_type` *                 | string  | Tipo de pagamento da fatura                                                       | **[Enumeradores invoice_payment_type](#enumeradores-invoice_payment_type)** |
| `interest_base`                         | string  | Base de cálculo dos juros                                                         | **[Enumeradores interest_base](#enumeradores-interest_base)** |
| `monthly_interest_percentage`           | float  | Percentual de juros mensais por atraso (0-100)                                    | -          |
| `fine_percentage`                       | float  | Percentual de multa por atraso (0-100)                                            | -          |
:::info
Nota Carteiras do tipo `payroll` não possuem os campos `interest_base`, `monthly_interest_percentage` e `fine_percentage`.
:::

### Objeto closing_date_configuration

#### Configuração Fixa (`type: "fixed"`)

| Campo                     | Tipo    | Descrição                                    | Caracteres |
|---------------------------|---------|----------------------------------------------|------------|
| `type` *                  | string  | Tipo de configuração (deve ser "fixed")      | -          |
| `fixed_day` *             | integer | Dia fixo do mês para fechamento (1-27)       | -          |

#### Configuração Baseada em Regras (`type: "rule_based"`)

| Campo                     | Tipo    | Descrição                                    | Caracteres |
|---------------------------|---------|----------------------------------------------|------------|
| `type` *                  | string  | Tipo de configuração (deve ser "rule_based") | -          |
| `rule` *                  | object  | Regra para cálculo da data                     | **[Objeto rule (closing_date_configuration)](#objeto-rule-closing_date_configuration)**          |

### Objeto rule (closing_date_configuration)

| Campo                     | Tipo    | Descrição                                    | Caracteres |
|---------------------------|---------|----------------------------------------------|------------|
| `day_of_week` *          | string  | Dia da semana                                | **[Enumeradores day_of_week](#enumeradores-day_of_week)**          |
| `occurrence` *            | string  | Ocorrência do dia no mês                      | **[Enumeradores occurrence](#enumeradores-occurrence)**          |
| `fallback_strategy` *     | string  | Estratégia para dias não úteis                | **[Enumeradores fallback_strategy](#enumeradores-fallback_strategy)**          |

### Objeto due_date_configuration

#### Configuração Fixa (`type: "fixed"`)

| Campo                     | Tipo    | Descrição                                    | Caracteres |
|---------------------------|---------|----------------------------------------------|------------|
| `type` *                  | string  | Tipo de configuração (deve ser "fixed")      | -          |
| `offset_months` *         | integer | Meses de offset a partir do fechamento       | -          |
| `fixed_day` *             | integer | Dia fixo do mês para vencimento (2-27)       | -          |

#### Configuração Baseada em Regras (`type: "rule_based"`)

| Campo                     | Tipo    | Descrição                                    | Caracteres |
|---------------------------|---------|----------------------------------------------|------------|
| `type` *                  | string  | Tipo de configuração (deve ser "rule_based") | -          |
| `offset_months` *         | integer | Meses de offset a partir do fechamento       | -          |
| `rule` *                  | object  | Regra para cálculo da data                     | **[Objeto rule (due_date_configuration)](#objeto-rule-due_date_configuration)**          |

### Objeto rule (due_date_configuration)

| Campo                     | Tipo    | Descrição                                    | Caracteres |
|---------------------------|---------|----------------------------------------------|------------|
| `day_of_week` *          | string  | Dia da semana                                | **[Enumeradores day_of_week](#enumeradores-day_of_week)**          |
| `occurrence` *            | string  | Ocorrência do dia no mês                      | **[Enumeradores occurrence](#enumeradores-occurrence)**          |
| `fallback_strategy` *     | string  | Estratégia para dias não úteis                | **[Enumeradores fallback_strategy](#enumeradores-fallback_strategy)**          |

### Objeto wallet_limits

| Campo                     | Tipo    | Descrição                                    | Caracteres |
|---------------------------|---------|----------------------------------------------|------------|
| `limit_type` *            | string  | Tipo do limite                               | **[Enumeradores limit_type](#enumeradores-limit_type)**          |
| `limit_amount` *          | float  | Valor total do limite                         | -          |
| `used_limit` *            | float  | Valor utilizado do limite                     | -          |

### Enumeradores wallet_status

| Enumerador         | Descrição                               |
|--------------------|-----------------------------------------|
| pending_analysis   | Carteira pendente de análise KYC        |
| active             | Carteira ativa e disponível para uso    |
| rejected           | Carteira rejeitada                      |

### Enumeradores wallet_type

| Enumerador | Descrição                    |
|-------------|------------------------------|
| default     | Carteira padrão              |
| payroll     | Carteira para cartão consignao |

### Enumeradores limit_type

| Enumerador                | Descrição                    |
|---------------------------|------------------------------|
| postpaid_credit_limit     | Limite de crédito pós-pago   |
| payroll_withdraw_limit    | Limite para saque de folha de pagamento (salário/consignado) |

:::info Limites em Carteiras Payroll
Carteiras do tipo `payroll` possuem dois limites distintos:
- **`postpaid_credit_limit`**: Limite de crédito pós-pago para compras e transações com o cartão
- **`payroll_withdraw_limit`**: Limite específico para saques de folha de pagamento (salário/consignado), que são descontados automaticamente na folha de pagamento do cliente
:::

### Enumeradores day_of_week

| Enumerador | Descrição |
|-------------|-----------|
| monday     | Segunda-feira |
| tuesday    | Terça-feira |
| wednesday  | Quarta-feira |
| thursday   | Quinta-feira |
| friday     | Sexta-feira |
| saturday   | Sábado |
| sunday     | Domingo |

### Enumeradores occurrence

| Enumerador | Descrição |
|-------------|-----------|
| first      | Primeira ocorrência |
| second     | Segunda ocorrência |
| third      | Terceira ocorrência |
| fourth     | Quarta ocorrência |
| last       | Última ocorrência |

### Enumeradores fallback_strategy

| Enumerador           | Descrição                    |
|----------------------|------------------------------|
| next_business_day    | Próximo dia útil             |
| previous_business_day| Dia útil anterior            |
| same_day             | Mesmo dia                    |

### Enumeradores invoice_payment_type

| Enumerador | Descrição      |
|-------------|----------------|
| bank_slip  | Boleto bancário |

### Enumeradores interest_base

| Enumerador      | Descrição        |
|-----------------|------------------|
| calendar_days   | Dias corridos    |

### Objeto wallet_limits

| Campo                     | Tipo    | Descrição                                    | Caracteres |
|---------------------------|---------|----------------------------------------------|------------|
| `wallet_limit_key` *             | uuidv4  | Chave única de identificação do limite atualizado no formato UUID v4              | 36         |
| `limit_type` *            | string  | Tipo do limite                               | **[Enumeradores limit_type](#enumeradores-limit_type)**          |
| `limit_amount` *          | float  | Valor total do limite                         | -          |
| `used_limit` *            | float  | Valor utilizado do limite                     | -          |

### Enumeradores limit_type

| Enumerador                | Descrição                    |
|---------------------------|------------------------------|
| postpaid_credit_limit     | Limite de crédito pós-pago   |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 404                      | WLT000001            | Wallet Not Found                                   | Wallet with key 8cb70dea-9fb0-4a68-9572-99a72849c8d6 not found                                                                                  | Carteira com chave 8cb70dea-9fb0-4a68-9572-99a72849c8d6 não encontrada                                                                          |

---

# Criação de Carteira (Wallet)

URL: /documentation/cartao_pos_pago/faturas/carteira/criacao_de_carteira

A criação de carteira (wallet) permite registrar uma nova carteira de crédito para uma pessoa física ou jurídica.

:::info O que é uma Wallet
A **wallet** representa a fatura de um cliente e funciona como um centralizador para gerenciar múltiplos meios de pagamento atrelados. É importante entender que:

- **Uma wallet = fatura**: Cada carteira corresponde à fatura de um cliente específico (identificado por CPF/CNPJ)
- **Múltiplos meios de pagamento**: A mesma wallet pode ter diferentes instrumentos de pagamento (cartões, PIX, etc.)
- **Instrumentos separados**: Após criar a wallet, será necessário criar separadamente os instrumentos de pagamento (cartões de crédito, limites, etc.)
- **Gestão centralizada**: A wallet centraliza todas as operações e configurações relacionadas àquele cliente
:::

## Request

ENDPOINT /wallet
MÉTODO POST

Request Body

```json
{
  "owner": {
    "request_control_key": "f7947b9d-9be3-49d8-aca2-4b3249e5fa65",
    "person_type": "natural",
    "name": "João Silva",
    "document_number": "12345678901",
    "birthdate": "1990-01-01",
    "email": "joao.silva@email.com",
    "phone": {
      "number": "99999999",
      "area_code": "11",
      "country_code": "55"
    },
    "address": {
      "street": "Rua das Flores",
      "number": "123",
      "neighborhood": "Centro",
      "postal_code": "01234567",
      "city": "São Paulo",
      "state": "SP",
      "complement": "Apto 1"
    }
  },
  "invoice_configuration": {
    "closing_date_configuration": {
      "type": "fixed",
      "fixed_day": 15
    },
    "due_date_configuration": {
      "type": "fixed",
      "fixed_day": 20,
      "offset_months": 0
    },
    "invoice_payment_type": "bank_slip",
    "interest_base": "calendar_days",
    "monthly_interest_percentage": 2.0,
    "fine_percentage": 2.0
  },
  "limits": {
    "postpaid_credit_limit": 5000.00
  }
}
```

### Request Body Params

| Campo                                    | Tipo    | Descrição                                                                          | Caracteres |
|------------------------------------------|---------|------------------------------------------------------------------------------------|------------|
| `request_control_key`    | uuidv4     | Chave única de identificação da request utilizada pelo cliente.                                            | 36                                                                          |
| `owner`                                  | object  | Dados do proprietário da carteira (pessoa física ou jurídica)                     | **[Objeto owner](#objeto-owner)** |
| `person_key`                             | string  | Chave única de identificação da pessoa no formato UUID v4                         | 36         |
| `invoice_configuration` *                | object  | Configuração de fechamento e vencimento de faturas                                | **[Objeto invoice_configuration](#objeto-invoice_configuration)** |
| `limits` *                               | object  | Limites de crédito da carteira                                                     | **[Objeto limits](#objeto-limits)** |

:::info Campos Condicionais
- **`owner`**: Obrigatório quando não for enviado `person_key`
- **`person_key`**: Obrigatório quando não for enviado `owner`
- Os campos são mutuamente exclusivos
:::

### Objeto owner

#### Pessoa Física (`person_type: "natural"`)

| Campo                     | Tipo   | Descrição                                    | Caracteres |
|---------------------------|--------|----------------------------------------------|------------|
| `person_type` *           | string | Tipo da pessoa (deve ser "natural")          | -          |
| `name` *                  | string | Nome completo da pessoa                       | 100        |
| `document_number` *       | string | CPF da pessoa (apenas números)               | 11         |
| `birthdate` *             | string | Data de nascimento (formato YYYY-MM-DD)      | 10         |
| `email` *                 | string | E-mail de contato                            | 254        |
| `phone` *                 | object | Telefone de contato                          | **[Objeto phone](#objeto-phone)** |
| `address` *               | object | Endereço completo                            | **[Objeto address](#objeto-address)** |

#### Pessoa Jurídica (`person_type: "legal"`)

| Campo                     | Tipo   | Descrição                                    | Caracteres |
|---------------------------|--------|----------------------------------------------|------------|
| `person_type` *           | string | Tipo da pessoa (deve ser "legal")            | -          |
| `name` *                  | string | Razão social da empresa                      | 100        |
| `trading_name` *          | string | Nome fantasia da empresa                     | 100        |
| `document_number` *       | string | CNPJ da empresa (apenas números)            | 14         |
| `foundation_date` *       | string | Data de fundação (formato YYYY-MM-DD)       | 10         |
| `email` *                 | string | E-mail de contato                            | 254        |
| `phone` *                 | object | Telefone de contato                          | **[Objeto phone](#objeto-phone)** |
| `address` *               | object | Endereço completo                            | **[Objeto address](#objeto-address)** |
| `legal_representatives` * | array  | Lista de representantes legais (pessoas físicas)               | -          |

### Objeto phone

| Campo                     | Tipo   | Descrição                                    | Caracteres |
|---------------------------|--------|----------------------------------------------|------------|
| `country_code` *          | string | Código do país (DDI)                         | 2-3        |
| `area_code` *             | string | Código de área (DDD)                         | 2          |
| `number` *                | string | Número do telefone                           | 8-9        |

### Objeto address

| Campo                     | Tipo   | Descrição                                    | Caracteres |
|---------------------------|--------|----------------------------------------------|------------|
| `street` *                | string | Nome da rua/avenida                          | 500        |
| `number` *                | string | Número do endereço                           | 10         |
| `neighborhood` *          | string | Bairro                                       | 100        |
| `postal_code` *           | string | CEP (apenas números)                         | 8          |
| `city` *                  | string | Cidade                                       | 100        |
| `state` *                 | string | Estado (UF)                                  | **[Enumeradores state](#enumeradores-state)** |
| `complement`              | string | Complemento do endereço                      | 500        |

### Enumeradores state

| Enumerador | Descrição      |
|-------------|----------------|
| AC          | Acre           |
| AL          | Alagoas        |
| AM          | Amazonas       |
| AP          | Amapá          |
| BA          | Bahia          |
| CE          | Ceará          |
| DF          | Distrito Federal |
| ES          | Espírito Santo |
| GO          | Goiás          |
| MA          | Maranhão       |
| MG          | Minas Gerais    |
| MS          | Mato Grosso do Sul |
| MT          | Mato Grosso    |
| PA          | Pará           |
| PB          | Paraíba        |
| PE          | Pernambuco     |
| PI          | Piauí          |
| PR          | Paraná         |
| RJ          | Rio de Janeiro |
| RN          | Rio Grande do Norte |
| RO          | Rondônia       |
| RR          | Roraima        |
| RS          | Rio Grande do Sul |
| SC          | Santa Catarina |
| SE          | Sergipe        |
| SP          | São Paulo      |
| TO          | Tocantins      |
| EX          | Exceção        |

### Objeto invoice_configuration

| Campo                                    | Tipo    | Descrição                                                                          | Caracteres |
|------------------------------------------|---------|------------------------------------------------------------------------------------|------------|
| `closing_date_configuration` *           | object  | Configuração da data de fechamento da fatura                                      | **[Objeto closing_date_configuration](#objeto-closing_date_configuration)** |
| `due_date_configuration` *               | object  | Configuração da data de vencimento da fatura                                      | **[Objeto due_date_configuration](#objeto-due_date_configuration)** |
| `invoice_payment_type` *                 | string  | Tipo de pagamento da fatura                                                       | **[Enumeradores invoice_payment_type](#enumeradores-invoice_payment_type)** |
| `interest_base` *                        | string  | Base de cálculo dos juros                                                         | **[Enumeradores interest_base](#enumeradores-interest_base)** |
| `monthly_interest_percentage` *          | float  | Percentual de juros mensais por atraso (0-100)                                    | -          |
| `fine_percentage` *                      | float  | Percentual de multa por atraso (0-100)                                            | -          |

### Objeto closing_date_configuration

#### Configuração Fixa (`type: "fixed"`)

| Campo                     | Tipo    | Descrição                                    | Caracteres |
|---------------------------|---------|----------------------------------------------|------------|
| `type` *                  | string  | Tipo de configuração (deve ser "fixed")      | -          |
| `fixed_day` *             | integer | Dia fixo do mês para fechamento (1-27)       | -          |

#### Configuração Baseada em Regras (`type: "rule_based"`)

| Campo                     | Tipo    | Descrição                                    | Caracteres |
|---------------------------|---------|----------------------------------------------|------------|
| `type` *                  | string  | Tipo de configuração (deve ser "rule_based") | -          |
| `rule` *                  | object  | Regra para cálculo da data                     | **[Objeto rule (closing_date_configuration)](#objeto-closing_date_configuration)**          |

### Objeto rule (closing_date_configuration)

| Campo                     | Tipo    | Descrição                                    | Caracteres |
|---------------------------|---------|----------------------------------------------|------------|
| `day_of_week` *          | string  | Dia da semana                                | **[Enumeradores day_of_week](#enumeradores-day_of_week)**          |
| `occurrence` *            | string  | Ocorrência do dia no mês                      | **[Enumeradores occurrence](#enumeradores-occurrence)**          |
| `fallback_strategy` *     | string  | Estratégia para dias não úteis                | **[Enumeradores fallback_strategy](#enumeradores-fallback_strategy)**          |

### Objeto due_date_configuration

#### Configuração Fixa (`type: "fixed"`)

| Campo                     | Tipo    | Descrição                                    | Caracteres |
|---------------------------|---------|----------------------------------------------|------------|
| `type` *                  | string  | Tipo de configuração (deve ser "fixed")      | -          |
| `offset_months` *         | integer | Meses de offset a partir do fechamento       | -          |
| `fixed_day` *             | integer | Dia fixo do mês para vencimento (2-27)       | -          |

#### Configuração Baseada em Regras (`type: "rule_based"`)

| Campo                     | Tipo    | Descrição                                    | Caracteres |
|---------------------------|---------|----------------------------------------------|------------|
| `type` *                  | string  | Tipo de configuração (deve ser "rule_based") | -          |
| `offset_months` *         | integer | Meses de offset a partir do fechamento       | -          |
| `rule` *                  | object  | Regra para cálculo da data                     | **[Objeto rule (closing_date_configuration)](#objeto-due_date_configuration)**          |

### Objeto rule (due_date_configuration)

| Campo                     | Tipo    | Descrição                                    | Caracteres |
|---------------------------|---------|----------------------------------------------|------------|
| `day_of_week` *          | string  | Dia da semana                                | **[Enumeradores day_of_week](#enumeradores-day_of_week)**          |
| `occurrence` *            | string  | Ocorrência do dia no mês                      | **[Enumeradores occurrence](#enumeradores-occurrence)**          |
| `fallback_strategy` *     | string  | Estratégia para dias não úteis                | **[Enumeradores fallback_strategy](#enumeradores-fallback_strategy)**          |

:::caution Validações de Data
- A data de vencimento deve ser pelo menos 2 dia após a data de fechamento
- Para configurações baseadas em regras, deve existir ao menos um dia de diferença entre os dias da semana escolhidos para fechamento e vencimento (ex: fechamento na segunda-feira e vencimento na quarta-feira de qualquer semana)
:::

### Enumeradores day_of_week

| Enumerador | Descrição |
|-------------|-----------|
| monday     | Segunda-feira |
| tuesday    | Terça-feira |
| wednesday  | Quarta-feira |
| thursday   | Quinta-feira |
| friday     | Sexta-feira |
| saturday   | Sábado |
| sunday     | Domingo |

### Enumeradores occurrence

| Enumerador | Descrição |
|-------------|-----------|
| first      | Primeira ocorrência |
| second     | Segunda ocorrência |
| third      | Terceira ocorrência |
| fourth     | Quarta ocorrência |
| last       | Última ocorrência |

### Enumeradores fallback_strategy

| Enumerador           | Descrição                    |
|----------------------|------------------------------|
| next_business_day    | Próximo dia útil             |
| previous_business_day| Dia útil anterior            |
| same_day             | Mesmo dia                    |

### Enumeradores invoice_payment_type

| Enumerador | Descrição      |
|-------------|----------------|
| bank_slip  | Boleto bancário |

### Enumeradores interest_base

| Enumerador      | Descrição        |
|-----------------|------------------|
| calendar_days   | Dias corridos    |

### Objeto limits

| Campo                     | Tipo    | Descrição                                    | Caracteres |
|---------------------------|---------|----------------------------------------------|------------|
| `postpaid_credit_limit` * | float  | Limite para crédito pós-pago                 | -          |

## Response

### Sucesso - Carteira Criada com Análise Pendente

STATUS 202

Response Body: Carteira pendente de análise

```json
{
  "wallet_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "owner_person_key": null,
  "wallet_status": "pending_analysis"
}
```

:::info Informação
Caso seja retornado **HTTP Status 202** com o campo `wallet_status` com valor `pending_analysis`, a criação será processada assincronamente.
Posteriormente será enviado posteriormente um webhook informando se a carteira foi aprovada ou rejeitada na análise KYC. Para mais detalhes sobre webhooks, consulte a [documentação de webhooks](/documentation/cartao_pos_pago/faturas/webhooks/carteira)
:::

:::note Observação
Para casos que requerem análise KYC, o campo `owner_person_key` será retornado como `null` na resposta inicial. A pessoa titular da carteira só será criada no sistema ao final do processo de KYC, caso seja aprovada. Neste caso, a chave da pessoa será enviada posteriormente através do webhook de aprovação, consulte a [documentação de webhooks](/documentation/cartao_pos_pago/faturas/webhooks/carteira)
:::

### Sucesso - Carteira Criada Ativa

STATUS 201

Response Body: Carteira ativa

```json
{
  "wallet_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "owner_person_key": "ecf87b4b-fa6e-49c0-a7f0-f2cad6b42d79",
  "wallet_status": "active"
}
```

### Response Body Params

| Campo                   | Tipo   | Descrição                                                                         | Caracteres |
|-------------------------|--------|-----------------------------------------------------------------------------------|------------|
| `wallet_key` *          | uuidv4 | Chave única de identificação da carteira no formato uuid v4                      | 36         |
| `owner_person_key` *    | string | Chave de identificação do proprietário da carteira                               | 36      |
| `wallet_status` *       | string | Status da carteira                                                               | -          |

### Enumeradores wallet_status

| Enumerador         | Descrição                               |
|--------------------|-----------------------------------------|
| pending_analysis   | Carteira pendente de análise KYC        |
| active             | Carteira ativa e disponível para uso    |
| rejected           | Carteira rejeitada                      |

:::info Status da Carteira
- **`pending_analysis`**: Retornado quando a carteira é criada com dados completos do proprietário. Será submetida a análise KYC.
- **`active`**: Retornado quando a carteira é criada com chave de pessoa existente. Disponível para uso imediato.
:::

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | CIN000020            | Requester not Found                                | No requester configuration found for requester key: 8e1e6b46-beb3-467b-965c-6c545707d467                                                     | Solicitante não encontrado para requester key: 8e1e6b46-beb3-467b-965c-6c545707d467                                                          |
| 404                      | CIN000062            | Not Found                                          | Person not found by person key: e51070e4-7494-468d-a20e-bf14789fa8ff                                                                            | Pessoa não encontrada para a person key: e51070e4-7494-468d-a20e-bf14789fa8ff                                                                   |
| 409                      | CIN000043            | Conflict                                           | Active wallet found                                                                                                     | Carteira ativa já existe                                                                                                |
| 400                      | CIN000063            | Bad Request                                        | Expiration date too close to closing date                                                                               | Data de vencimento muito próxima da data de fechamento                                                                  |
| 400                      | CIN000064            | Bad Request                                        | Invalid offset months for rule-based configuration                                                                      | Meses de offset inválidos para configuração baseada em regras                                                           |
| 400                      | CIN000065            | Bad Request                                        | Weekdays too close for rule-based configuration                                                                         | Dias da semana muito próximos para configuração baseada em regras                                                        |
| 400                      | CIN000002            | Bad Request                                        | Invalid signer document number                                                                                          | Número do documento do signatário inválido                                                                              |
| 400                      | CIN000066            | Bad Request                                        | Error while creating wallet in card service                                                                             | Erro ao criar carteira no serviço de cartão                                                                             |
| 409                      | CIN000099            | Conflict                                           | Request control key already exists.                                                                                     | Request control key já existe.                                                                                          |

---

# Listar de Carteiras (Wallets)

URL: /documentation/cartao_pos_pago/faturas/carteira/listar_carteiras

A listagem de carteiras retornará todas as carteiras que se enquadrarem nos query parameters enviados na request.

## Request

ENDPOINT /wallets
MÉTODO GET

### Query Parameters

| Campo                     | Tipo    | Descrição                                    | Caracteres |
|---------------------------|---------|----------------------------------------------|------------|
| `owner_document_number`   | string  | CPF/CNPJ do proprietário da carteira        | 11-14 |
| `wallet_status`                  | string  | Status da carteira para filtrar       | **[Enumeradores wallet_status](#enumeradores-wallet_status)** |
| `page`                    | integer | Número da página para paginação              | - |
| `page_size`               | integer | Quantidade de itens por página               | - |

:::caution Validações
- **Paginação**: Valores de página e tamanho devem ser inteiros válidos
- **Tamanho da página**: Máximo de 100 itens por página
:::

### Enumeradores wallet_status

| Enumerador         | Descrição                               |
|--------------------|-----------------------------------------|
| pending_analysis   | Carteira pendente de análise KYC        |
| active             | Carteira ativa e disponível para uso    |
| rejected           | Carteira rejeitada                      |

## Response

STATUS 200

Response Body: Lista de carteiras

```json
{
  "data": [
    {
      "request_control_key": "f7947b9d-9be3-49d8-aca2-4b3249e5fa65",
      "wallet_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "owner_person_key": "ecf87b4b-fa6e-49c0-a7f0-f2cad6b42d79",
      "owner_document_number": "12345678901",
      "invoice_configuration": {
        "closing_date_configuration": {
          "type": "fixed",
          "fixed_day": 15
        },
        "due_date_configuration": {
          "type": "fixed",
          "fixed_day": 20,
          "offset_months": 0
        },
        "invoice_payment_type": "bank_slip",
        "interest_base": "calendar_days",
        "monthly_interest_percentage": 2.0,
        "fine_percentage": 2.0
      },
      "wallet_status": "active",
      "wallet_type": "default",
      "created_at": "2024-01-15T10:30:00Z"
    },
    {
      "request_control_key": "e1d7ca45-8180-48e4-a293-1f08a046693e",
      "wallet_key": "9db81efb-0ac1-5b79-0683-00b8395a9e7",
      "owner_document_number": "98765432100",
      "invoice_configuration": {
        "closing_date_configuration": {
          "type": "rule_based",
          "rule": {
            "day_of_week": "friday",
            "occurrence": "last",
            "fallback_strategy": "previous_business_day"
          }
        },
        "due_date_configuration": {
          "type": "rule_based",
          "offset_months": 1,
          "rule": {
            "day_of_week": "monday",
            "occurrence": "first",
            "fallback_strategy": "next_business_day"
          }
        },
        "invoice_payment_type": "bank_slip",
        "interest_base": "calendar_days",
        "monthly_interest_percentage": 1.5,
        "fine_percentage": 2.0
      },
      "wallet_status": "pending_analysis",
      "wallet_type": "default",
      "created_at": "2024-01-14T14:45:00Z"
    }
  ],
  "pagination": {
    "current_page": 1,
    "rows_per_page": 100,
  }
}
```

### Response Body Params

| Campo            | Tipo         | Descrição                             | Caracteres                                  |
|------------------|--------------|---------------------------------------|---------------------------------------------|
| `data` *         | object array | Carteiras                               | **[Objeto wallet](#objeto-wallet)**   |
| `pagination` *   | object       | Informações de paginação              | **[Objeto pagination](#objeto-pagination)** |

### Objeto wallet

| Campo                     | Tipo   | Descrição                                    | Caracteres |
|---------------------------|--------|----------------------------------------------|------------|
| `wallet_key` *            | uuidv4 | Chave única de identificação da carteira     | 36         |
| `owner_person_key` *      | string | Chave de identificação do proprietário da carteira                               | 36      |
| `owner_document_number` * | string | CPF/CNPJ do proprietário da carteira         | 11 ou 14   |
| `invoice_configuration` * | object | Configuração de fechamento e vencimento      | **[Objeto invoice_configuration](#objeto-invoice_configuration)**          |
| `wallet_status` *         | string | Status atual da carteira                     | **[Enumeradores wallet_status](#enumeradores-wallet_status)**          |
| `wallet_type` *           | string | Tipo da carteira                             | **[Enumeradores wallet_type](#enumeradores-wallet_type)**          |
| `created_at` *            | string | Data de criação (formato ISO 8601 UTC)       | -          |

### Objeto pagination

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------------------|
| `current_page` *           | integer | Página atual                                                 | -      |
| `rows_per_page` *          | integer | Itens por página                                             | -      |

### Enumeradores wallet_type

| Enumerador | Descrição                    |
|-------------|------------------------------|
| default     | Carteira padrão                |
| payroll     | Carteira para cartão consignado |

### Objeto invoice_configuration

| Campo                                    | Tipo    | Descrição                                                                          | Caracteres |
|------------------------------------------|---------|------------------------------------------------------------------------------------|------------|
| `closing_date_configuration` *           | object  | Configuração da data de fechamento da fatura                                      | **[Objeto closing_date_configuration](#objeto-closing_date_configuration)** |
| `due_date_configuration` *               | object  | Configuração da data de vencimento da fatura                                      | **[Objeto due_date_configuration](#objeto-due_date_configuration)** |
| `invoice_payment_type` *                 | string  | Tipo de pagamento da fatura                                                       | **[Enumeradores invoice_payment_type](#enumeradores-invoice_payment_type)** |
| `interest_base`                         | string  | Base de cálculo dos juros                                                         | **[Enumeradores interest_base](#enumeradores-interest_base)** |
| `monthly_interest_percentage`          | float  | Percentual de juros mensais por atraso (0-100)                                    | -          |
| `fine_percentage`                       | float  | Percentual de multa por atraso (0-100)                                            | -          |

:::info
Nota Carteiras do tipo `payroll` não possuem os campos `interest_base`, `monthly_interest_percentage` e `fine_percentage`.
:::

### Objeto closing_date_configuration

#### Configuração Fixa (`type: "fixed"`)

| Campo                     | Tipo    | Descrição                                    | Caracteres |
|---------------------------|---------|----------------------------------------------|------------|
| `type` *                  | string  | Tipo de configuração (deve ser "fixed")      | -          |
| `fixed_day` *             | integer | Dia fixo do mês para fechamento (1-27)       | -          |

#### Configuração Baseada em Regras (`type: "rule_based"`)

| Campo                     | Tipo    | Descrição                                    | Caracteres |
|---------------------------|---------|----------------------------------------------|------------|
| `type` *                  | string  | Tipo de configuração (deve ser "rule_based") | -          |
| `rule` *                  | object  | Regra para cálculo da data                     | **[Objeto rule (closing_date_configuration)](#objeto-closing_date_configuration)**          |

### Objeto rule (closing_date_configuration)

| Campo                     | Tipo    | Descrição                                    | Caracteres |
|---------------------------|---------|----------------------------------------------|------------|
| `day_of_week` *          | string  | Dia da semana                                | **[Enumeradores day_of_week](#enumeradores-day_of_week)**          |
| `occurrence` *            | string  | Ocorrência do dia no mês                      | **[Enumeradores occurrence](#enumeradores-occurrence)**          |
| `fallback_strategy` *     | string  | Estratégia para dias não úteis                | **[Enumeradores fallback_strategy](#enumeradores-fallback_strategy)**          |

### Objeto due_date_configuration

#### Configuração Fixa (`type: "fixed"`)

| Campo                     | Tipo    | Descrição                                    | Caracteres |
|---------------------------|---------|----------------------------------------------|------------|
| `type` *                  | string  | Tipo de configuração (deve ser "fixed")      | -          |
| `offset_months` *         | integer | Meses de offset a partir do fechamento       | -          |
| `fixed_day` *             | integer | Dia fixo do mês para vencimento (2-27)       | -          |

#### Configuração Baseada em Regras (`type: "rule_based"`)

| Campo                     | Tipo    | Descrição                                    | Caracteres |
|---------------------------|---------|----------------------------------------------|------------|
| `type` *                  | string  | Tipo de configuração (deve ser "rule_based") | -          |
| `offset_months` *         | integer | Meses de offset a partir do fechamento       | -          |
| `rule` *                  | object  | Regra para cálculo da data                     | **[Objeto rule (closing_date_configuration)](#objeto-due_date_configuration)**          |

### Objeto rule (due_date_configuration)

| Campo                     | Tipo    | Descrição                                    | Caracteres |
|---------------------------|---------|----------------------------------------------|------------|
| `day_of_week` *          | string  | Dia da semana                                | **[Enumeradores day_of_week](#enumeradores-day_of_week)**          |
| `occurrence` *            | string  | Ocorrência do dia no mês                      | **[Enumeradores occurrence](#enumeradores-occurrence)**          |
| `fallback_strategy` *     | string  | Estratégia para dias não úteis                | **[Enumeradores fallback_strategy](#enumeradores-fallback_strategy)**          |

### Enumeradores day_of_week

| Enumerador | Descrição |
|-------------|-----------|
| monday     | Segunda-feira |
| tuesday    | Terça-feira |
| wednesday  | Quarta-feira |
| thursday   | Quinta-feira |
| friday     | Sexta-feira |
| saturday   | Sábado |
| sunday     | Domingo |

### Enumeradores occurrence

| Enumerador | Descrição |
|-------------|-----------|
| first      | Primeira ocorrência |
| second     | Segunda ocorrência |
| third      | Terceira ocorrência |
| fourth     | Quarta ocorrência |
| last       | Última ocorrência |

### Enumeradores fallback_strategy

| Enumerador           | Descrição                    |
|----------------------|------------------------------|
| next_business_day    | Próximo dia útil             |
| previous_business_day| Dia útil anterior            |
| same_day             | Mesmo dia                    |

### Enumeradores invoice_payment_type

| Enumerador | Descrição      |
|-------------|----------------|
| bank_slip  | Boleto bancário |

### Enumeradores interest_base

| Enumerador      | Descrição        |
|-----------------|------------------|
| calendar_days   | Dias corridos    |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | BKS000012            | Bad Request                                        | Invalid integer value for page or size query string parameters                                                           | Valor inválido para parâmetros de página ou tamanho de página                                                           |
| 400                      | BKS000013            | Bad Request                                        | Invalid query wallet status                                                                                             | Status de consulta de carteira inválido                                                                                 |

---

# Listar Entradas de Carteira

URL: /documentation/cartao_pos_pago/faturas/carteira/listar_entradas_da_carteira

A listagem de entradas de carteira retornará todas as entradas de uma carteira específica que se enquadrarem nos query parameters enviados na request.

## Request

ENDPOINT /wallet/ WALLET_KEY /wallet_entries
MÉTODO GET

### Path Parameters

| Campo        | Tipo   | Descrição                                    | Caracteres |
|--------------|--------|----------------------------------------------|------------|
| `wallet_key` | uuidv4 | Chave única da carteira no formato UUID v4  | 36         |

### Query Parameters

| Campo                        | Tipo    | Descrição                                    | Caracteres |
|------------------------------|---------|----------------------------------------------|------------|
| `wallet_entry_type` *        | string  | Tipo da entrada da carteira                  | **[Enumeradores wallet_entry_type](#enumeradores-wallet_entry_type)** |
| `wallet_entry_status` *      | string  | Status da entrada da carteira                 | **[Enumeradores wallet_entry_status](#enumeradores-wallet_entry_status)** |
| `page`                       | integer | Número da página para paginação              | -          |
| `page_size`                  | integer | Quantidade de itens por página               | -          |

:::caution Validações
- **Paginação**: Valores de página e tamanho devem ser inteiros válidos
- **Tamanho da página**: Máximo de 100 itens por página
:::

### Enumeradores wallet_entry_type

| Enumerador        | Descrição                                                                         |
|-------------------|-----------------------------------------------------------------------------------|
| revolving_credit  | Crédito rotativo                                                                  |
| payroll_withdraw  | Saque de folha                                                                    |
| payroll_overdue   | Atraso de folha                                                                   |

:::info Tipos de Entrada de Carteira
- **`revolving_credit`**: Valores de crédito disponibilizados para o cliente
- **`payroll_withdraw`**: Dívida gerada pelo saque do limite e que vai ser descontada todo mês do INSS
- **`payroll_overdue`**: Dívida gerada pelo não pagamento da fatura e também vai ser descontada todo mês do INSS
:::

### Enumeradores wallet_entry_status

| Enumerador | Descrição                               |
|------------|-----------------------------------------|
| concluded     | Entrada concluída |

## Response

STATUS 200

Response Body: Lista de entradas de carteira

```json
{
  "data": [
    {
      "wallet_entry_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "wallet_entry_amount": 150.00,
      "wallet_entry_settlement_key": "cc8fb19b-d1e4-4ce6-ad4c-61e0609a8f8d",
      "wallet_entry_type": "revolving_credit",
      "wallet_entry_status": "concluded",
      "created_at": "2024-01-15T10:30:00Z"
    },
    {
      "wallet_entry_key": "9db81efb-0ac1-5b79-0683-00b8395a9e7",
      "wallet_entry_amount": 150.00,
      "wallet_entry_settlement_key": "20cbf6e7-9535-44b4-88e3-f2c7a178a198",
      "wallet_entry_type": "payroll_withdraw",
      "wallet_entry_status": "concluded",
      "created_at": "2024-01-14T14:45:00Z"
    }
  ],
  "pagination": {
    "current_page": 1,
    "rows_per_page": 100
  }
}
```

### Response Body Params

| Campo            | Tipo         | Descrição                             | Caracteres                                  |
|------------------|--------------|---------------------------------------|---------------------------------------------|
| `data` *         | object array | Entradas de carteira                  | **[Objeto wallet_entry](#objeto-wallet_entry)** |
| `pagination` *   | object       | Informações de paginação              | **[Objeto pagination](#objeto-pagination)** |

### Objeto wallet_entry

| Campo                        | Tipo    | Descrição                                                                         | Caracteres |
|------------------------------|---------|-----------------------------------------------------------------------------------|------------|
| `wallet_entry_key` *         | uuidv4  | Chave única de identificação da entrada no formato uuid v4                        | 36         |
| `wallet_entry_amount` *      | float  | Valor da entrada                                                                  | -          |
| `wallet_entry_settlement_key` * | string | Chave de liquidação da entrada                                                   | -          |
| `wallet_entry_type` *        | string  | Tipo da entrada da carteira                                                        | **[Enumeradores wallet_entry_type](#enumeradores-wallet_entry_type)** |
| `wallet_entry_status` *      | string  | Status da entrada da carteira                                                      | **[Enumeradores wallet_entry_status](#enumeradores-wallet_entry_status)** |
| `created_at` *               | string  | Data de criação (formato ISO 8601 UTC)                                           | -          |

### Objeto pagination

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------------------|
| `current_page` *           | integer | Página atual                                                 | -      |
| `rows_per_page` *          | integer | Itens por página                                             | -      |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | CIN000069            | Bad Request                                        | Invalid integer value for page or size query string parameters                                                           | Valor inválido para parâmetros de página ou tamanho de página                                                           |
| 400                      | CIN000076            | Bad Request                                        | Invalid query wallet entry status                                                                                       | Status de consulta de dívida da carteira inválido                                                                       |
| 400                      | CIN000077            | Bad Request                                        | Invalid query wallet entry type                                                                                         | Tipo de consulta de dívida da carteira inválido                                                                         |
| 404                      | CIN000007            | Wallet not Found                                   | Wallet with key: abeca0d0-a09d-4b3b-a495-40b553422ced was not found                                                   | Carteira com a chave: abeca0d0-a09d-4b3b-a495-40b553422ced não foi encontrado                                         |

---

# Buscar Boleto da Carteira

URL: /documentation/cartao_pos_pago/faturas/fatura/boleto_de_pagamento_da_fatura

A busca de boleto da carteira retornará as informações do boleto bancário associado à carteira, incluindo código de barras e linha digitável.

:::warning Atenção
O boleto da carteira **só é gerado a partir do fechamento da primeira fatura**. 
:::

## Request

ENDPOINT /v2/invoice/wallet/ WALLET_KEY /wallet_bank_slip
MÉTODO GET

### Path Parameters

| Campo         | Tipo   | Descrição                                    | Caracteres |
|---------------|--------|----------------------------------------------|------------|
| `wallet_key`  | uuidv4 | Chave única da carteira no formato UUID v4  | 36         |

## Response

STATUS 200

Response Body: Detalhes do boleto

```json
{
  "wallet_bank_slip_key": "3571e292-3a83-4011-904d-20ee963022ef",
  "wallet_bank_slip_status": "accepted",
  "bank_slip_amount": 150.00,
  "bank_slip_due_date": "2024-02-15",
  "bank_slip_data": {
    "barcode": "32991090000000150001234567890123456789012345",
    "digitable_line": "32991234567890123456789012345678901234567890123"
  }
}
```

### Response Body Params

| Campo                    | Tipo   | Descrição                                                                         | Caracteres |
|--------------------------|--------|-----------------------------------------------------------------------------------|------------|
| `wallet_bank_slip_key` * | uuidv4 | Chave única de identificação do boleto da carteira no formato uuid v4           | 36         |
| `wallet_bank_slip_status` * | string | Status do boleto                                                                 | **[Enumeradores wallet_bank_slip_status](#enumeradores-wallet_bank_slip_status)** |
| `bank_slip_amount` *     | float  | Valor do boleto                                                                   | -          |
| `bank_slip_due_date` *   | string | Data de vencimento do boleto (formato YYYY-MM-DD)                                | 10         |
| `bank_slip_data` *       | object | Dados do boleto contendo código de barras e linha digitável                      | **[Objeto bank_slip_data](#objeto-bank_slip_data)** |

### Objeto bank_slip_data

| Campo                    | Tipo   | Descrição                                                                         | Caracteres |
|--------------------------|--------|-----------------------------------------------------------------------------------|------------|
| `barcode` *              | string | Código de barras do boleto                                                        | 44         |
| `digitable_line` *       | string | Linha digitável do boleto                                                         | 47         |

### Enumeradores wallet_bank_slip_status

| Enumerador | Descrição                               |
|------------|-----------------------------------------|
| accepted   | Boleto aceito, aguardando confirmação do registro |
| registered | Boleto registrado e disponível para pagamento |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 404                      | CIN000007            | Wallet not Found                                   | Wallet with key: abeca0d0-a09d-4b3b-a495-40b553422ced was not found                                                   | Carteira com a chave: abeca0d0-a09d-4b3b-a495-40b553422ced não foi encontrado                                         |
| 404                      | CIN000093            | Not Found                                          | Wallet bank slip was not found                                                                                          | Boleto da carteira não foi encontrado                                                                                   |

---

# Buscar Fatura por Chave

URL: /documentation/cartao_pos_pago/faturas/fatura/consulta_por_chave

A busca de fatura por chave retornará os detalhes completos de uma fatura específica, incluindo todos os itens da fatura.

## Request

ENDPOINT /wallet/ WALLET_KEY /invoice/ INVOICE_KEY
MÉTODO GET

### Path Parameters

| Campo         | Tipo   | Descrição                                    | Caracteres |
|---------------|--------|----------------------------------------------|------------|
| `wallet_key`  | uuidv4 | Chave única da carteira no formato UUID v4  | 36         |
| `invoice_key` | uuidv4 | Chave única da fatura no formato UUID v4    | 36         |

## Response

STATUS 200

Response Body: Detalhes da fatura

```json
{
  "invoice_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "due_date": "2024-02-15",
  "closing_date": "2024-01-31",
  "invoice_status": "opened",
  "total_amount": 350.00,
  "paid_amount": 0.00,
  "invoice_items": [
    {
      "invoice_item_key": "3571e292-3a83-4011-904d-20ee963022ef",
      "invoice_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "wallet_entry_key": null,
      "payment_instrument_entry_key": "g3ebe8d6-4c8a-1794-22d9-406c0f8g3dbe",
      "installment_number": 1,
      "invoice_description": "Compra no estabelecimento XYZ",
      "amount": 150.00,
      "used_limit": 150.00,
      "paid_amount": 0.00,
      "invoice_item_status": "concluded",
      "invoice_item_due_date": "2024-02-15",
      "created_at": "2024-01-15T10:30:00Z"
    },
    {
      "invoice_item_key": "b2c3d4e5-f6g7-8901-bcde-f23456789012",
      "invoice_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "wallet_entry_key": null,
      "payment_instrument_entry_key": "g3ebe8d6-4c8a-1794-22d9-406c0f8g3dbe",
      "installment_number": 2,
      "invoice_description": "Parcela 2 de 3 - Compra parcelada",
      "amount": 200.00,
      "used_limit": 200.00,
      "invoice_item_status": "concluded",
      "invoice_item_due_date": "2024-02-15",
      "created_at": "2024-01-16T14:45:00Z"
    }
  ],
  "invoice_payments": [
    {
      "invoice_payment_key": "c3d4e5f6-g7h8-9012-cdef-345678901234",
      "total_amount": 350.00,
      "paid_amount": 0.00,
      "invoice_payment_type": "bank_slip",
      "invoice_payment_status": "paid"
    }
  ],
  "invoice_payments_chargebacks": [
    {
      "invoice_item_key": "3571e292-3a83-4011-904d-20ee963022ef",
      "chargeback_paid_amount": 50.00
    }
  ],
  "created_at": "2024-01-15T10:30:00Z"
}
```

### Response Body Params

| Campo            | Tipo         | Descrição                             | Caracteres                                  |
|------------------|--------------|---------------------------------------|---------------------------------------------|
| `invoice_key` *  | uuidv4       | Chave única de identificação da fatura no formato uuid v4 | 36         |
| `due_date` *     | string       | Data de vencimento da fatura (formato YYYY-MM-DD) | 10         |
| `closing_date` * | string       | Data de fechamento da fatura (formato YYYY-MM-DD) | 10         |
| `invoice_status` * | string    | Status da fatura                     | **[Enumeradores invoice_status](#enumeradores-invoice_status)** |
| `total_amount` * | number       | Valor total da fatura                 | -          |
| `paid_amount` *  | number       | Valor pago da fatura                   | -          |
| `invoice_items` * | object array | Itens da fatura                      | **[Objeto invoice_item](#objeto-invoice_item)** |
| `invoice_payments` *               | object array | Pagamentos da fatura                | [Objeto invoice_payment](#objeto-invoice_payment) |
| `invoice_payments_chargebacks` *  | object array | Estornos dos pagamentos da fatura | [Objeto invoice_payment_chargeback](#objeto-invoice_payment_chargeback) |
| `created_at` *                     | string       | Data de criação (formato ISO 8601 UTC) | -          |

### Objeto invoice_item

| Campo                              | Tipo    | Descrição                                                                         | Caracteres |
|------------------------------------|---------|-----------------------------------------------------------------------------------|------------|
| `invoice_item_key` *               | uuidv4  | Chave única de identificação do item da fatura no formato uuid v4                | 36         |
| `invoice_key` *                    | uuidv4  | Chave única de identificação da fatura no formato uuid v4                        | 36         |
| `wallet_entry_key`                 | uuidv4  | Chave única de identificação da entrada da carteira no formato uuid v4          | 36         |
| `payment_instrument_entry_key`     | uuidv4  | Chave única de identificação da entrada do instrumento de pagamento no formato uuid v4 | 36 |
| `installment_number` *             | integer | Número da parcela                                                                 | -          |
| `invoice_description` *            | string  | Descrição do item da fatura                                                       | -          |
| `amount` *                         | float  | Valor do item                                                                     | -          |
| `used_limit` *                     | float  | Limite utilizado                                                                 | -          |
| `invoice_item_status` *            | string  | Status do item da fatura                                                          | **[Enumeradores invoice_item_status](#enumeradores-invoice_item_status)** |
| `invoice_item_due_date` *          | string  | Data de vencimento do item (formato YYYY-MM-DD)                                  | 10         |
| `created_at` *                     | string  | Data de criação (formato ISO 8601 UTC)                                           | -          |

### Objeto invoice_payment

| Campo                              | Tipo    | Descrição                                                                         | Caracteres |
|------------------------------------|---------|-----------------------------------------------------------------------------------|------------|
| invoice_payment_key *              | uuidv4  | Chave única de identificação do pagamento da fatura no formato uuid v4           | 36         |
| total_amount                       | number  | Valor total do pagamento                                                          | -          |
| paid_amount                        | number  | Valor pago do pagamento                                                           | -          |
| invoice_payment_type *              | string  | Tipo de pagamento da fatura                                                       | [Enumeradores invoice_payment_type](#enumeradores-invoice_payment_type) |
| invoice_payment_status *           | string  | Status do pagamento da fatura                                                     | [Enumeradores invoice_payment_status](#enumeradores-invoice_payment_status) |

### Objeto invoice_payment_chargeback

| Campo                              | Tipo    | Descrição                                                                         | Caracteres |
|------------------------------------|---------|-----------------------------------------------------------------------------------|------------|
| invoice_item_key *                 | uuidv4  | Chave única de identificação do item da fatura relacionado ao estorno no formato uuid v4 | 36         |
| chargeback_paid_amount             | number  | Valor do estorno utilizado                                                       | -          |

### Enumeradores invoice_status

| Enumerador | Descrição                               |
|------------|-----------------------------------------|
| opened                 | Fatura aberta               |
| processing_closing     | Processando fechamento      |
| processing_expiration  | Processando expiração       |
| closed                 | Fatura fechada              |
| processing_payment        | Aguardando pagamento        |
| paid                   | Fatura paga                 |

:::info Observação
O status `processing_payment` é aplicado apenas para carteiras do tipo `payroll` no cenário em que o valor possível para pagamento já foi realizado e está restando o valor a ser pago com o benefício.
:::

### Enumeradores invoice_payment_type

| Enumerador | Descrição                               |
|------------|-----------------------------------------|
| bank_slip        | Boleto bancário               |
| payroll_discount | Desconto via INSS      |

:::info Observação
O tipo `payroll_discount` existe apenas para carteiras do tipo `payroll` e representa o valor que vai ser descontado via benefício.
:::

### Enumeradores invoice_payment_status

| Enumerador | Descrição                               |
|------------|-----------------------------------------|
| processing_payment  | Aguardando pagamento               |
| paid             | Pago              |

:::info Observação
- Para pagamentos do tipo `payroll_discount`: o pagamento é criado no momento do fechamento da fatura com o status `processing_payment` e o desconto é solicitado no INSS. Quando o pagamento do desconto é realizado, o status muda para `paid`.
- Para pagamentos do tipo `bank_slip`: o pagamento é criado com status `processing_payment` quando recebemos o aviso de pagamento do boleto. No momento da liquidação do boleto, o status muda para `paid`. O pagamento pode ser criado com status `paid` diretamente caso não seja recebido um aviso de pagamento.
:::

### Enumeradores invoice_item_status

| Enumerador | Descrição                               |
|------------|-----------------------------------------|
| concluded    | Item concluído   |
| canceled  | Item cancelado               |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 404                      | CIN000007            | Wallet not Found                                   | Wallet with key: abeca0d0-a09d-4b3b-a495-40b553422ced was not found                                                   | Carteira com a chave: abeca0d0-a09d-4b3b-a495-40b553422ced não foi encontrado                                         |
| 404                      | CIN000016            | Invoice Not Found                                  | Invoice with key: 8cb70dea-9fb0-4a68-9572-99a72849c8d6 was not found                                                  | Fatura com a chave: 8cb70dea-9fb0-4a68-9572-99a72849c8d6 não foi encontrado                                           |

---

# Listar Faturas

URL: /documentation/cartao_pos_pago/faturas/fatura/listar_faturas

A listagem de faturas retornará todas as faturas de uma carteira específica que se enquadrarem nos query parameters enviados na request.

## Request

ENDPOINT /wallet/ WALLET_KEY /invoices
MÉTODO GET

### Path Parameters

| Campo        | Tipo   | Descrição                                    | Caracteres |
|--------------|--------|----------------------------------------------|------------|
| `wallet_key` | uuidv4 | Chave única da carteira no formato UUID v4  | 36         |

### Query Parameters

| Campo                        | Tipo    | Descrição                                    | Caracteres |
|------------------------------|---------|----------------------------------------------|------------|
| `invoice_status` *           | string  | Status da fatura                                                             | **[Enumeradores invoice_status](#enumeradores-invoice_status)** |
| `page`                       | integer | Número da página para paginação              | -          |
| `page_size`                  | integer | Quantidade de itens por página               | -          |

:::caution Validações
- **Paginação**: Valores de página e tamanho devem ser inteiros válidos
- **Tamanho da página**: Máximo de 100 itens por página
:::

### Enumeradores invoice_status

| Enumerador | Descrição                               |
|------------|-----------------------------------------|
| opened                 | Fatura aberta               |
| processing_closing     | Processando fechamento      |
| processing_expiration  | Processando expiração       |
| closed                 | Fatura fechada              |
| processing_payment        | Aguardando pagamento        |
| paid                   | Fatura paga                 |

## Response

STATUS 200

Response Body: Lista de faturas

```json
{
  "data": [
    {
      "invoice_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "due_date": "2024-02-15",
      "closing_date": "2024-01-31",
      "invoice_status": "opened",
      "total_amount": 350.00,
      "paid_amount": 0.00,
      "created_at": "2024-01-15T10:30:00Z"
    },
    {
      "invoice_key": "9db81efb-0ac1-5b79-0683-00b8395a9e7",
      "due_date": "2024-01-15",
      "closing_date": "2023-12-31",
      "invoice_status": "opened",
      "total_amount": 500.00,
      "paid_amount": 0.00,
      "created_at": "2024-01-14T14:45:00Z"
    }
  ],
  "pagination": {
    "current_page": 1,
    "rows_per_page": 100
  }
}
```

### Response Body Params

| Campo            | Tipo         | Descrição                             | Caracteres                                  |
|------------------|--------------|---------------------------------------|---------------------------------------------|
| `data` *         | object array | Faturas                               | **[Objeto invoice](#objeto-invoice)**       |
| `pagination` *   | object       | Informações de paginação              | **[Objeto pagination](#objeto-pagination)** |

### Objeto invoice

| Campo                        | Tipo    | Descrição                                                                         | Caracteres |
|------------------------------|---------|-----------------------------------------------------------------------------------|------------|
| `invoice_key` *              | uuidv4  | Chave única de identificação da fatura no formato uuid v4                        | 36         |
| `due_date` *                 | string  | Data de vencimento da fatura (formato YYYY-MM-DD)                               | 10         |
| `closing_date` *             | string  | Data de fechamento da fatura (formato YYYY-MM-DD)                               | 10         |
| `invoice_status` *           | string  | Status da fatura                                                                 | **[Enumeradores invoice_status](#enumeradores-invoice_status)** |
| `total_amount` *             | number  | Valor total da fatura                                              | -          |
| `paid_amount` *              | number  | Valor pago da fatura                                                | -          |
| `created_at` *               | string  | Data de criação (formato ISO 8601 UTC)                                           | -          |

### Objeto pagination

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------------------|
| `current_page` *           | integer | Página atual                                                 | -      |
| `rows_per_page` *          | integer | Itens por página                                             | -      |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | CIN000069            | Bad Request                                        | Invalid integer value for page or size query string parameters                                                           | Valor inválido para parâmetros de página ou tamanho de página                                                           |
| 400                      | CIN000079            | Bad Request                                        | Invalid query invoice status                                                                                             | Status de consulta de fatura inválido                                                                                  |
| 404                      | CIN000007            | Wallet not Found                                   | Wallet with key: abeca0d0-a09d-4b3b-a495-40b553422ced was not found                                                   | Carteira com a chave: abeca0d0-a09d-4b3b-a495-40b553422ced não foi encontrado                                         |

---

# Simulação de cenários - Fechamento e Vencimento de Faturas

URL: /documentation/cartao_pos_pago/faturas/fatura/simulacao_de_cenarios

Esta página descreve como simular o fechamento e vencimento de faturas para testar o fluxo de transações com cartões pós-pagos. Essas simulações são úteis para homologação e testes de integração.

## 1 - Simulação de fechamento de fatura

Simula o fechamento de uma fatura aberta, alterando seu status para `processing_closing` e publicando a mensagem na fila de fechamento. A fatura será processada conforme a configuração da carteira.

ENDPOINT /mock/invoice/ INVOICE_KEY /close
MÉTODO PATCH

### Path Parameters

| Campo                        | Tipo   | Descrição                                    | Caracteres |
|------------------------------|--------|----------------------------------------------|------------|
| `invoice_key` *           | string  | Chave única da fatura no formato UUID v4                                  | 36         |

### Headers

### Request Body

Esta requisição não possui body.

### Response

STATUS 204

Response Body

```json

{}

```

### Response Body Params

Esta resposta não possui parâmetros no body.

:::tip Comportamento

- A simulação altera o status da fatura para `processing_closing`
- A fatura deve estar com status `opened` para poder ser fechada
- Uma notificação de mudança de status é enviada ao cliente
:::

## 2 - Simulação de vencimento de fatura

Simula o vencimento de uma fatura fechada, alterando seu status para `processing_expiration` e publicando a mensagem na fila de vencimento. A fatura será processada conforme a configuração da carteira.

ENDPOINT /mock/invoice/ INVOICE_KEY /expire
MÉTODO PATCH

### Path Parameters

| Campo                        | Tipo   | Descrição                                    | Caracteres |
|------------------------------|--------|----------------------------------------------|------------|
| `invoice_key` *           | string  | Chave única da fatura no formato UUID v4                                  | 36         |

### Request Body

Esta requisição não possui body.

### Response

STATUS 204

Response Body

```json

{}

```

### Response Body Params

Esta resposta não possui parâmetros no body.

:::tip Comportamento
- A simulação altera o status da fatura para `processing_expiration`
- A fatura não pode estar com status `opened` (deve estar fechada)
- A carteira deve ter pelo menos uma fatura aberta
- A próxima data de fechamento da carteira não pode ser anterior à próxima data de vencimento
- Uma notificação de mudança de status é enviada ao cliente
:::

---

# Alteração de Limite de Instrumento de Pagamento

URL: /documentation/cartao_pos_pago/faturas/instrumento_de_pagamento/alteracao_de_limite

A alteração de limite de instrumento de pagamento permite alterar o valor do limite de um instrumento de pagamento existente.

## Request

ENDPOINT /wallet/ WALLET_KEY /payment_instrument/ PAYMENT_INSTRUMENT_KEY
MÉTODO PATCH

### Path Parameters

| Campo                        | Tipo   | Descrição                                    | Caracteres |
|------------------------------|--------|----------------------------------------------|------------|
| `wallet_key` *               | uuidv4 | Chave única da carteira no formato UUID v4  | 36         |
| `payment_instrument_key` *   | uuidv4 | Chave única do instrumento de pagamento no formato UUID v4 | 36 |

Request Body

```json
{
  "limit_amount": 3000.00
}
```

### Request Body Params

| Campo                        | Tipo    | Descrição                                                                          | Caracteres |
|------------------------------|---------|------------------------------------------------------------------------------------|------------|
| `limit_amount` *             | float   | Novo valor do limite do instrumento de pagamento                                  | -          |

:::info Observação
- O novo valor do limite deve ser maior ou igual ao limite utilizado (`used_limit`)
- O novo valor do limite não pode ser maior que o limite de crédito pós-pago da carteira (`postpaid_credit_limit`)
- Apenas instrumentos de pagamento do tipo `postpaid_card` podem ter seus limites atualizados
- Apenas carteiras do tipo `default` podem ter instrumentos de pagamento com limites atualizados
- O instrumento de pagamento deve estar com status `active` para ter seu limite atualizado
:::

## Response

STATUS 200

Response Body: Limite de instrumento de pagamento atualizado

```json
{
  "payment_instrument_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "limit_amount": 3000.00,
  "payment_instrument_status": "active"
}
```

### Response Body Params

| Campo                            | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------------|---------|------------------------------------------------------------------------------------|------------|
| `payment_instrument_key` *       | uuidv4  | Chave única de identificação do instrumento atualizado no formato UUID v4         | 36         |
| `limit_amount` *                 | float   | Novo valor do limite do instrumento após a atualização                             | -          |
| `payment_instrument_status` *    | string  | Status do instrumento de pagamento                                                 | **[Enumeradores payment_instrument_status](#enumeradores-payment_instrument_status)** |

### Enumeradores payment_instrument_status

| Enumerador | Descrição                               |
|------------|-----------------------------------------|
| active     | Instrumento ativo                       |
| canceled   | Instrumento cancelado                   |    

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | CIN000074            | Bad Request                                        | Limit amount is greater than postpaid credit limit of the wallet.                                                       | Limite é maior que o limite de crédito pós-pago da carteira.                                                           |
| 400                      | CIN000081            | Bad Request                                        | Payment instrument is not active                                                                                         | Instrumento de pagamento não está ativo                                                                                |
| 400                      | CIN000110            | Bad Request                                        | New limit amount is less than used limit                                                                                 | Novo valor do limite é menor que o valor utilizado                                                                     |
| 403                      | CIN000108            | Forbidden                                          | Wallet type payroll is not allowed for this operation                                                                    | Tipo de carteira payroll não é permitido para esta operação                                                           |
| 403                      | CIN000113            | Forbidden                                          | Payment instrument type is not allowed for this operation                                                               | Tipo de instrumento de pagamento não é permitido para esta operação                                                    |
| 404                      | CIN000007            | Wallet not Found                                   | Wallet with key: e503fa60-285e-4632-96b6-bf3ad908a23c was not found                                                    | Carteira com a chave: e503fa60-285e-4632-96b6-bf3ad908a23c não foi encontrado                                         |
| 404                      | CIN000080            | Payment Instrument Not Found                       | Payment instrument was not found                                                                                         | Instrumento de pagamento não foi encontrado                                                                            |

---

# Cancelamento de Instrumento de Pagamento

URL: /documentation/cartao_pos_pago/faturas/instrumento_de_pagamento/cancelamento_de_instrumento_de_pagamento

O cancelamento de instrumento de pagamento permite cancelar um instrumento de pagamento existente, alterando seu status para `canceled` e cancelando o cartão pós-pago associado.

## Request

ENDPOINT /wallet/ WALLET_KEY /payment_instrument/ PAYMENT_INSTRUMENT_KEY /cancel
MÉTODO PATCH

### Path Parameters

| Campo                        | Tipo   | Descrição                                    | Caracteres |
|------------------------------|--------|----------------------------------------------|------------|
| `wallet_key` *               | uuidv4 | Chave única da carteira no formato UUID v4  | 36         |
| `payment_instrument_key` *   | uuidv4 | Chave única do instrumento de pagamento no formato UUID v4 | 36 |

:::info Observação
Esta requisição não possui request body. O cancelamento é realizado apenas através dos path parameters.
:::

## Response

STATUS 200

Response Body: Instrumento de pagamento cancelado

```json
{
  "payment_instrument_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "payment_instrument_status": "canceled"
}
```

### Response Body Params

| Campo                            | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------------|---------|------------------------------------------------------------------------------------|------------|
| `payment_instrument_key` *       | uuidv4  | Chave única de identificação do instrumento cancelado no formato UUID v4          | 36         |
| `payment_instrument_status` *    | string  | Status do instrumento após o cancelamento                                         | **[Enumeradores payment_instrument_status](#enumeradores-payment_instrument_status)** |

### Enumeradores payment_instrument_status

| Enumerador | Descrição                               |
|------------|-----------------------------------------|
| canceled   | Instrumento cancelado                   |

:::tip Comportamento
- O instrumento de pagamento será movido para o status `canceled` após o cancelamento
- O cartão pós-pago associado ao instrumento também será cancelado automaticamente
- O instrumento cancelado não poderá ser utilizado para novas transações
- O instrumento cancelado ainda poderá ser consultado e listado, mas aparecerá com status `canceled`
:::

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | CIN000081            | Bad Request                                        | Payment instrument is not active                                                                                         | Instrumento de pagamento não está ativo                                                                                |
| 400                      | CIN000100            | Bad Request                                        | Error canceling card in card service                                                                                    | Erro ao cancelar cartão no serviço de cartões                                                                           |
| 404                      | CIN000007            | Wallet not Found                                   | Wallet with key: abeca0d0-a09d-4b3b-a495-40b553422ced was not found                                                   | Carteira com a chave: abeca0d0-a09d-4b3b-a495-40b553422ced não foi encontrado                                         |
| 404                      | CIN000080            | Payment Instrument Not Found                       | Payment instrument was not found                                                                                         | Instrumento de pagamento não foi encontrado                                                                             |

---

# Buscar Entrada de Instrumento de Pagamento por Chave

URL: /documentation/cartao_pos_pago/faturas/instrumento_de_pagamento/consulta_entrada_por_chave

A busca de entrada de instrumento de pagamento por chave retornará os detalhes completos de uma entrada específica, incluindo todos os itens da fatura relacionados.

## Request

ENDPOINT /wallet/ WALLET_KEY /payment_instrument/ PAYMENT_INSTRUMENT_KEY /payment_instrument_entry/ PAYMENT_INSTRUMENT_ENTRY_KEY
MÉTODO GET

### Path Parameters

| Campo                          | Tipo   | Descrição                                    | Caracteres |
|--------------------------------|--------|----------------------------------------------|------------|
| `wallet_key`                   | uuidv4 | Chave única da carteira no formato UUID v4  | 36         |
| `payment_instrument_key`       | uuidv4 | Chave única do instrumento de pagamento no formato UUID v4 | 36 |
| `payment_instrument_entry_key` | uuidv4 | Chave única da entrada no formato UUID v4    | 36         |

## Response

STATUS 200

Response Body: Detalhes da entrada de instrumento de pagamento

```json
{
  "payment_instrument_entry_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "payment_instrument_entry_amount": 150.00,
  "payment_instrument_entry_type": "purchase",
  "payment_instrument_entry_status": "concluded",
  "payment_instrument_entry_data": {
    "merchant_name": "Merchant Name",
    "merchant_country": "Merchant Country",
    "merchant_postal_code": "Merchant Postal Code",
    "merchant_city": "Merchant City",
    "merchant_street": "Merchant Street"
  },
  "invoice_items": [
    {
      "invoice_item_key": "3571e292-3a83-4011-904d-20ee963022ef",
      "invoice_key": "f2cad6b4-2a68-9572-99a7-2849c8d6ecf8",
      "wallet_entry_key": null,
      "payment_instrument_entry_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "installment_number": 1,
      "invoice_description": "Compra no estabelecimento XYZ",
      "amount": 150.00,
      "used_limit": 150.00,
      "invoice_item_status": "concluded",
      "invoice_item_due_date": "2024-02-15",
      "created_at": "2024-01-15T10:30:00Z"
    }
  ],
  "created_at": "2024-01-15T10:30:00Z"
}
```

### Response Body Params

| Campo                                 | Tipo         | Descrição                             | Caracteres                                  |
|---------------------------------------|--------------|---------------------------------------|---------------------------------------------|
| `payment_instrument_entry_key` *      | uuidv4       | Chave única de identificação da entrada no formato uuid v4 | 36         |
| `payment_instrument_entry_amount` *   | number       | Valor da entrada                      | -          |
| `payment_instrument_entry_type` *     | string       | Tipo da entrada do instrumento de pagamento | **[Enumeradores payment_instrument_entry_type](#enumeradores-payment_instrument_entry_type)** |
| `payment_instrument_entry_status` *  | string       | Status da entrada do instrumento      | **[Enumeradores payment_instrument_entry_status](#enumeradores-payment_instrument_entry_status)** |
| `invoice_items` *                     | object array | Itens da fatura relacionados          | **[Objeto invoice_item](#objeto-invoice_item)** |
| `payment_instrument_entry_data`      | object  | Dados do adicionais | **[Objeto payment_instrument_entry_data](#objeto-payment_instrument_entry_data)** |
| `created_at` *                       | string  | Data de criação (formato ISO 8601 UTC)                                           | -          |

### Objeto payment_instrument_entry_data (purchase | withdraw)

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|------------|
| `merchant_name` *          | string  | Nome do estabelecimento comercial                                                 | -          |
| `merchant_country` *       | string  | País do estabelecimento comercial                                                 | -          |
| `merchant_postal_code` *   | string  | Código postal do estabelecimento comercial                                        | -          |
| `merchant_city` *          | string  | Cidade do estabelecimento comercial                                               | -          |
| `merchant_street` *        | string  | Rua do estabelecimento comercial                                                  | -          |

### Objeto payment_instrument_entry_data (postpaid_card_issuance)

| Campo                           | Tipo    | Descrição                                                                          | Caracteres |
|---------------------------------|---------|------------------------------------------------------------------------------------|------------|
| `postpaid_card_issuance_name` * | string  | Nome da emissão do cartão pós-pago                                                 | -          |
| `payment_instrument_key` *      | string  | Chave única do instrumento de pagamento no formato UUID v4                        | 36         |
| `postpaid_card_key` *           | string  | Chave única do cartão pós-pago no formato UUID v4                                  | 36         |

:::info Observação
Esta entrada existe apenas para cartões de carteira de cartão consignado.
:::

### Enumeradores payment_instrument_entry_type

| Enumerador              | Descrição                                                                         |
|-------------------------|-----------------------------------------------------------------------------------|
| purchase                | Compra                                                                            |
| withdraw                | Saque                                                                             |
| postpaid_card_issuance  | Emissão de cartão pós-pago                                                        |

### Enumeradores payment_instrument_entry_status

| Enumerador              | Descrição                               |
|-------------------------|-----------------------------------------|
| processing_conclusion   | Entrada em processamento de conclusão    |
| processing_cancellation | Entrada em processamento de cancelamento |
| concluded                  | Entrada concluída                           |
| canceled                | Entrada cancelada                       |

:::info Observação
A entrada do instrumento de pagamento pode transicionar diretamente de `processing_conclusion` para `processing_cancellation` e `canceled`. Nesse caso, nenhum invoice item é criado.
:::

### Objeto invoice_item

| Campo                              | Tipo    | Descrição                                                                         | Caracteres |
|------------------------------------|---------|-----------------------------------------------------------------------------------|------------|
| `invoice_item_key` *               | uuidv4  | Chave única de identificação do item da fatura no formato uuid v4                | 36         |
| `invoice_key` *                    | uuidv4  | Chave única de identificação da fatura no formato uuid v4                        | 36         |
| `wallet_entry_key`                 | uuidv4  | Chave única de identificação da entrada da carteira no formato uuid v4          | 36         |
| `payment_instrument_entry_key`     | uuidv4  | Chave única de identificação da entrada do instrumento de pagamento no formato uuid v4 | 36 |
| `installment_number` *             | integer | Número da parcela                                                                 | -          |
| `invoice_description` *            | string  | Descrição do item da fatura                                                       | -          |
| `amount` *                         | number  | Valor do item                                                                     | -          |
| `used_limit` *                     | number  | Limite utilizado                                                                 | -          |
| `invoice_item_status` *            | string  | Status do item da fatura                                                          | **[Enumeradores invoice_item_status](#enumeradores-invoice_item_status)** |
| `invoice_item_due_date` *          | string  | Data de vencimento do item (formato YYYY-MM-DD)                                  | 10         |
| `created_at` *                     | string  | Data de criação (formato ISO 8601 UTC)                                           | -          |

### Enumeradores invoice_item_status

| Enumerador | Descrição                               |
|------------|-----------------------------------------|
| concluded    | Item concluído (fatura ao qual o mesmo pertence não foi paga)   |
| canceled  | Item cancelado               |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 404                      | CIN000007            | Wallet not Found                                   | Wallet with key: abeca0d0-a09d-4b3b-a495-40b553422ced was not found                                                   | Carteira com a chave: abeca0d0-a09d-4b3b-a495-40b553422ced não foi encontrado                                         |
| 404                      | CIN000017            | Payment Instrument Not Found                       | Payment instrument was not found                                                                                         | Instrumento de pagamento não foi encontrado                                                                             |
| 404                      | CIN000086            | Not Found                                          | Payment instrument entry was not found                                                                                   | Transação para instrumento de pagamento não foi encontrada                                                             |

---

# Criação de Instrumento de Pagamento

URL: /documentation/cartao_pos_pago/faturas/instrumento_de_pagamento/criacao_de_instrumento_de_pagamento

A criação de instrumento de pagamento permite registrar um novo meio de pagamento (como cartão pós-pago) para uma carteira existente.

## Request

ENDPOINT /wallet/ WALLET_KEY /payment_instrument
MÉTODO POST

### Path Parameters

| Campo        | Tipo   | Descrição                                    | Caracteres |
|--------------|--------|----------------------------------------------|------------|
| `wallet_key` | uuidv4 | Chave única da carteira no formato UUID v4  | 36         |

Request Body

```json
{
  "request_control_key": "f7947b9d-9be3-49d8-aca2-4b3249e5fa65",
  "owner": {
    "person_type": "natural",
    "name": "João Silva",
    "document_number": "12345678901",
    "birthdate": "1990-01-01",
    "email": "joao.silva@email.com",
    "phone": {
      "number": "99999999",
      "area_code": "11",
      "country_code": "55"
    },
    "address": {
      "street": "Rua das Flores",
      "number": "123",
      "neighborhood": "Centro",
      "postal_code": "01234567",
      "city": "São Paulo",
      "state": "SP",
      "complement": "Apto 1"
    }
  },
  "payment_instrument_type": "postpaid_card",
  "limit_amount": 2000.00,
  "postpaid_card_data": {
    "card_type": "physical",
    "card_name": "Cartão Principal",
    "printed_name": "JOAO SILVA",
    "cvv_rotation_interval_hours": 24,
    "contactless_enabled": true,
    "delivery_address": {
      "street": "Rua das Flores",
      "number": "123",
      "neighborhood": "Centro",
      "postal_code": "01234567",
      "city": "São Paulo",
      "state": "SP",
      "complement": "Apto 1"
    }
  }
}
```

### Request Body Params

| Campo                        | Tipo    | Descrição                                                                          | Caracteres |
|------------------------------|---------|------------------------------------------------------------------------------------|------------|
| `request_control_key`    | uuidv4     | Chave única de identificação da request utilizada pelo cliente.                                            | 36                                                                          |
| `owner`                      | object  | Dados do proprietário do instrumento (pessoa física ou jurídica)                  | **[Objeto owner](#objeto-owner)** |
| `person_key`                 | string  | Chave única de identificação da pessoa no formato UUID v4                         | 36         |
| `payment_instrument_type` *  | string  | Tipo do instrumento de pagamento                                                   | **[Enumeradores payment_instrument_type](#enumeradores-payment_instrument_type)** |
| `limit_amount`               | float  | Limite de crédito do instrumento (deve ser menor ou igual ao limite da carteira)  | -          |
| `postpaid_card_data`         | object  | Dados específicos do cartão pós-pago                                               | **[Objeto postpaid_card_data](#objeto-postpaid_card_data)** |

:::info Campos Condicionais
- **`owner`**: Obrigatório quando não for enviado `person_key`
- **`person_key`**: Obrigatório quando não for enviado `owner`
- **`postpaid_card_data`**: Obrigatório quando `payment_instrument_type` for "postpaid_card"
- Os campos `owner` e `person_key` são mutuamente exclusivos
:::

:::caution Validações de Limite
- O `limit_amount` **não é obrigatório**
- Quando informado, não pode ser maior que o limite de crédito pós-pago da carteira
- Se não informado, o instrumento utilizará o limite total da carteira
:::

### Objeto owner

#### Pessoa Física (`person_type: "natural"`)

| Campo                     | Tipo   | Descrição                                    | Caracteres |
|---------------------------|--------|----------------------------------------------|------------|
| `person_type` *           | string | Tipo da pessoa (deve ser "natural")          | -          |
| `name` *                  | string | Nome completo da pessoa                       | 100        |
| `document_number` *       | string | CPF da pessoa (apenas números)               | 11         |
| `birthdate` *             | string | Data de nascimento (formato YYYY-MM-DD)      | 10         |
| `email` *                 | string | E-mail de contato                            | 254        |
| `phone` *                 | object | Telefone de contato                          | **[Objeto phone](#objeto-phone)** |
| `address` *               | object | Endereço completo                            | **[Objeto address](#objeto-address)** |

#### Pessoa Jurídica (`person_type: "legal"`)

| Campo                     | Tipo   | Descrição                                    | Caracteres |
|---------------------------|--------|----------------------------------------------|------------|
| `person_type` *           | string | Tipo da pessoa (deve ser "legal")            | -          |
| `name` *                  | string | Razão social da empresa                      | 100        |
| `trading_name` *          | string | Nome fantasia da empresa                     | 100        |
| `document_number` *       | string | CNPJ da empresa (apenas números)            | 14         |
| `foundation_date` *       | string | Data de fundação (formato YYYY-MM-DD)       | 10         |
| `email` *                 | string | E-mail de contato                            | 254        |
| `phone` *                 | object | Telefone de contato                          | **[Objeto phone](#objeto-phone)** |
| `address` *               | object | Endereço completo                            | **[Objeto address](#objeto-address)** |
| `legal_representatives` * | array  | Lista de representantes legais (pessoas físicas)               | -          |

### Objeto phone

| Campo                     | Tipo   | Descrição                                    | Caracteres |
|---------------------------|--------|----------------------------------------------|------------|
| `country_code` *          | string | Código do país (DDI)                         | 2-3        |
| `area_code` *             | string | Código de área (DDD)                         | 2          |
| `number` *                | string | Número do telefone                           | 8-9        |

### Objeto address

| Campo                     | Tipo   | Descrição                                    | Caracteres |
|---------------------------|--------|----------------------------------------------|------------|
| `street` *                | string | Nome da rua/avenida                          | 500        |
| `number` *                | string | Número do endereço                           | 10         |
| `neighborhood` *          | string | Bairro                                       | 100        |
| `postal_code` *           | string | CEP (apenas números)                         | 8          |
| `city` *                  | string | Cidade                                       | 100        |
| `state` *                 | string | Estado (UF)                                  | **[Enumeradores state](#enumeradores-state)** |
| `complement`              | string | Complemento do endereço                      | 500        |

### Enumeradores state

| Enumerador | Descrição      |
|-------------|----------------|
| AC          | Acre           |
| AL          | Alagoas        |
| AM          | Amazonas       |
| AP          | Amapá          |
| BA          | Bahia          |
| CE          | Ceará          |
| DF          | Distrito Federal |
| ES          | Espírito Santo |
| GO          | Goiás          |
| MA          | Maranhão       |
| MG          | Minas Gerais    |
| MS          | Mato Grosso do Sul |
| MT          | Mato Grosso    |
| PA          | Pará           |
| PB          | Paraíba        |
| PE          | Pernambuco     |
| PI          | Piauí          |
| PR          | Paraná         |
| RJ          | Rio de Janeiro |
| RN          | Rio Grande do Norte |
| RO          | Rondônia       |
| RR          | Roraima        |
| RS          | Rio Grande do Sul |
| SC          | Santa Catarina |
| SE          | Sergipe        |
| SP          | São Paulo      |
| TO          | Tocantins      |
| EX          | Exceção        |

### Enumeradores payment_instrument_type

| Enumerador      | Descrição        |
|-----------------|------------------|
| postpaid_card   | Cartão pós-pago  |

### Objeto postpaid_card_data

| Campo                           | Tipo    | Descrição                                    | Caracteres |
|---------------------------------|---------|----------------------------------------------|------------|
| `card_type` *                   | string  | Tipo do cartão                               | **[Enumeradores card_type](#enumeradores-card_type)** |
| `card_name` *                   | string  | Nome do cartão                               | 1-50       |
| `printed_name` *                | string  | Nome impresso no cartão                      | 2-26       |
| `cvv_rotation_interval_hours`   | int  | Intervalo de rotação do CVV em horas         | -          |
| `contactless_enabled`           | boolean | Habilita pagamento por aproximação           | -          |
| `delivery_address`              | object  | Endereço de entrega do cartão                | **[Objeto delivery_address](#objeto-delivery_address)** |

### Enumeradores card_type

| Enumerador | Descrição        |
|-------------|------------------|
| virtual     | Cartão virtual   |
| plastic     | Cartão plástico  |

:::info Campos Condicionais
- **`cvv_rotation_interval_hours`**: Obrigatório para `card_type: "virtual"`. Não permitido para `card_type: "plastic"`.
- **`delivery_address`**: Não permitido para `card_type: "virtual"`. Opcional para `card_type: "plastic"`, se não informado será usado o endereço do `owner` ou o previamente cadastrado para a `person_key` informada
- **`contactless_enabled`**: Não permitido para `card_type: "virtual"`, obrigatório para `card_type: "plastic"`
:::

### Objeto delivery_address

| Campo                     | Tipo   | Descrição                                    | Caracteres |
|---------------------------|--------|----------------------------------------------|------------|
| `street` *                | string | Nome da rua/avenida                          | 500        |
| `number` *                | string | Número do endereço                           | 10         |
| `neighborhood` *          | string | Bairro                                       | 100        |
| `postal_code` *           | string | CEP (apenas números)                         | 8          |
| `city` *                  | string | Cidade                                       | 100        |
| `state` *                 | string | Estado (UF)                                  | **[Enumeradores state](#enumeradores-state)** |
| `complement`              | string | Complemento do endereço                      | 500        |

## Response

### Sucesso - Instrumento Criado

STATUS 201

Response Body: Instrumento criado

```json
{
  "request_control_key": "f7947b9d-9be3-49d8-aca2-4b3249e5fa65",
  "payment_instrument_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "postpaid_card_key": "ecf87b4b-fa6e-49c0-a7f0-f2cad6b42d79",
  "owner_person_key": "f2cad6b4-2a68-9572-99a7-2849c8d6ecf8"
}
```

### Response Body Params

| Campo                        | Tipo    | Descrição                                                                         | Caracteres |
|------------------------------|---------|-----------------------------------------------------------------------------------|------------|
| `request_control_key`        | uuidv4  | Chave única de identificação da request utilizada pelo cliente.                   | 36         |
| `payment_instrument_key` *   | uuidv4  | Chave única de identificação do instrumento no formato uuid v4                   | 36         |
| `postpaid_card_key` *        | uuidv4  | Chave única de identificação do cartão pós-pago no formato uuid v4               | 36         |
| `owner_person_key` *         | uuidv4  | Chave única de identificação do proprietário no formato uuid v4                  | 36         |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Schema Inválido                                                                                                         |
| 404                      | CIN000062            | Not Found                                          | Person not found by person key: e51070e4-7494-468d-a20e-bf14789fa8ff                                                                            | Pessoa não encontrada para a person key: e51070e4-7494-468d-a20e-bf14789fa8ff                                                                   |
| 404                      | CIN000007            | Wallet not Found                                   | Wallet with key: abeca0d0-a09d-4b3b-a495-40b553422ced was not found                                                                             | Carteira com a chave: abeca0d0-a09d-4b3b-a495-40b553422ced não foi encontrado                                                                   |
| 400                      | CIN000073            | Bad Request                                        | Limit amount is greater than postpaid credit limit of the wallet                                                        | Limite é maior que o limite de crédito pós-pago da carteira                                                             |
| 400                      | CIN000074            | Bad Request                                        | Limit amount is greater than ccb limit of the wallet                                                                    | Limite é maior que o limite de ccb da carteira                                                                          |
| 400                      | CIN000072            | Bad Request                                        | Error while creating postpaid card in card service, try again in a few minutes                                          | Erro ao criar postpaid card no serviço de cartão, tente novamente em alguns minutos                                     |
| 400                      | CIN000067            | Bad Request                                        | Error while creating owner of the wallet. Try again in a few minutes                                                    | Erro ao criar owner da carteira. Tente novamente em alguns minutos                                                      |
| 409                      | CIN000099            | Conflict                                           | Request control key already exists.                                                                                     | Request control key já existe.                                                                                          |

---

# Listar Entradas de Instrumentos de Pagamento

URL: /documentation/cartao_pos_pago/faturas/instrumento_de_pagamento/listar_entradas_do_instrumento_de_pagamento

A listagem de entradas de instrumentos de pagamento retornará todas as entradas de um instrumento de pagamento específico que se enquadrarem nos query parameters enviados na request.

## Request

ENDPOINT /wallet/ WALLET_KEY /payment_instrument/ PAYMENT_INSTRUMENT_KEY /payment_instrument_entries
MÉTODO GET

### Path Parameters

| Campo                     | Tipo   | Descrição                                    | Caracteres |
|---------------------------|--------|----------------------------------------------|------------|
| `wallet_key`              | uuidv4 | Chave única da carteira no formato UUID v4  | 36         |
| `payment_instrument_key`  | uuidv4 | Chave única do instrumento de pagamento no formato UUID v4 | 36 |

### Query Parameters

| Campo                                 | Tipo    | Descrição                                    | Caracteres |
|---------------------------------------|---------|----------------------------------------------|------------|
| `payment_instrument_entry_type` *      | string  | Tipo da entrada do instrumento de pagamento  | **[Enumeradores payment_instrument_entry_type](#enumeradores-payment_instrument_entry_type)** |
| `payment_instrument_entry_status` *   | string  | Status da entrada do instrumento             | **[Enumeradores payment_instrument_entry_status](#enumeradores-payment_instrument_entry_status)** |
| `page`                                | integer | Número da página para paginação              | -          |
| `page_size`                           | integer | Quantidade de itens por página               | -          |

:::caution Validações
- **Paginação**: Valores de página e tamanho devem ser inteiros válidos
- **Tamanho da página**: Máximo de 100 itens por página
:::

### Enumeradores payment_instrument_entry_type

| Enumerador              | Descrição                                                                         |
|-------------------------|-----------------------------------------------------------------------------------|
| purchase                | Compra                                                                            |
| withdraw                | Saque                                                                             |
| postpaid_card_issuance  | Emissão de cartão pós-pago                                                        |

### Enumeradores payment_instrument_entry_status

| Enumerador              | Descrição                               |
|-------------------------|-----------------------------------------|
| processing_conclusion   | Entrada em processamento de conclusão    |
| processing_cancellation | Entrada em processamento de cancelamento |
| concluded                  | Entrada concluída     |
| canceled                | Entrada cancelada                       |

:::info Observação
A entrada do instrumento de pagamento pode transicionar diretamente de `processing_conclusion` para `processing_cancellation` e `canceled`. Nesse caso, nenhum invoice item é criado.
:::

## Response

STATUS 200

Response Body: Lista de entradas de instrumentos de pagamento

```json
{
  "data": [
    {
      "payment_instrument_entry_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "payment_instrument_entry_amount": 150.00,
      "payment_instrument_entry_type": "purchase",
      "payment_instrument_entry_status": "concluded",
      "payment_instrument_entry_data": {
        "merchant_name": "Merchant Name",
        "merchant_country": "Merchant Country",
        "merchant_postal_code": "Merchant Postal Code",
        "merchant_city": "Merchant City",
        "merchant_street": "Merchant Street"
      },
      "created_at": "2024-01-15T10:30:00Z"
    },
    {
      "payment_instrument_entry_key": "9db81efb-0ac1-5b79-0683-00b8395a9e7",
      "payment_instrument_entry_amount": 200.00,
      "payment_instrument_entry_type": "withdraw",
      "payment_instrument_entry_status": "canceled",
      "payment_instrument_entry_data": {
        "merchant_name": "Merchant Name",
        "merchant_country": "Merchant Country",
        "merchant_postal_code": "Merchant Postal Code",
        "merchant_city": "Merchant City",
        "merchant_street": "Merchant Street"
      },
      "created_at": "2024-01-14T14:45:00Z"
    }
  ],
  "pagination": {
    "current_page": 1,
    "rows_per_page": 100
  }
}
```

### Response Body Params

| Campo            | Tipo         | Descrição                             | Caracteres                                  |
|------------------|--------------|---------------------------------------|---------------------------------------------|
| `data` *         | object array | Entradas de instrumentos de pagamento | **[Objeto payment_instrument_entry](#objeto-payment_instrument_entry)** |
| `pagination` *   | object       | Informações de paginação              | **[Objeto pagination](#objeto-pagination)** |

### Objeto payment_instrument_entry

| Campo                                 | Tipo    | Descrição                                                                         | Caracteres |
|---------------------------------------|---------|-----------------------------------------------------------------------------------|------------|
| `payment_instrument_entry_key` *      | uuidv4  | Chave única de identificação da entrada no formato uuid v4                       | 36         |
| `payment_instrument_entry_amount` *   | float  | Valor da entrada                                                                  | -          |
| `payment_instrument_entry_type` *     | string  | Tipo da entrada do instrumento de pagamento                                      | **[Enumeradores payment_instrument_entry_type](#enumeradores-payment_instrument_entry_type)** |
| `payment_instrument_entry_status` *  | string  | Status da entrada do instrumento                                                 | **[Enumeradores payment_instrument_entry_status](#enumeradores-payment_instrument_entry_status)** |
| `payment_instrument_entry_data`      | object  | Dados do adicionais | **[Objeto payment_instrument_entry_data](#objeto-payment_instrument_entry_data)** |
| `created_at` *                       | string  | Data de criação (formato ISO 8601 UTC)                                           | -          |

### Objeto payment_instrument_entry_data (purchase | withdraw)

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|------------|
| `merchant_name` *          | string  | Nome do estabelecimento comercial                                                 | -          |
| `merchant_country` *       | string  | País do estabelecimento comercial                                                 | -          |
| `merchant_postal_code` *   | string  | Código postal do estabelecimento comercial                                        | -          |
| `merchant_city` *          | string  | Cidade do estabelecimento comercial                                               | -          |
| `merchant_street` *        | string  | Rua do estabelecimento comercial                                                  | -          |

### Objeto payment_instrument_entry_data (postpaid_card_issuance)

| Campo                           | Tipo    | Descrição                                                                          | Caracteres |
|---------------------------------|---------|------------------------------------------------------------------------------------|------------|
| `postpaid_card_issuance_name` * | string  | Nome da emissão do cartão pós-pago                                                 | -          |
| `payment_instrument_key` *      | string  | Chave única do instrumento de pagamento no formato UUID v4                        | 36         |
| `postpaid_card_key` *           | string  | Chave única do cartão pós-pago no formato UUID v4                                  | 36         |

:::info Observação
Esta entrada existe apenas para cartões de carteira de cartão consignado.
:::

### Objeto pagination

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------------------|
| `current_page` *           | integer | Página atual                                                 | -      |
| `rows_per_page` *          | integer | Itens por página                                             | -      |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | CIN000069            | Bad Request                                        | Invalid integer value for page or size query string parameters                                                           | Valor inválido para parâmetros de página ou tamanho de página                                                           |
| 400                      | CIN000084            | Bad Request                                        | Invalid query payment instrument entry status                                                                           | Status de consulta de instrumento de pagamento inválido                                                                |
| 400                      | CIN000085            | Bad Request                                        | Invalid query payment instrument entry type                                                                             | Tipo de consulta de instrumento de pagamento inválido                                                                  |
| 404                      | CIN000007            | Wallet not Found                                   | Wallet with key: abeca0d0-a09d-4b3b-a495-40b553422ced was not found                                                   | Carteira com a chave: abeca0d0-a09d-4b3b-a495-40b553422ced não foi encontrado                                         |
| 404                      | CIN000017            | Payment Instrument Not Found                       | Payment instrument was not found                                                                                         | Instrumento de pagamento não foi encontrado                                                                             |

---

# Listar Instrumentos de Pagamento

URL: /documentation/cartao_pos_pago/faturas/instrumento_de_pagamento/listar_instrumentos_de_pagamento

A listagem de instrumentos de pagamento retornará todos os instrumentos de pagamento de uma carteira específica que se enquadrarem nos query parameters enviados na request.

## Request

ENDPOINT /wallet/ WALLET_KEY /payment_instruments
MÉTODO GET

### Path Parameters

| Campo        | Tipo   | Descrição                                    | Caracteres |
|--------------|--------|----------------------------------------------|------------|
| `wallet_key` | uuidv4 | Chave única da carteira no formato UUID v4  | 36         |

### Query Parameters

| Campo                        | Tipo    | Descrição                                    | Caracteres |
|------------------------------|---------|----------------------------------------------|------------|
| `owner_document_number`      | string  | CPF/CNPJ do proprietário do instrumento      | 11-14      |
| `payment_instrument_type` *  | string  | Tipo do instrumento de pagamento                                                  | **[Enumeradores payment_instrument_type](#enumeradores-payment_instrument_type)** |
| `payment_instrument_status` *| string  | Status do instrumento                                                             | **[Enumeradores payment_instrument_status](#enumeradores-payment_instrument_status)** |
| `page`                       | integer | Número da página para paginação              | -          |
| `page_size`                  | integer | Quantidade de itens por página               | -          |

:::caution Validações
- **Paginação**: Valores de página e tamanho devem ser inteiros válidos
- **Tamanho da página**: Máximo de 100 itens por página
:::

### Enumeradores payment_instrument_type

| Enumerador      | Descrição        |
|-----------------|------------------|
| postpaid_card   | Cartão pós-pago  |

### Enumeradores payment_instrument_status

| Enumerador | Descrição                               |
|------------|-----------------------------------------|
| active     | Instrumento ativo e disponível para uso |
| rejected   | Instrumento rejeitado                   |
| canceled   | Instrumento cancelado                   |

## Response

STATUS 200

Response Body: Lista de instrumentos de pagamento

```json
{
  "data": [
    {
      "request_control_key": "f7947b9d-9be3-49d8-aca2-4b3249e5fa65",
      "payment_instrument_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "postpaid_card_key": "ecf87b4b-fa6e-49c0-a7f0-f2cad6b42d79",
      "owner_person_key": "f2cad6b4-2a68-9572-99a7-2849c8d6ecf8",
      "owner_document_number": "12345678901",
      "payment_instrument_type": "postpaid_card",
      "payment_instrument_status": "active",
      "limit_amount": 2000.00,
      "used_limit": 500.00,
      "created_at": "2024-01-15T10:30:00Z"
    },
    {
      "request_control_key": "3aaad5ea-3a0f-4018-93a8-ab02f5207833",
      "payment_instrument_key": "9db81efb-0ac1-5b79-0683-00b8395a9e7",
      "postpaid_card_key": "f3dad7c5-3b79-0683-11c8-395b9e7f2cad",
      "owner_person_key": "g4ebe8d6-4c8a-1794-22d9-406c0f8g3dbe",
      "owner_document_number": "98765432100",
      "payment_instrument_type": "postpaid_card",
      "payment_instrument_status": "canceled",
      "limit_amount": 1500.00,
      "used_limit": 0.00,
      "created_at": "2024-01-14T14:45:00Z"
    }
  ],
  "pagination": {
    "current_page": 1,
    "rows_per_page": 100,
  }
}
```

### Response Body Params

| Campo            | Tipo         | Descrição                             | Caracteres                                  |
|------------------|--------------|---------------------------------------|---------------------------------------------|
| `data` *         | object array | Instrumentos de pagamento             | **[Objeto payment_instrument](#objeto-payment_instrument)**   |
| `pagination` *   | object       | Informações de paginação              | **[Objeto pagination](#objeto-pagination)** |

### Objeto payment_instrument

| Campo                        | Tipo    | Descrição                                                                         | Caracteres |
|------------------------------|---------|-----------------------------------------------------------------------------------|------------|
| `request_control_key`        | uuidv4  | Chave única de identificação da request utilizada pelo cliente.                   | 36         |
| `payment_instrument_key` *   | uuidv4  | Chave única de identificação do instrumento no formato uuid v4                   | 36         |
| `postpaid_card_key` *        | uuidv4  | Chave única de identificação do cartão pós-pago no formato uuid v4               | 36         |
| `owner_person_key` *         | uuidv4  | Chave única de identificação do proprietário no formato uuid v4                  | 36         |
| `owner_document_number` *    | string  | CPF/CNPJ do proprietário do instrumento                                          | 11 ou 14   |
| `payment_instrument_type` *  | string  | Tipo do instrumento de pagamento                                                  | **[Enumeradores payment_instrument_type](#enumeradores-payment_instrument_type)** |
| `payment_instrument_status` *| string  | Status do instrumento                                                             | **[Enumeradores payment_instrument_status](#enumeradores-payment_instrument_status)** |
| `limit_amount` *             | float  | Limite de crédito do instrumento                                                  | -          |
| `used_limit` *               | float  | Limite utilizado do instrumento                                                   | -          |
| `created_at` *               | string  | Data de criação (formato ISO 8601 UTC)                                           | -          |

### Objeto pagination

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|--------------------------------------------------------------|
| `current_page` *           | integer | Página atual                                                 | -      |
| `rows_per_page` *          | integer | Itens por página                                             | -      |

## Error Response

STATUS 4xx

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP<br/>`status` | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`description`                                                                                       | Descrição (pt-br)<br/>`translation`                                                                                     |
|--------------------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400                      | CIN000069            | Bad Request                                        | Invalid integer value for page or size query string parameters                                                           | Valor inválido para parâmetros de página ou tamanho de página                                                           |
| 400                      | CIN000070            | Bad Request                                        | Invalid query payment instrument status                                                                                 | Status de consulta de instrumento de pagamento inválido                                                                |
| 400                      | CIN000071            | Bad Request                                        | Invalid query payment instrument type                                                                                   | Tipo de consulta de instrumento de pagamento inválido                                                                  |
| 404                      | CIN000007            | Wallet not Found                                   | Wallet with key: abeca0d0-a09d-4b3b-a495-40b553422ced was not found                                                   | Carteira com a chave: abeca0d0-a09d-4b3b-a495-40b553422ced não foi encontrado                                         |

---

# Simulação de cenários

URL: /documentation/cartao_pos_pago/faturas/instrumento_de_pagamento/simulacao_de_cenarios

Esta página descreve como simular a criação e cancelamento de entradas de instrumentos de pagamento para testar o fluxo de transações com cartões pós-pagos. Essas simulações são úteis para homologação e testes de integração.

:::info Informação
Essas requisições simulam transações externas e retornam o status HTTP com a chave da entrada criada ou cancelada.
:::

## 1 - Simulação de criação de entrada de instrumento de pagamento

Simula a criação de uma entrada de instrumento de pagamento (transação), como uma compra ou saque realizado com o cartão pós-pago. A entrada será automaticamente vinculada a itens de fatura conforme a configuração de parcelamento.

ENDPOINT /mock/invoice/payment_instrument/ POSTPAID_CARD_KEY /payment_instrument_entry
MÉTODO POST

### Path Parameters

| Campo                        | Tipo   | Descrição                                    | Caracteres |
|------------------------------|--------|----------------------------------------------|------------|
| `postpaid_card_key` *           | string  | Chave única do cartão pós-pago no formato UUID v4                                  | 36         |

Request Body

```json
{
    "request_control_key": "f7947b9d-9be3-49d8-aca2-4b3249e5fa65",
    "payment_instrument_entry_amount": 100.50,
    "number_of_installments": 3,
    "installment_amount": 33.50,
    "payment_instrument_entry_type": "purchase",
    "payment_instrument_entry_data": {
        "merchant_name": "Test Merchant",
        "merchant_country": "BR",
        "merchant_postal_code": "01310-100",
        "merchant_city": "São Paulo",
        "merchant_street": "Av. Paulista"
    }
}
```

### Objeto Request Body

| Campo                                    | Tipo    | Descrição                                                                          | Máx. Caract. |
|------------------------------------------|---------|------------------------------------------------------------------------------------|--------------|
| `request_control_key` *                  | uuidv4  | Chave única de identificação da requisição utilizada pelo cliente                 | 36           |
| `payment_instrument_entry_amount` *       | float   | Valor total da transação                                                          | -            |
| `number_of_installments` *                | integer | Número de parcelas da transação                                                   | -            |
| `installment_amount` *                    | float   | Valor de cada parcela                                                             | -            |
| `payment_instrument_entry_type` *         | string  | Tipo da entrada do instrumento de pagamento                                        | **[Enumeradores payment_instrument_entry_type](#enumeradores-payment_instrument_entry_type)** |
| `payment_instrument_entry_data` *         | object  | Dados adicionais da transação                                                     | **[Objeto payment_instrument_entry_data](#objeto-payment_instrument_entry_data)** |

### Enumeradores payment_instrument_entry_type

| Enumerador              | Descrição                                                                         |
|-------------------------|-----------------------------------------------------------------------------------|
| `purchase`              | Compra realizada com o cartão                                                    |
| `withdraw`              | Saque realizado com o cartão                                                     |
| `postpaid_card_issuance`| Emissão de cartão pós-pago                                                        |

### Objeto payment_instrument_entry_data

| Campo                      | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------|---------|------------------------------------------------------------------------------------|------------|
| `merchant_name` *          | string  | Nome do estabelecimento comercial                                                 | -          |
| `merchant_country` *        | string  | País do estabelecimento comercial                                                | -          |
| `merchant_postal_code` *    | string  | Código postal do estabelecimento comercial                                        | -          |
| `merchant_city` *           | string  | Cidade do estabelecimento comercial                                               | -          |
| `merchant_street` *         | string  | Rua do estabelecimento comercial                                                  | -          |

### Response

STATUS 201

Response Body

```json
{
    "payment_instrument_entry_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6"
}
```

### Response Body Params

| Campo                            | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------------|---------|------------------------------------------------------------------------------------|------------|
| `payment_instrument_entry_key` * | uuidv4  | Chave única de identificação da entrada criada no formato UUID v4                | 36         |

:::tip Comportamento
- A simulação cria uma entrada de instrumento de pagamento com status `active`
- A entrada será automaticamente vinculada a itens de fatura (invoice items) conforme o número de parcelas informado
- Os itens de fatura serão organizados em faturas (invoices) conforme a configuração de fechamento da carteira
- O limite do instrumento de pagamento e da carteira serão validados antes de permitir a criação da entrada
:::

## 2 - Simulação de cancelamento de entrada de instrumento de pagamento

Simula o cancelamento de uma entrada de instrumento de pagamento existente, alterando seu status para `canceled` e liberando o limite utilizado.

ENDPOINT /mock/invoice/payment_instrument/ POSTPAID_CARD_KEY /payment_instrument_entry/ REQUEST_CONTROL_KEY /cancel
MÉTODO PATCH

### Path Parameters

| Campo                        | Tipo   | Descrição                                    | Caracteres |
|------------------------------|--------|----------------------------------------------|------------|
| `postpaid_card_key` *           | string  | Chave única do cartão pós-pago no formato UUID v4                                  | 36         |
| `request_control_key` *       | uuidv4 | Chave única de identificação da requisição original utilizada na criação da entrada | 36 |

Request Body

```json
{
    "payment_instrument_entry_amount": 100.50
}
```

### Objeto Request Body

| Campo                            | Tipo    | Descrição                                                                          | Máx. Caract. |
|----------------------------------|---------|------------------------------------------------------------------------------------|--------------|
| `payment_instrument_entry_amount` * | float   | Valor do cancelamento.                                                          | -            |

### Response

STATUS 200

Response Body

```json
{
    "payment_instrument_entry_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6"
}
```

### Response Body Params

| Campo                            | Tipo    | Descrição                                                                          | Caracteres |
|----------------------------------|---------|------------------------------------------------------------------------------------|------------|
| `payment_instrument_entry_key` * | uuidv4  | Chave única de identificação da entrada cancelada no formato UUID v4             | 36         |

:::tip Comportamento
- **Faturas abertas**: Cancelamentos em faturas abertas liberam o limite imediatamente e removem o valor da fatura
- **Faturas fechadas**: Cancelamentos em faturas fechadas criam chargebacks que aparecerão no campo `invoice_payments_chargebacks` quando forem utilizados na próxima fatura
:::

---

# Webhooks de Carteira

URL: /documentation/cartao_pos_pago/faturas/webhooks/carteira

:::danger Atenção!
Os webhooks da QI Tech não devem ser mapeadas de forma restrita. 
Campos adicionais podem ser incluídos aos payloads dos webhooks retornados em nossas APIs.
:::

:::info Reenvio de Webhooks
Você pode consultar e reenviar webhooks seguindo as instruções detalhadas na documentação: [Reenvio de Webhooks](/documentation/notificacoes/reenvio_de_notificacoes).
:::

## Introdução

Após a criação de uma carteira (`wallet`) dentro do nosso sistema, serão enviados webhooks com os seguintes status:

| Enumerador                    | Tradução               | Descrição                                                  |
|-------------------------------|------------------------|------------------------------------------------------------|
|  active                       | ativa                  | Carteira ativa e disponível para uso                       |
|  rejected                     | rejeitada              | Carteira rejeitada na análise KYC                          |

:::info Informação
O timeout para resposta de nosso webhooks é de 10 segundos.
:::

## Exemplos
----

### Confirmação de abertura

Webhook Body

```json
{
	"webhook_type": "baas.invoice.wallet",
	"webhook_datetime": "2024-08-13T21:35:55.679Z",
	"data": {
		"wallet_key": "fd86d9b1-2a5e-4e03-9a59-a043c7632c97",
		"owner_person_key": "ecf87b4b-fa6e-49c0-a7f0-f2cad6b42d79",
		"wallet_status": "active"
	}
}
```

### Campos do Webhook

| Campo              | Tipo    | Descrição                                                                         | Caracteres |
|--------------------|---------|-----------------------------------------------------------------------------------|------------|
| wallet_key         | string  | Chave única de identificação da carteira no formato uuid v4                       | 36         |
| owner_person_key   | string  | Chave única de identificação do proprietário da carteira no formato uuid v4       | 36         |
| wallet_status      | string  | Status da carteira                                                                | **[Enumeradores wallet_status](#enumeradores-wallet_status)** |

### Enumeradores wallet_status

| Enumerador | Descrição                                                                         |
|------------|-----------------------------------------------------------------------------------|
| active     | Carteira ativa e disponível para uso                                             |
| rejected   | Carteira rejeitada na análise KYC                                                |

---

# Webhooks de Entradas de Carteira

URL: /documentation/cartao_pos_pago/faturas/webhooks/entrada_da_carteira

:::danger Atenção!
Os webhooks da QI Tech não devem ser mapeadas de forma restrita. 
Campos adicionais podem ser incluídos aos payloads dos webhooks retornados em nossas APIs.
:::

:::info Reenvio de Webhooks
Você pode consultar e reenviar webhooks seguindo as instruções detalhadas na documentação: [Reenvio de Webhooks](/documentation/notificacoes/reenvio_de_notificacoes).
:::

## Introdução

Após a criação de uma entrada de carteira (`wallet_entry`) dentro do nosso sistema, serão enviados webhooks com os seguintes status:

| Enumerador                    | Tradução               | Descrição                                                  |
|-------------------------------|------------------------|------------------------------------------------------------|
|  concluded                       | concluída                  | Entrada de carteira concluída            |

:::info Informação
O timeout para resposta de nosso webhooks é de 10 segundos.
:::

## Exemplos
----

### Confirmação de criação

Webhook Body

```json
{
	"webhook_type": "baas.invoice.wallet_entry",
	"webhook_datetime": "2024-08-13T21:35:55.679Z",
	"data": {
		"wallet_key": "ecf87b4b-fa6e-49c0-a7f0-f2cad6b42d79",
		"wallet_entry_key": "fd86d9b1-2a5e-4e03-9a59-a043c7632c97",
        "wallet_entry_amount": 150.00,
		"wallet_entry_type": "revolving_credit",
		"wallet_entry_status": "concluded"
	}
}
```

### Campos do Webhook

| Campo                    | Tipo    | Descrição                                                                         | Caracteres |
|-------------------------|---------|-----------------------------------------------------------------------------------|------------|
| wallet_key              | string  | Chave única de identificação da carteira no formato uuid v4                       | 36         |
| wallet_entry_key        | string  | Chave única de identificação da entrada da carteira no formato uuid v4            | 36         |
| wallet_entry_amount     | number  | Valor da entrada da carteira                                                       | -          |
| wallet_entry_type       | string  | Tipo da entrada da carteira                                                       | **[Enumeradores wallet_entry_type](#enumeradores-wallet_entry_type)** |
| wallet_entry_status     | string  | Status da entrada da carteira                                                     | **[Enumeradores wallet_entry_status](#enumeradores-wallet_entry_status)** |

### Enumeradores wallet_entry_type

| Enumerador        | Descrição                                                                         |
|-------------------|-----------------------------------------------------------------------------------|
| revolving_credit  | Crédito rotativo                                                                  |
| payroll_withdraw  | Saque de folha                                                                    |
| payroll_overdue   | Atraso de folha                                                                   |

:::info Tipos de Entrada de Carteira
- **`revolving_credit`**: Valores de crédito disponibilizados para o cliente
- **`payroll_withdraw`**: Dívida gerada pelo saque do limite e que vai ser descontada todo mês do INSS
- **`payroll_overdue`**: Dívida gerada pelo não pagamento da fatura e também vai ser descontada todo mês do INSS
:::

### Enumeradores wallet_entry_status

| Enumerador | Descrição                                                                         |
|------------|-----------------------------------------------------------------------------------|
| concluded     | Entrada de carteira concluída                                   |

---

# Webhooks de Entradas de Instrumento de Pagamento

URL: /documentation/cartao_pos_pago/faturas/webhooks/entrada_do_instrumento_de_pagamento

:::danger Atenção!
Os webhooks da QI Tech não devem ser mapeadas de forma restrita. 
Campos adicionais podem ser incluídos aos payloads dos webhooks retornados em nossas APIs.
:::

:::info Reenvio de Webhooks
Você pode consultar e reenviar webhooks seguindo as instruções detalhadas na documentação: [Reenvio de Webhooks](/documentation/notificacoes/reenvio_de_notificacoes).
:::

## Introdução

Após a criação de uma entrada de instrumento de pagamento (`payment_instrument_entry`) dentro do nosso sistema, serão enviados webhooks com os seguintes status:

| Enumerador                    | Tradução               | Descrição                                                  |
|-------------------------------|------------------------|------------------------------------------------------------|
|  processing_conclusion        | processando conclusão   | Entrada de instrumento de pagamento em processamento de conclusão |
|  processing_cancellation      | processando cancelamento | Entrada de instrumento de pagamento em processamento de cancelamento |
|  concluded                       | concluída                  | Entrada de instrumento de pagamento concluída |
|  canceled                     | cancelada              | Entrada de instrumento de pagamento foi cancelada          |

:::info Informação
O timeout para resposta de nosso webhooks é de 10 segundos.
:::

## Exemplos
----

### Confirmação de criação

Webhook Body

```json
{
	"webhook_type": "baas.invoice.payment_instrument_entry",
	"webhook_datetime": "2024-08-13T21:35:55.679Z",
	"data": {
		"payment_instrument_key": "ecf87b4b-fa6e-49c0-a7f0-f2cad6b42d79",
		"payment_instrument_entry_key": "fd86d9b1-2a5e-4e03-9a59-a043c7632c97",
		"payment_instrument_entry_amount": 150.00,
		"payment_instrument_entry_type": "purchase",
		"payment_instrument_entry_status": "concluded"
	}
}
```

### Confirmação de cancelamento

Webhook Body

```json
{
	"webhook_type": "baas.invoice.payment_instrument_entry",
	"webhook_datetime": "2024-08-13T21:35:55.679Z",
	"data": {
		"payment_instrument_key": "ecf87b4b-fa6e-49c0-a7f0-f2cad6b42d79",
		"payment_instrument_entry_key": "fd86d9b1-2a5e-4e03-9a59-a043c7632c97",
		"payment_instrument_entry_amount": 150.00,
		"payment_instrument_entry_type": "purchase",
		"payment_instrument_entry_status": "canceled"
	}
}
```

### Processando ativação

Webhook Body

```json
{
	"webhook_type": "baas.invoice.payment_instrument_entry",
	"webhook_datetime": "2024-08-13T21:35:55.679Z",
	"data": {
		"payment_instrument_key": "ecf87b4b-fa6e-49c0-a7f0-f2cad6b42d79",
		"payment_instrument_entry_key": "fd86d9b1-2a5e-4e03-9a59-a043c7632c97",
		"payment_instrument_entry_amount": 150.00,
		"payment_instrument_entry_type": "purchase",
		"payment_instrument_entry_status": "processing_conclusion"
	}
}
```

### Processando cancelamento

Webhook Body

```json
{
	"webhook_type": "baas.invoice.payment_instrument_entry",
	"webhook_datetime": "2024-08-13T21:35:55.679Z",
	"data": {
		"payment_instrument_key": "ecf87b4b-fa6e-49c0-a7f0-f2cad6b42d79",
		"payment_instrument_entry_key": "fd86d9b1-2a5e-4e03-9a59-a043c7632c97",
		"payment_instrument_entry_amount": 150.00,
		"payment_instrument_entry_type": "purchase",
		"payment_instrument_entry_status": "processing_cancellation"
	}
}
```

### Campos do Webhook

| Campo                              | Tipo    | Descrição                                                                         | Caracteres |
|------------------------------------|---------|-----------------------------------------------------------------------------------|------------|
| payment_instrument_key             | string  | Chave única de identificação do instrumento de pagamento no formato uuid v4       | 36         |
| payment_instrument_entry_key       | string  | Chave única de identificação da entrada do instrumento de pagamento no formato uuid v4 | 36         |
| payment_instrument_entry_amount   | number  | Valor da entrada do instrumento de pagamento                                      | -          |
| payment_instrument_entry_type     | string  | Tipo da entrada do instrumento de pagamento                                        | **[Enumeradores payment_instrument_entry_type](#enumeradores-payment_instrument_entry_type)** |
| payment_instrument_entry_status   | string  | Status da entrada do instrumento de pagamento                                      | **[Enumeradores payment_instrument_entry_status](#enumeradores-payment_instrument_entry_status)** |

### Enumeradores payment_instrument_entry_type

| Enumerador              | Descrição                                                                         |
|-------------------------|-----------------------------------------------------------------------------------|
| purchase                | Compra                                                                            |
| withdrawal              | Saque                                                                             |
| postpaid_card_issuance  | Emissão de cartão pós-pago                                                        |

### Enumeradores payment_instrument_entry_status

| Enumerador              | Descrição                                                                         |
|-------------------------|-----------------------------------------------------------------------------------|
| processing_conclusion   | Entrada de instrumento de pagamento em processamento de conclusão                  |
| processing_cancellation | Entrada de instrumento de pagamento em processamento de cancelamento              |
| concluded                  | Entrada de instrumento de pagamento concluída                  |
| canceled                | Entrada de instrumento de pagamento foi cancelada                                 |

:::info Observação
A entrada do instrumento de pagamento pode transicionar diretamente de `processing_conclusion` para `processing_cancellation` e `canceled`. Nesse caso, nenhum invoice item é criado.
:::

---

# Webhooks de Fatura

URL: /documentation/cartao_pos_pago/faturas/webhooks/fatura

:::danger Atenção!
Os webhooks da QI Tech não devem ser mapeadas de forma restrita. 
Campos adicionais podem ser incluídos aos payloads dos webhooks retornados em nossas APIs.
:::

:::info Reenvio de Webhooks
Você pode consultar e reenviar webhooks seguindo as instruções detalhadas na documentação: [Reenvio de Webhooks](/documentation/notificacoes/reenvio_de_notificacoes).
:::

## Introdução

Após o fechamento de uma fatura (`invoice`) dentro do nosso sistema, será enviado um webhook com a mudança de status da fatura:

| Enumerador                    | Tradução               | Descrição                                                  |
|-------------------------------|------------------------|------------------------------------------------------------|
|  processing_closing           | processando fechamento | Fatura em processamento de fechamento                      |
|  processing_expiration       | processando expiração  | Fatura em processamento de expiração                       |
|  closed                       | fechada                | Fatura fechada, não recebe mais itens e os pagamentos foram processados |
|  processing_payment              | aguardando pagamento   | Fatura aguardando pagamento (aplicável apenas para carteiras do tipo `payroll` quando há valor restante a ser pago) |
|  paid                         | paga                   | Fatura paga                                                |

:::info Informação
O timeout para resposta de nosso webhooks é de 10 segundos.
:::

## Exemplos

### Confirmação de fechamento de fatura

Webhook Body

```json
{
	"webhook_type": "baas.invoice.invoice_status_change",
	"webhook_datetime": "2024-08-13T21:35:55.679Z",
	"data": {
		"invoice_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
		"total_amount": 350.00,
		"paid_amount": 0.00,
		"closing_date": "2024-01-31",
		"due_date": "2024-02-15",
		"invoice_status": "closed"
	}
}
```

### Fatura aguardando pagamento (carteira payroll)

Webhook Body

```json
{
	"webhook_type": "baas.invoice.invoice_status_change",
	"webhook_datetime": "2024-08-13T21:35:55.679Z",
	"data": {
		"invoice_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
		"total_amount": 350.00,
		"paid_amount": 0.00,
		"closing_date": "2024-01-31",
		"due_date": "2024-02-15",
		"invoice_status": "processing_payment"
	}
}
```

### Campos do Webhook

| Campo            | Tipo    | Descrição                                                                         | Caracteres |
|-----------------|---------|-----------------------------------------------------------------------------------|------------|
| invoice_key     | string  | Chave única de identificação da fatura no formato uuid v4                        | 36         |
| total_amount    | number  | Valor total da fatura                                                             | -          |
| paid_amount     | number  | Valor pago da fatura                                                               | -          |
| closing_date    | string  | Data de fechamento da fatura (formato YYYY-MM-DD)                                | 10         |
| due_date        | string  | Data de vencimento da fatura (formato YYYY-MM-DD)                                 | 10         |
| invoice_status  | string  | Status da fatura                                                                 | **[Enumeradores invoice_status](#enumeradores-invoice_status)** |

### Enumeradores invoice_status

| Enumerador            | Descrição                                                                         |
|-----------------------|-----------------------------------------------------------------------------------|
| processing_closing    | Fatura em processamento de fechamento                                             |
| processing_expiration | Fatura em processamento de expiração                                              |
| closed                | Fatura fechada, não recebe mais itens e os pagamentos foram processados          |
| processing_payment       | Fatura aguardando pagamento (aplicável apenas para carteiras do tipo `payroll` quando há valor restante a ser pago) |
| paid                  | Fatura paga                                                                       |

---

# Webhooks de Pagamento de Fatura

URL: /documentation/cartao_pos_pago/faturas/webhooks/pagamento_da_fatura

:::danger Atenção!
Os webhooks da QI Tech não devem ser mapeadas de forma restrita. 
Campos adicionais podem ser incluídos aos payloads dos webhooks retornados em nossas APIs.
:::

:::info Reenvio de Webhooks
Você pode consultar e reenviar webhooks seguindo as instruções detalhadas na documentação: [Reenvio de Webhooks](/documentation/notificacoes/reenvio_de_notificacoes).
:::

## Introdução

Após a mudança de status de um pagamento de fatura (`invoice_payment`) dentro do nosso sistema, será enviado um webhook com a mudança de status do pagamento:

| Enumerador                    | Tradução               | Descrição                                                  |
|-------------------------------|------------------------|------------------------------------------------------------|
|  processing_payment              | aguardando pagamento   | Pagamento de fatura aguardando pagamento                   |
|  paid                         | pago                   | Pagamento de fatura pago                                   |

:::info Informação
O timeout para resposta de nosso webhooks é de 10 segundos.
:::

## Exemplos

### Pagamento de fatura (payroll_discount)

Webhook Body

```json
{
	"webhook_type": "baas.invoice.invoice_payment_status_change",
	"webhook_datetime": "2024-08-13T21:35:55.679Z",
	"data": {
		"wallet_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
		"invoice_payment_key": "3571e292-3a83-4011-904d-20ee963022ef",
		"total_amount": 350.00,
		"paid_amount": 0.00,
		"payment_date": "2024-02-15",
		"invoice_payment_type": "payroll_discount",
		"invoice_payment_status": "processing_payment"
	}
}
```

### Pagamento de fatura (bank_slip)

Webhook Body

```json
{
	"webhook_type": "baas.invoice.invoice_payment_status_change",
	"webhook_datetime": "2024-08-13T21:35:55.679Z",
	"data": {
		"wallet_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
		"invoice_payment_key": "3571e292-3a83-4011-904d-20ee963022ef",
		"total_amount": 350.00,
		"paid_amount": 0.00,
		"payment_date": "2024-02-15",
		"invoice_payment_type": "bank_slip",
		"invoice_payment_status": "processing_payment"
	}
}
```

### Campos do Webhook

| Campo                    | Tipo    | Descrição                                                                         | Caracteres |
|-------------------------|---------|-----------------------------------------------------------------------------------|------------|
| wallet_key              | string  | Chave única de identificação da carteira no formato uuid v4                       | 36         |
| invoice_payment_key     | string  | Chave única de identificação do pagamento de fatura no formato uuid v4            | 36         |
| total_amount            | number  | Valor total do pagamento de fatura                                                | -          |
| paid_amount             | number  | Valor pago do pagamento de fatura                                                 | -          |
| payment_date            | string  | Data do pagamento (formato YYYY-MM-DD)                                           | 10         |
| invoice_payment_type    | string  | Tipo do pagamento de fatura                                                       | **[Enumeradores invoice_payment_type](#enumeradores-invoice_payment_type)** |
| invoice_payment_status  | string  | Status do pagamento de fatura                                                     | **[Enumeradores invoice_payment_status](#enumeradores-invoice_payment_status)** |

### Enumeradores invoice_payment_type

| Enumerador        | Descrição                                                                         |
|-------------------|-----------------------------------------------------------------------------------|
| bank_slip         | Boleto bancário                                                                  |
| payroll_discount  | Desconto via folha de pagamento                                                  |

### Enumeradores invoice_payment_status

| Enumerador            | Descrição                                                                         |
|-----------------------|-----------------------------------------------------------------------------------|
| processing_payment       | Pagamento de fatura aguardando pagamento                                         |
| paid                  | Pagamento de fatura pago                                                          |

:::info Observação
- Para pagamentos do tipo `payroll_discount`: o pagamento é criado no momento do fechamento da fatura com o status `processing_payment` e o desconto é solicitado no INSS. Quando o pagamento do desconto é realizado, o status muda para `paid`.
- Para pagamentos do tipo `bank_slip`: o pagamento é criado com status `processing_payment` quando recebemos o aviso de pagamento do boleto. No momento da liquidação do boleto, o status muda para `paid`. O pagamento pode ser criado com status `paid` diretamente caso não seja recebido um aviso de pagamento.
:::

---

# Introdução

URL: /documentation/cartao_pos_pago/introducao

## Cartão Pós-Pago

As APIs para emissão de cartões pós-pago oferecem aos parceiros da QI Tech uma maneira simples e eficiente de permitir que seus clientes solicitem e emitam Cartões Pós-Pagos, tanto **físicos** quanto **virtuais**.

Na QI Tech, proporcionamos aos nossos parceiros a oportunidade de se tornarem subemissores. Por meio de nossas APIs, eles podem oferecer aos seus próprios clientes a possibilidade de emitir cartões pós-pagos, criando uma solução completa para serviços bancários e financeiros.

Para compreender melhor nosso sistema, apresentamos uma visão geral de como funciona o ecossistema de cartões pós-pagos. Contudo, é importante ressaltar que, assim como em todas as nossas APIs, a liberação do serviço deve ser realizada junto ao nosso time, e as **[chamadas são autenticadas](/documentation/primeiros_passos/teste_de_autenticacao)**.

O cartão pós-pago é um cartão vinculado a uma linha de crédito que permite ao portador realizar transações, com o pagamento sendo feito posteriormente. Diferente dos cartões pré-pagos, os cartões pós-pagos não exigem que o saldo da conta seja pré-carregado. O usuário pode realizar compras e pagar posteriormente, conforme o limite de crédito aprovado.

As transações realizadas por meio do cartão pós-pago serão cobradas na fatura do portador, com um prazo determinado para o pagamento. Caso o pagamento não seja realizado até a data de vencimento, o portador pode estar sujeito a encargos financeiros, como juros e taxas.

## Programa

Para realizar a emissão de um cartão pós-pago, o parceiro precisa ter um programa configurado na integração com a QI Tech. O programa define as regras e parâmetros necessários para a emissão de cartões em conformidade com as bandeiras, como o VISA.

Aqui estão algumas informações importantes sobre o programa:

* **Tipo do programa** - Refere-se à modalidade de utilização do cartão. Neste caso, trata-se da modalidade Pós-Pago.
* **Bandeira** - Utilizamos a bandeira VISA para os cartões emitidos.
* **Layout do cartão** - Refere-se ao design do cartão, tanto para o modelo físico quanto virtual, que será exibido na interface gráfica.

:::caution Atenção
Para configurar um novo programa de cartões pós-pago, é necessário envolver os times comerciais e de implantação da QI Tech.
:::

## Carteira (Wallet)

Para emitir cartões de crédito pós-pagos, é necessário primeiro criar uma **carteira (wallet)** que organiza a fatura do cliente. A carteira funciona como um "conta" onde ficam todos os cartões e configurações de faturamento.

:::info O que é uma Wallet
A **wallet** é como a conta do cliente onde ficam todos os cartões e faturas:

- **Uma wallet = fatura**: Cada carteira corresponde à fatura de um cliente específico (identificado por CPF/CNPJ)
- **Múltiplos meios de pagamento**: A mesma wallet pode ter diferentes instrumentos de pagamento (cartões, PIX, etc.)
- **Instrumentos separados**: Após criar a wallet, será necessário criar separadamente os instrumentos de pagamento (cartões de crédito, limites, etc.)
- **Gestão centralizada**: A wallet centraliza todas as operações e configurações relacionadas àquele cliente
:::

Para mais detalhes sobre a criação de carteiras, consulte a **[documentação completa de criação de carteira](/documentation/cartao_pos_pago/faturas/carteira/criacao_de_carteira)**.

## Fluxo de Emissão

Para emitir cartões de crédito pós-pagos, o processo segue uma sequência lógica que começa com a criação de uma carteira (wallet) para o cliente. Esta carteira funciona como um "conta" para organizar todos os cartões e configurações de faturamento.

Após a criação da carteira, é necessário criar um **instrumento de pagamento** do tipo `postpaid_card`. Este instrumento é responsável por gerenciar todas as transações e compras realizadas com o cartão. Ao criar o instrumento, um cartão físico ou virtual é criado automaticamente conforme solicitado.

:::info Instrumento de Pagamento
O instrumento de pagamento do tipo `postpaid_card`:
- **Centraliza as transações**: Todas as compras realizadas com o cartão ficam atreladas a este instrumento para gerenciamento
- **Cria o cartão automaticamente**: Ao criar o instrumento, um cartão físico ou virtual é criado automaticamente conforme solicitado
- **Gerencia o ciclo de vida**: O acompanhamento do status e operações do cartão é feito através dos **[endpoints de gestão do cartão pós-pago](/documentation/cartao_pos_pago/cartao/busca/buscar_cartao_por_chave)**
:::

Para criar o instrumento de pagamento, consulte a **[documentação de criação de PaymentInstrument](/documentation/cartao_pos_pago/faturas/instrumento_de_pagamento/criacao_de_instrumento_de_pagamento)**.

### Configuração de Limites

A carteira possui um limite global de crédito que define o teto máximo disponível para uso. **Limites individuais para os instrumentos de pagamento também podem ser configurados**.

:::info Como Funcionam os Limites
- **Limite da carteira**: Define o teto máximo de crédito disponível para uso
- **Limite dos instrumentos**: Cada instrumento pode ter seu próprio limite configurado, desde que seja menor que o da carteira
- **Exemplo prático**: Uma carteira com limite de R$ 100 pode ter dois instrumentos com limites de R$ 100 e R$ 80, mas quando o uso dos dois instrumentos chegar a R$ 100, não será possível fazer mais compras
- **Validação em tempo real**: Tanto o limite do instrumento quanto o limite da carteira são validados antes de permitir uma nova transação
:::

:::info Limites em Carteiras Payroll
Carteiras do tipo `payroll` possuem dois limites distintos:
- **`postpaid_credit_limit`**: Limite de crédito pós-pago para compras e transações com o cartão
- **`payroll_withdraw_limit`**: Limite específico para saques de folha de pagamento (salário/benefício), que são descontados automaticamente na folha de pagamento do cliente

Ambos os limites aparecem na lista `wallet_limits` da carteira e funcionam de forma independente, permitindo que o cliente tenha um limite para compras com o cartão e outro limite específico para saques de benefício.
:::

### Gestão e Acompanhamento do Cartão

Com a carteira e o instrumento de pagamento configurados, o cartão (físico ou virtual) é criado automaticamente e fica disponível para uso. A carteira centraliza todas as informações de faturamento, permitindo o acompanhamento de transações, pagamentos e configurações de juros e multas.

O acompanhamento do status e ciclo de vida do cartão pode ser realizado através dos **[endpoints de gestão do cartão pós-pago](/documentation/cartao_pos_pago/cartao/busca/buscar_cartao_por_chave)**, que permitem monitorar todas as etapas do ciclo de vida do cartão, desde a criação até a baixa ou cancelamento.

## Entradas da Carteira (Wallet Entry)

As **entradas da carteira (wallet entries)** são dívidas que ficam registradas na carteira do cliente. Essas dívidas podem ser de diferentes tipos:

- **Crédito rotativo (`revolving_credit`)**: Valores de crédito disponibilizados para o cliente
- **Saque de folha (`payroll_withdraw`)**: Dívida gerada pelo saque do limite e que vai ser descontada todo mês do INSS
- **Atraso de folha (`payroll_overdue`)**: Dívida gerada pelo não pagamento da fatura e também vai ser descontada todo mês do INSS

:::info Como Funcionam as Wallet Entries
- **Uma entrada = uma dívida**: Cada entrada é uma dívida específica
- **Vira item na fatura**: Cada parcela vira automaticamente um item na fatura
- **Organiza na fatura**: Os itens são organizados em faturas
- **Tudo centralizado**: Todas as dívidas ficam organizadas na carteira
:::

Para mais informações e consulta das entradas da carteira (Wallet Entry), consulte a **[documentação de Wallet Entries](/documentation/cartao_pos_pago/faturas/carteira/listar_entradas_da_carteira)**.

:::tip Webhooks de Wallet Entry
Para acompanhar em tempo real as mudanças de status das entradas da carteira, utilize os **[webhooks de Wallet Entry](/documentation/cartao_pos_pago/faturas/webhooks/wallet_entry)**.
:::

## Entradas de Instrumento de Pagamento (Payment Instrument Entry)

As **entradas de instrumento de pagamento (payment instrument entries)** são as transações feitas com o cartão. Cada compra ou saque vira uma entrada:

- **Transações do cartão**: Compras realizadas com o cartão pós-pago
- **Saques do cartão**: Saques realizados com o cartão pós-pago
- **Outras operações**: Demais transações relacionadas ao instrumento

:::info Como Funcionam as Payment Instrument Entries
- **Vinculação automática**: Cada entrada é automaticamente atrelada a um **invoice item**
- **Organização em faturas**: Os invoice items são organizados em **invoices**
- **Criação automática de faturas**: Quando uma nova transação é criada, o sistema automaticamente cria as faturas necessárias para acomodar todas as parcelas da transação, baseado na configuração de fechamento da carteira
:::

:::warning Importante sobre Cancelamentos
- **Faturas abertas**: Cancelamentos em faturas abertas liberam o limite imediatamente e removem o valor da fatura
- **Faturas fechadas**: Cancelamentos em faturas fechadas criam chargebacks que aparecerão no campo `invoice_payments_chargebacks` e serão utilizados na próxima fatura
:::

Para mais informações e consulta das entradas de instrumento de pagamento (Payment Instrument Entry), consulte a **[documentação de Payment Instrument Entries](/documentation/cartao_pos_pago/faturas/instrumento_de_pagamento/listar_entradas_do_instrumento_de_pagamento)**.

:::tip Webhooks de Payment Instrument Entry
Para acompanhar em tempo real as mudanças de status das entradas de instrumento de pagamento, utilize os **[webhooks de Payment Instrument Entry](/documentation/cartao_pos_pago/faturas/webhooks/payment_instruction_entry)**.
:::

## Faturas (Invoice)

As **faturas (invoices)** são criadas automaticamente conforme a necessidade dos invoice items. Elas funcionam como contêineres que agrupam os itens relacionados:

- **Criação automática**: São criadas automaticamente quando necessário, baseadas na configuração de fechamento da carteira
- **Status inicial**: Todas começam com status `opened` (aberta)
- **Recebe novos itens**: Novas compras e transações vão para faturas abertas
- **Fechamento automático**: Faturas são fechadas automaticamente um dia após sua data de fechamento

:::info Ciclo de Vida das Faturas
- **`opened`**: Fatura aberta, recebendo novos itens. Neste status, novos invoice items podem ser adicionados à fatura
- **`closed`**: Fatura fechada, não recebe mais itens. Neste status, a fatura foi processada e o boleto da fatura é atualizado com o novo valor e vencimento. O boleto pode ser consultado através dos endpoints de boleto
- **`processing_payment`**: Aguardando pagamento. Aplicado apenas para carteiras do tipo `payroll` quando há apenas valor restante a ser pago com o benefício após o desconto em folha
:::

:::info Carteiras Payroll
Para carteiras do tipo `payroll`, o fechamento funciona de forma especial:
- **Desconto em folha**: Valores de desconto no INSS são agrupados em um invoice payment do tipo `payroll_discount` que será descontado automaticamente na folha de pagamento. Este pagamento é criado com status `processing_payment` quando o desconto é solicitado no INSS e muda para `paid` quando o pagamento do desconto é realizado
- **Boleto atualizado**: Quando há valor restante após o desconto em folha, o boleto da fatura é atualizado com o novo valor. O boleto pode ser consultado, mas o invoice payment do tipo `bank_slip` só será criado quando o boleto for efetivamente pago
- **Status processing_payment**: Se não há valor a ser pago via boleto, a fatura fica com status `processing_payment` até que o pagamento do benefício seja realizado
:::

Para mais informações e consulta dos itens da fatura (Invoice), consulte a **[documentação de Faturas](/documentation/cartao_pos_pago/faturas/fatura/listar_faturas)**.

## Itens de Fatura (Invoice Item)

Os **itens de fatura (invoice items)** são criados automaticamente para cada parcela das entradas (wallet entry ou payment instrument entry). Eles representam os componentes individuais que compõem uma fatura:

- **Parcelas de dívidas**: Cada parcela de uma wallet entry gera um invoice item
- **Transações individuais**: Cada parcela de um payment instrument entry gera um invoice item
- **Detalhamento da fatura**: Permitem o controle granular de cada item

:::info Características dos Invoice Items
- **Vinculação obrigatória**: Todo invoice item deve estar vinculado a uma **invoice**
- **Rastreabilidade**: Mantêm referência à entrada original
- **Status individual**: Cada item pode ter seu próprio status (pending, paid, canceled)
- **Valores detalhados**: Contêm informações específicas como valor, limite utilizado e valor pago
:::

Para mais informações e consulta dos itens da fatura (Invoice Item), consulte a **[documentação de Invoice Items](/documentation/cartao_pos_pago/faturas/fatura/consulta_por_chave)**.

---

# Emitir Carta Bancária

URL: /documentation/contas/carta_bancaria

A carta bancária ("Declaração de Relacionamento") é um documento PDF assinado digitalmente pela QI SCD que comprova o vínculo ativo entre o cliente e a instituição, incluindo dados da conta. Após a emissão, o documento assinado é enviado por e-mail para os destinatários informados.

## Request

ENDPOINT /account/ ACCOUNT_KEY /ownership_letter
MÉTODO POST

### Path parameters

| Campo | Tipo | Descrição                      |
|---|------|--------------------------------|
| `ACCOUNT_KEY` | UUID | Chave da conta da qual a carta será emitida |

### Body parameters

| Campo | Tipo | Descrição | Max. Caracteres |
|---|---|---|---|
| `emails` * | array de strings | Lista de e-mails que receberão o PDF assinado. Mínimo 1 endereço. | - |

Request Body

```json
{
  "emails": ["contato@cliente.com.br", "financeiro@cliente.com.br"]
}
```

## Response

STATUS 200

Response Body

```json
{
  "document_key": "f1b8e3a2-c5d4-4e9f-a1b2-3c4d5e6f7a8b",
  "account_key": "3e4b8746-da58-4799-bcd0-063326428d3f",
  "document_type": "ownership_letter",
  "document_status": "pending",
  "external_identifier_key": "certifiqi-batch-group-key",
  "file_url": "https://api.certifiqi.com.br/events/certifiqi-batch-group-key",
  "payload": {
    "emails": ["contato@cliente.com.br", "financeiro@cliente.com.br"]
  },
  "created_at": "2026-05-28T19:50:47",
  "updated_at": "2026-05-28T19:50:47"
}
```

### Response Body parameters

| Campo | Tipo | Descrição | Max. Caracteres |
|---|---|---|---|
| `document_key` | UUID | Identificador interno do documento na QI. | 36 |
| `account_key` | UUID | Chave da conta de origem. | 36 |
| `document_type` | string | Tipo do documento. Sempre `ownership_letter` nesta rota. | - |
| `document_status` | string | Status atual do documento. Ver [Enumeradores document_status](#enumeradores-document_status). | - |
| `external_identifier_key` | string | Identificador externo do lote de assinatura. | 300 |
| `file_url` | string | URL atual do documento. Durante `pending`, aponta para o acompanhamento da assinatura; após `sent`, aponta para o PDF assinado. | - |
| `payload` | object | Eco do corpo enviado na requisição. | - |
| `created_at` | datetime Zulu | Data de criação do documento. | 20 |
| `updated_at` | datetime Zulu | Última atualização do documento. | 20 |

### Enumeradores document_status

| Enumerador | Descrição |
|---|---|
| **pending** | Documento criado, aguardando finalização da assinatura. |
| **sent** | Documento assinado e e-mails despachados aos destinatários. |

## Obter link do documento assinado

Após a assinatura ser concluída (status `sent`), use este endpoint para obter um **link expirável** de download do PDF assinado, gerado sob demanda pela CertifIQI. Enquanto o documento estiver `pending` — ou seja, antes de o webhook de assinatura ter sido recebido — a URL ainda não existe e o endpoint retorna erro.

### Request

ENDPOINT /account/ ACCOUNT_KEY /document/ DOCUMENT_KEY /url
MÉTODO GET

### Path parameters

| Campo | Tipo | Descrição |
|---|------|-----------|
| `ACCOUNT_KEY` | UUID | Chave da conta à qual o documento está vinculado. |
| `DOCUMENT_KEY` | UUID | Identificador do documento (`document_key`) retornado na emissão da carta. |

## Response

STATUS 200

Response Body

```json
{
  "document_key": "f1b8e3a2-c5d4-4e9f-a1b2-3c4d5e6f7a8b",
  "document_type": "ownership_letter",
  "document_status": "sent",
  "url": "https://api.certifiqi.com.br/expirable/signed_document.pdf?token=abc123"
}
```

### Response Body parameters

| Campo | Tipo | Descrição | Max. Caracteres |
|---|---|---|---|
| `document_key` | UUID | Identificador interno do documento na QI. | 36 |
| `document_type` | string | Tipo do documento. `ownership_letter` para carta bancária. | - |
| `document_status` | string | Status atual do documento. A URL só é retornada quando `sent`. | - |
| `url` | string | Link **expirável** para download do PDF assinado. Gerado sob demanda; expira após curto período. | - |

### Possíveis erros

| Status | Descrição |
|---|---|
| 404 | Conta ou documento não encontrado para os identificadores informados. |
| 409 | Documento ainda em assinatura (`pending`); a URL assinada ainda não está disponível. |

---

# Emitir Carta de Circularização

URL: /documentation/contas/carta_circularizacao

A carta de circularização é um documento de auditoria assinado digitalmente pela QI SCD que confirma os saldos das contas mantidas pelo titular em uma data-base de referência. Listará todas as contas da CNPJ/CPF do titular vinculadas ao requester da conta informada no path. Após a emissão, o PDF assinado é enviado por e-mail para os destinatários informados (tipicamente o auditor).

## Request

ENDPOINT /account/ ACCOUNT_KEY /circularization_letter
MÉTODO POST

### Path parameters

| Campo | Tipo | Descrição |
|---|------|-----------|
| `ACCOUNT_KEY` | UUID | Chave de uma conta do titular. Serve apenas para identificar o documento e o requester; a carta lista **todas** as contas do mesmo documento dentro do requester. |

### Body parameters

| Campo | Tipo | Descrição | Max. Caracteres |
|---|---|---|---|
| `emails` * | array de strings | Lista de e-mails que receberão o PDF assinado. Mínimo 1 endereço. Tipicamente o e-mail do auditor solicitante. | - |
| `reference_date` * | string (YYYY-MM-DD) | Data-base para o cálculo dos saldos. A carta declara o saldo de cada conta na posição de fechamento desta data. | 10 |
| `recipient_name` | string | Nome da empresa/instituição destinatária, usado na saudação do documento ("Prezados senhores da `{recipient_name}`"). Se omitido, usa "A quem possa interessar,". | - |

Request Body

```json
{
  "emails": ["auditoria@empresa-de-auditoria.com.br"],
  "reference_date": "2026-04-30",
  "recipient_name": "BDO RCS Auditores Independentes"
}
```

## Response

STATUS 200

Response Body

```json
{
  "document_key": "f1b8e3a2-c5d4-4e9f-a1b2-3c4d5e6f7a8b",
  "account_key": "3e4b8746-da58-4799-bcd0-063326428d3f",
  "document_type": "circularization_letter",
  "document_status": "pending",
  "external_identifier_key": "certifiqi-batch-group-key",
  "file_url": "https://api.certifiqi.com.br/events/certifiqi-batch-group-key",
  "payload": {
    "emails": ["auditoria@empresa-de-auditoria.com.br"],
    "reference_date": "2026-04-30",
    "recipient_name": "BDO RCS Auditores Independentes"
  },
  "created_at": "2026-05-28T19:50:47",
  "updated_at": "2026-05-28T19:50:47"
}
```

### Response Body parameters

| Campo | Tipo | Descrição | Max. Caracteres |
|---|---|---|---|
| `document_key` | UUID | Identificador interno do documento na QI. | 36 |
| `account_key` | UUID | Chave da conta de origem. | 36 |
| `document_type` | string | Tipo do documento. Sempre `circularization_letter` nesta rota. | - |
| `document_status` | string | Status atual do documento. Ver [Enumeradores document_status](#enumeradores-document_status). | - |
| `external_identifier_key` | string | Identificador externo do lote de assinatura. | 300 |
| `file_url` | string | URL atual do documento. Durante `pending`, aponta para o acompanhamento da assinatura; após `sent`, aponta para o PDF assinado. | - |
| `payload` | object | Eco do corpo enviado na requisição. | - |
| `created_at` | datetime Zulu | Data de criação do documento. | 20 |
| `updated_at` | datetime Zulu | Última atualização do documento. | 20 |

### Enumeradores document_status

| Enumerador | Descrição |
|---|---|
| **pending** | Documento criado, aguardando finalização da assinatura. |
| **sent** | Documento assinado e e-mails despachados aos destinatários. |

## Obter link do documento assinado

Após a assinatura ser concluída (status `sent`), use este endpoint para obter um **link expirável** de download do PDF assinado, gerado sob demanda pela CertifIQI. Enquanto o documento estiver `pending` — ou seja, antes de o webhook de assinatura ter sido recebido — a URL ainda não existe e o endpoint retorna erro.

### Request

ENDPOINT /account/ ACCOUNT_KEY /document/ DOCUMENT_KEY /url
MÉTODO GET

### Path parameters

| Campo | Tipo | Descrição |
|---|------|-----------|
| `ACCOUNT_KEY` | UUID | Chave da conta à qual o documento está vinculado. |
| `DOCUMENT_KEY` | UUID | Identificador do documento (`document_key`) retornado na emissão da carta. |

## Response

STATUS 200

Response Body

```json
{
  "document_key": "f1b8e3a2-c5d4-4e9f-a1b2-3c4d5e6f7a8b",
  "document_type": "circularization_letter",
  "document_status": "sent",
  "url": "https://api.certifiqi.com.br/expirable/signed_document.pdf?token=abc123"
}
```

### Response Body parameters

| Campo | Tipo | Descrição | Max. Caracteres |
|---|---|---|---|
| `document_key` | UUID | Identificador interno do documento na QI. | 36 |
| `document_type` | string | Tipo do documento. `circularization_letter` para carta de circularização. | - |
| `document_status` | string | Status atual do documento. A URL só é retornada quando `sent`. | - |
| `url` | string | Link **expirável** para download do PDF assinado. Gerado sob demanda; expira após curto período. | - |

### Possíveis erros

| Status | Descrição |
|---|---|
| 404 | Conta ou documento não encontrado para os identificadores informados. |
| 409 | Documento ainda em assinatura (`pending`); a URL assinada ainda não está disponível. |

---

# Consulta de tarifas

URL: /documentation/contas/consulta_de_tarifas

## Request

ENDPOINT /account/ ACCOUNT_KEY /billing_configuration
MÉTODO GET

## Response

STATUS 200

**Response Body**

```json
{
   "billing_configuration_data":{
      "bank_slip":{
         "registration":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":10,
            "expense_type":"fixed_amount"
         },
         "bank_slip_instant_registration":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "permanence":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":10,
            "expense_type":"fixed_amount"
         },
         "protest_removal":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "protest_request":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "protest_costs":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"percentage"
         },
         "expiration_date_change":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "rebate_inclusion":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "discount_inclusion":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "notary_office_payment":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "expiration_write_off":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "write_off":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "protest_write_off":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "protest_removal_and_write_off":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "payment":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "payment_qr_code":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "payment":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "fine_or_interest_inclusion":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "bank_slip_fine_alteration":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "bank_slip_interest_alteration":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "bank_slip_discount_alteration":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
      },
      "ted":{
         "outgoing_ted":{
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435",
            "amount":20,
            "expense_type":"fixed_amount",
         },
         "incoming_ted":{
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435",
            "amount":20,
            "expense_type":"fixed_amount"
         }
      },
      "pix":{
         "incoming_pix":{
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435",
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "outgoing_pix":{
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435",
            "amount":20,
            "expense_type":"fixed_amount"
         },
      },
      "account": {
         "account_maintenance":{
            "amount":40,
            "expense_type": "fixed_amount",
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435"
         },
         "incoming_funds":{
            "amount":10,
            "expense_type": "percentage",
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435"
         },
         "account_creation":{
            "amount":40,
            "expense_type": "fixed_amount",
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435"
         }
      },
      "qr_code": {
         "dynamic_qr_code_expiration":{
            "amount":40,
            "expense_type": "fixed_amount",
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435"
         }
      },
      "prepaid_card": {
         "prepaid_fisical_card_creation":{
            "amount":40,
            "expense_type": "fixed_amount",
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435"
         },
         "prepaid_virtual_card_creation":{
            "amount":40,
            "expense_type": "fixed_amount",
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435"
         },
         "card_withdrawal_fee":{
            "amount":40,
            "expense_type": "fixed_amount",
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435"
         },
         "international_card_withdrawal_fee":{
            "amount":40,
            "expense_type": "fixed_amount",
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435"
         }
      }
   }
}
```

### Billing_configuration_data

| Campo | Tipo | Descrição  |
|---| ---| ---|
| `bank_slip` | object  | **[Bankslip](#bank_slip)**  |
| `ted` | object  | **[TED](#ted)**  |
| `pix` | object  | **[Pix](#pix)**  |
| `account` | object  | **[Conta](#account)**  |
| `prepaid_card` | object  | **[Conta](#prepaid_card)**  |
| `qr_code` | object  | **[Conta](#qr_code)**  |

### BankSlip 

| Campo | Tipo | Descrição | Referência
|---|---|---|---|
| `registration` | object  |  Tarifa de registro | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `permanence` | object  | Tarifa de permanência título cadastrado | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `protest_removal` | object  | Tarifa de sustação/Excl Negativação | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `protest_request` | object  | Tarifa de protesto/Incl Negativação | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `protest_costs` | object  | Custas de Protestos, para esse campo **expense_type deve ser 'percentage'** | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `expiration_date_change` | object  | Tarifa alteração de vencimento | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `rebate_inclusion` | object  | Tarifa concessão abatimento | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `discount_inclusion` | object  | Tarifa concessão desconto | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `notary_office_payment` | object  | Tarifa título Baix. Pg. Cartório | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `expiration_write_off` | object  | Tarifa título baixado decurso prazo | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `write_off` | object  | Tarifa título baixado conf. Pedido | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `protest_write_off` | object  | Tarifa título baixado protestado | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `protest_removal_and_write_off` | object  | Tarifa título baixado SUST/RET/CARTÓRIO | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `payment` | object  | Tarifa Liquidação | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `payment_qr_code` | object  | Tarifa Liquidação por QR-Code  | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `fine_or_interest_inclusion` | object  | Tarifa de inclusão de Multa e Juros | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `bank_slip_fine_alteration` | object  | Tarifa de alteração de Multa | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `bank_slip_interest_alteration` | object  | Tarifa de alteração de Juros | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `bank_slip_discount_alteration` | object  | Tarifa de alteração de Desconto | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `bank_slip_instant_registration` | object  | Tarifa de registro de boleto instantâneo | **[Objeto padrão fees](#objeto-padrão-fees)** |

### Ted 

| Campo | Tipo | Descrição | Referência
|---|---|---|
| `outgoing_ted` | object  | Tarifa de Envio de TED | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `incoming_ted` | object  | Tarifa de Entrada de TED | **[Objeto padrão fees](#objeto-padrão-fees)** |

### Pix 

| Campo | Tipo | Descrição | Referência
|---|---|---|---|
| `incoming_pix` | object  | Tarifa de Entrada de Pix | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `outgoing_pix` | object  | Tarifa de Envio de Pix | **[Objeto padrão fees](#objeto-padrão-fees)** |

### Account 

| Campo | Tipo | Descrição | Referência
|---|---|---|---|
| `incoming_funds` | object  | Tarifa de Entrada de Recurso | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `account_maintenance` | object  | Tarifa de Manutenção de Conta | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `account_creation` | object  | Tarifa de Criação de Conta | **[Objeto padrão fees](#objeto-padrão-fees)** |

### QrCode 

| Campo | Tipo | Descrição | Referência
|---|---|---|---|
| `dynamic_qr_code_expiration` | object  | Tarifa de Expiração de QR-Code Dinâmico não Liquidado | **[Objeto padrão fees](#objeto-padrão-fees)** |

### PrepaidCard 

| Campo | Tipo | Descrição | Referência
|---|---|---|---|
| `prepaid_fisical_card_creation` | object  | Tarifa de Criação de Cartão Físico | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `prepaid_virtual_card_creation` | object  | Tarifa de Criação de Cartão Virtual | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `card_withdrawal_fee` | object  | Tarifa de Saque | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `international_card_withdrawal_fee` | object  | Tarifa de Saque Internacional | **[Objeto padrão fees](#objeto-padrão-fees)** |

### Objeto padrão fees

| Campo | Tipo | Descrição | Referência
|---|---|---|---|
| `amount` | number | Valor da taxa a qual poderá representar em valor absoluto (fixed_amount) ou porcentagem (percentage), deve ser limitado a duas casas decimais|
| `expense_type` | enum | Formato de cobrança | **[Enumerador expense_type](#enumerador-expense-type)** 
| `billing_account_key` | string | id (uuid) contendo a referência para a conta a qual será cobrada a taxa | 

# Enumeradores

### Enumerador _Expense Type_
| Enumerador            | Descrição                                                                 |
|-----------------------|---------------------------------------------------------------------------|
| **percentage**        | Valor em porcentagem                                                      |
| **fixed_amount**    | Valor absoluto                                  |

STATUS 4XX

**Response Body: Error**

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                          | Descrição (eng)<br/>`Description`                 | Descrição (ptbr)<br/>`translation`                                          |
|-------------|----------------------|---------------------------------------------|---------------------------------------------------|-----------------------------------------------------------------------------|
| 400         | BLL000063            | Bad Request                                 | Not allowed to view fees in unavailable accounts   | Conta indisponível.                 |
| 404         | BLL000027            | Not Found                                   | Account not found for the given account_key        | Não foi encontrada uma conta com a chave fornecida. |

---

# Consultar conta

URL: /documentation/contas/consultar_conta

## Request

ENDPOINT /account/ ACCOUNT_KEY
MÉTODO GET

### Path Params

| Campo | Tipo | Descrição                      |
|---|------|--------------------------------|
| `ACCOUNT_KEY` | UUID | Chave da conta a ser detalhada |

## Response

Response Body

```json
{
    "account_branch": "0001",
    "account_digit": "5",
    "account_documents": ["1e4b8746-da58-4799-bcd0-063326428ssd"],
    "account_key": "3e4b8746-da58-4799-bcd0-063326428d3f",
    "account_number": "5960388",
    "account_status": "opened",
    "account_type": "checking",
    "balance": 264.76,
    "blocked_balance": 0,
    "owner_document_number": "30987145223",
    "owner_name": "Maria Luiza Vieira",
    "owner_person_key": "47d08366-a8ec-414c-a0a5-a089fc8a4ee8",
    "created_at": "2023-05-15T19:56:10"
}
```

### Body params

| Campo | Tipo          | Descrição                                    | Max. Caracteres                                             |
|-------|---------------|----------------------------------------------|-------------------------------------------------------------|
| `account_key` | uuid          | Identificador único da conta.                | 36                                                          |
| `account_branch` | string        | Agência, sem o dígito verificador.           | 4                                                           |
| `account_digit` | string        | Dígito verificador da conta.                 | 1                                                           |
| `account_number` | string        | Número de conta, sem o dígito verificador.   | 20                                                          |
| `account_type` | string        | Definição do tipo de conta.                  | 20                                                          |
| `account_status` | string        | Status da conta.                             | [Enumeradores account_status](#enumeradores-account_status) |
| `owner_document_number` | string        | Numero de CPF ou CNPJ.                       | 14                                                          |
| `owner_name` | string        | Nome do dono da conta.                       | 120                                                         |
| `balance` | double        | Saldo da conta.                              | 120                                                         |
| `blocked_balance` | double        | Saldo bloqueado da conta.                    | 120                                                         |
| `owner_person_key` | string        | Identificador único da pessoa dona da conta. | 36                                                          |
| `account_documents` | ARRAY         | Array de identificadores únicos da conta.    | -                                                           |
| `created_at` | datetime Zulu | Data de criação da requisição.               | 20                                                          |

### Enumeradores account_status
| Enumerador | Descrição       |
|------------|-----------------|
| `opened`   | Conta aberta    |
| `closed`   | Conta encerrada |
| `blocked`  | Conta bloqueada |

STATUS 404

Response Body: Usuário não possui credenciais

```json
{
    "title": "Not Found",
    "description": "Account not found for the given key 3e4b8746-da58-4799-bcd0-063326428d3f",
    "translation": "Conta não encontrada para a seguinte chave 3e4b8746-da58-4799-bcd0-063326428d3f",
    "code": "ACC000006"
}
```

STATUS 403

Response Body: Usuário não possui credenciais

```json
{
    "title": "Permission Validator Error",
    "description": "Selected agent do not own this item.",
    "translation": "O agente selecionado não é dono do item.",
    "code": "QIT000005"
}
```

---

# Listar contas

URL: /documentation/contas/consultar_contas

## Request

ENDPOINT /accounts
MÉTODO GET

## Query Params
| Campo | Tipo | Descrição | Caracteres |
|---|---| ---| ---|
| `owner_document_number` | string | Numero de documento do titular da conta. | - |
| `account_number` | string | Numero da conta. | - |

## Response

STATUS 200

**Response Body**

```json
{
	"data": [
	  {
			"account_block_reason": null,
			"account_branch": "0001",
			"account_credentials": [{
					"account_id": 4130,
					"created_at": "2023-05-15T19:56:10",
					"credential_type": {
						"created_at": "2019-06-18T13:19:30",
						"enumerator": "observer",
						"id": 3,
						"translation_path": "account.CredentialType.observer"
					},
					"credential_type_id": 3,
					"id": 4394,
					"is_active": true,
					"person_key": "47d08366-a8ec-414c-a0a5-a089fc8a4ee8",
					"updated_at": null
				},
				{
					"account_id": 4130,
					"created_at": "2023-05-15T19:56:10",
					"credential_type": {
						"created_at": "2019-06-18T13:19:30",
						"enumerator": "approver_requester",
						"id": 4,
						"translation_path": "account.CredentialType.approver_requester"
					},
					"credential_type_id": 4,
					"id": 4395,
					"is_active": true,
					"person_key": "77136fe2-2ddb-4593-b285-67c40b6da46a",
					"updated_at": null
				},
				{
					"account_id": 4130,
					"created_at": "2023-05-15T19:56:10",
					"credential_type": {
						"created_at": "2019-06-18T13:19:30",
						"enumerator": "requester",
						"id": 2,
						"translation_path": "account.CredentialType.requester"
					},
					"credential_type_id": 2,
					"id": 4396,
					"is_active": true,
					"person_key": "77136fe2-2ddb-4593-b285-67c40b6da46a",
					"updated_at": null
				}
			],
			"account_digit": "5",
			"account_documents": [],
			"account_events": [{
				"account_id": 4130,
				"created_at": "2023-05-15T19:56:10",
				"id": 6250,
				"new_account_status": {
					"created_at": "2019-10-11T18:58:31",
					"enumerator": "opened",
					"id": 1,
					"translation_path": "account.AccountStatus.opened"
				},
				"new_account_status_id": 1,
				"old_account_status": null,
				"old_account_status_id": null
			}],
			"account_key": "3e4b8746-da58-4799-bcd0-063326428d3f",
			"account_name": "Default",
			"account_number": "5960388",
			"account_status": {
				"created_at": "2019-10-11T18:58:31",
				"enumerator": "opened",
				"translation_path": "account.AccountStatus.opened"
			},
			"account_type": {
				"created_at": "2019-03-15T13:09:15",
				"enumerator": "checking",
				"translation_path": "account.AccountType.checking"
			},
			"automatic_transfer_management_status": {
				"created_at": "2022-10-27T13:48:18",
				"enumerator": "master"
			},
			"automatic_transfers": [],
			"balance": 264.76,
			"blocked_balance": 0,
			"blocked_balance_events": [],
			"created_at": "2023-05-15T19:56:10",
			"destinations": [],
			"fee": null,
			"internal_webhooks": [{
				"account_id": 4130,
				"created_at": "2023-05-15T16:56:10",
				"id": 144,
				"is_active": true,
				"updated_at": "2023-05-15T16:56:10",
				"webhook_tag": {
					"created_at": "2023-03-30T20:20:04",
					"enumerator": "billing",
					"id": 2
				},
				"webhook_tag_id": 2
			}],
			"investment_available_amount": 264.76,
			"investment_configuration": {
				"block_yield": false,
				"daily_yield_percentage": 1,
				"investment_configuration_status": "active",
				"monthly_yield_amount": 0
			},
			"is_system_account": false,
			"owner_document_number": "30987145223",
			"owner_name": "Maria Luiza Vieira",
			"owner_person_key": "47d08366-a8ec-414c-a0a5-a089fc8a4ee8",
			"permitted_person_keys": [
				"47d08366-a8ec-414c-a0a5-a089fc8a4ee8",
				"47d08366-a8ec-414c-a0a5-a089fc8a4ee8",
				"77136fe2-2ddb-4593-b285-67c40b6da46a",
				"77136fe2-2ddb-4593-b285-67c40b6da46a"
			],
			"requester_key": "77136fe2-2ddb-4593-b285-67c40b6da46a",
			"requester_name": "White Label Develop",
			"setup_fee": null,
			"transactional_limit": null,
			"webhook_enabled": true
		},
		{
			"account_block_reason": null,
			"account_branch": "9999",
			"account_credentials": [],
			"account_digit": "5",
			"account_documents": [],
			"account_events": [],
			"account_key": "748b456c-92fb-4832-837a-0f0a15222a21",
			"account_name": "investment-Default",
			"account_number": "5960388",
			"account_status": {
				"created_at": "2019-10-11T18:58:31",
				"enumerator": "opened",
				"translation_path": "account.AccountStatus.opened"
			},
			"account_type": {
				"created_at": "2022-09-05T20:57:05",
				"enumerator": "investment",
				"translation_path": "account.AccountType.investment"
			},
			"automatic_transfer_management_status": {
				"created_at": "2022-10-27T13:48:18",
				"enumerator": "master"
			},
			"automatic_transfers": [],
			"balance": 0,
			"blocked_balance": 0,
			"blocked_balance_events": [],
			"created_at": "2023-05-24T12:42:42",
			"destinations": [],
			"fee": null,
			"internal_webhooks": [],
			"investment_available_amount": 0,
			"investment_configuration": null,
			"is_system_account": false,
			"owner_document_number": "30987145223",
			"owner_name": "Maria Luiza Vieira",
			"owner_person_key": "47d08366-a8ec-414c-a0a5-a089fc8a4ee8",
			"permitted_person_keys": [
				"47d08366-a8ec-414c-a0a5-a089fc8a4ee8"
			],
			"requester_key": "77136fe2-2ddb-4593-b285-67c40b6da46a",
			"requester_name": "White Label Develop",
			"setup_fee": null,
			"transactional_limit": null,
			"webhook_enabled": null
		}
	],
	"pagination": {
		"current_page": 1,
		"next_page": null,
		"rows_per_page": 100,
		"total_pages": 1,
		"total_rows": 2
	}
}
```

STATUS 400

**Response Body**

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}

```

---

# Consultar detalhes de pedido de conta

URL: /documentation/contas/consultar_detalhes_pedido_conta

Endpoint para consultar os detalhes completos de um pedido de abertura de conta, incluindo informações sobre o status da proposta, partes relacionadas, documentos anexados, eventos e configurações.

:::info Informação
Este endpoint suporta apenas contas do tipo **checking** (conta corrente) e **escrow**.
:::

## Request

ENDPOINT /v2/account_request/ ACCOUNT_REQUEST_KEY /full
MÉTODO GET

### Path Params

| Campo | Tipo | Descrição |
|---|------|-----------|
| `ACCOUNT_REQUEST_KEY` | UUID | Chave única do pedido de conta a ser consultado |

## Response

STATUS 200

Response Body

```json
{
    "proposal_key": "3e4b8746-da58-4799-bcd0-063326428d3f",
    "contract_number": "123456",
    "requester_key": "47d08366-a8ec-414c-a0a5-a089fc8a4ee8",
    "requester_name": "Nome do Solicitante",
    "requester_document_number": "30987145223",
    "request_control_key": "f1a2b3c4-d5e6-7890-abcd-ef1234567890",
    "created_account_key": "c2790f8c-2f93-5g87-b9e4-d437b3c90c78",
    "reserved_related_account": {
        "account_branch": "0001",
        "account_number": "5960388",
        "account_digit": "5",
        "document_number": "30987145223",
        "name": "Nome do Titular",
        "financial_institutions_code_number": "329",
        "financial_institutions": {
            "name": "QI Sociedade de Crédito Direto S.A.",
            "code_number": 329,
            "ispb": 32402502
        },
        "ted_account_type": {
            "enumerator": "checking_account",
            "translation_path": "...",
            "created_at": "2023-05-15T19:56:10"
        },
        "is_activated": true,
        "updated_at": "2023-05-15T19:56:10",
        "created_at": "2023-05-15T19:56:10"
    },
    "proposal_status": {
        "enumerator": "account_opened",
        "translation_path": "...",
        "created_at": "2023-05-15T19:56:10"
    },
    "account_type": {
        "enumerator": "checking",
        "translation_path": "...",
        "created_at": "2023-05-15T19:56:10"
    },
    "document_key": "3571e292-3a83-4011-904d-20ee963022ef",
    "document_template_key": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    "is_simplified": false,
    "created_at": "2023-05-15T19:56:10",
    "signed_contract": null,
    "additional_documents": null,
    "events": [
        {
            "old_status": {
                "enumerator": "pending",
                "translation_path": "...",
                "created_at": "2023-05-15T19:56:10"
            },
            "new_status": {
                "enumerator": "account_opened",
                "translation_path": "...",
                "created_at": "2023-05-15T19:56:10"
            },
            "rejection_reason": null,
            "event_description": "Conta aberta com sucesso",
            "created_at": "2023-05-15T20:00:00"
        }
    ],
    "destinations": [
        {
            "account_branch": "0001",
            "account_number": "5960389",
            "account_digit": "7",
            "document_number": "30987145223",
            "name": "Nome do Destino",
            "financial_institutions_code_number": "329",
            "financial_institutions": {
                "name": "QI Sociedade de Crédito Direto S.A.",
                "code_number": 329,
                "ispb": 32402502
            },
            "ted_account_type": {
                "enumerator": "checking_account",
                "translation_path": "...",
                "created_at": "2023-05-15T19:56:10"
            },
            "is_activated": true,
            "updated_at": "2023-05-15T19:56:10",
            "created_at": "2023-05-15T19:56:10"
        }
    ],
    "attached_documents": [
        {
            "document_key": "c3d4e5f6-a7b8-9012-cdef-123456789012",
            "document_type": {
                "enumerator": "identity",
                "translation_path": "...",
                "created_at": "2023-05-15T19:56:10"
            },
            "description": "Documento de identidade",
            "document_url": "https://example.com/document.pdf",
            "is_activated": true,
            "updated_at": "2023-05-15T19:56:10",
            "created_at": "2023-05-15T19:56:10"
        }
    ],
    "related_parties": [
        {
            "person_key": "47d08366-a8ec-414c-a0a5-a089fc8a4ee8",
            "person_type": {
                "enumerator": "natural",
                "translation_path": "...",
                "created_at": "2023-05-15T19:56:10"
            },
            "individual_document_number": "30987145223",
            "company_document_number": null,
            "name": "Maria Luiza Vieira",
            "mother_name": "Dona Maria Mariane",
            "is_pep": false,
            "final_beneficiary": true,
            "is_signer": true,
            "is_activated": true,
            "address": {
                "street": "Av. Brigadeiro Faria Lima",
                "neighborhood": "Jardim Paulistano",
                "number": "2391",
                "postal_code": "01452905",
                "city": "São Paulo",
                "state": "SP",
                "country": "BR",
                "complement": "Complemento",
                "created_at": "2023-05-15T19:56:10"
            },
            "phone": {
                "phone_type": {
                    "enumerator": "mobile",
                    "translation_path": "...",
                    "created_at": "2023-05-15T19:56:10"
                },
                "country_code": "055",
                "area_code": "11",
                "number": "999999999",
                "created_at": "2023-05-15T19:56:10"
            },
            "nationality": "brasileira",
            "email": "teste@gmail.com",
            "birth_date": "1990-05-06",
            "role_type": {
                "enumerator": "account_holder",
                "translation_path": "...",
                "created_at": "2023-05-15T19:56:10"
            },
            "updated_at": "2023-05-15T19:56:10",
            "created_at": "2023-05-15T19:56:10"
        }
    ],
    "credit_operations": [],
    "automatic_transfer_config": {},
    "billing_configuration_data": null,
    "account_owner_data": null
}
```

### Response Body Params

| Campo | Tipo | Descrição |
|---|------|-----------|
| `proposal_key` | string | Chave única do pedido de conta |
| `contract_number` | string | Número do contrato |
| `requester_key` | string | Chave do solicitante |
| `requester_name` | string | Nome do solicitante |
| `requester_document_number` | string | CPF ou CNPJ do solicitante |
| `request_control_key` | string | Chave de controle da requisição |
| `created_account_key` | string | Chave da conta criada |
| `reserved_related_account` | object | Dados da conta relacionada reservada (pode ser `null`) |
| `proposal_status` | object | Status atual da proposta |
| `account_type` | object | Tipo da conta |
| `document_key` | string | Chave do documento |
| `document_template_key` | string | Chave do template do documento |
| `is_simplified` | boolean | Indica se é uma conta simplificada |
| `created_at` | datetime | Data de criação do pedido |
| `signed_contract` | object | Dados do contrato assinado (pode ser `null`) |
| `additional_documents` | array | Documentos adicionais (pode ser `null`) |
| `events` | array | Lista de eventos do pedido |
| `rejection_reason` | string | Motivo da rejeição, presente apenas se houver rejeição |
| `destinations` | array | Lista de destinos configurados |
| `attached_documents` | array | Lista de documentos anexados |
| `related_parties` | array | Lista de partes relacionadas |
| `credit_operations` | array | Lista de operações de crédito |
| `automatic_transfer_config` | object | Configuração de transferência automática |
| `billing_configuration_data` | object | Configuração de cobrança (pode ser `null`) |
| `account_owner_data` | object | Dados do titular da conta (pode ser `null`) |

### Objeto proposal_status / account_type

| Campo | Tipo | Descrição |
|---|------|-----------|
| `enumerator` | string | Valor do enumerador |
| `translation_path` | string | Caminho de tradução |
| `created_at` | datetime | Data de criação |

### Enumeradores proposal_status

| Enumerador | Descrição |
|------------|-----------|
| `pending` | Pendente |
| `pending_kyc_analysis` | Pendente de análise KYC |
| `account_opened` | Conta aberta |
| `rejected` | Rejeitado |
| `cancelled` | Cancelado |

### Enumeradores account_type

| Enumerador | Descrição |
|------------|-----------|
| `checking` | Conta corrente |
| `escrow` | Conta escrow |

### Objeto events

| Campo | Tipo | Descrição |
|---|------|-----------|
| `old_status` | object | Status anterior (mesmo formato de proposal_status) |
| `new_status` | object | Novo status (mesmo formato de proposal_status) |
| `rejection_reason` | string | Motivo da rejeição (pode ser `null`) |
| `event_description` | string | Descrição do evento |
| `created_at` | datetime | Data do evento |

### Objeto destinations / reserved_related_account

| Campo | Tipo | Descrição |
|---|------|-----------|
| `account_branch` | string | Agência |
| `account_number` | string | Número da conta |
| `account_digit` | string | Dígito verificador |
| `document_number` | string | CPF ou CNPJ |
| `name` | string | Nome do titular |
| `financial_institutions_code_number` | string | Código da instituição financeira |
| `financial_institutions` | object | Dados da instituição financeira |
| `ted_account_type` | object | Tipo da conta TED |
| `is_activated` | boolean | Se o destino está ativo |
| `updated_at` | datetime | Data de atualização |
| `created_at` | datetime | Data de criação |

### Objeto attached_documents

| Campo | Tipo | Descrição |
|---|------|-----------|
| `document_key` | string | Chave única do documento |
| `document_type` | object | Tipo do documento (formato enumerador) |
| `description` | string | Descrição do documento |
| `document_url` | string | URL do documento |
| `is_activated` | boolean | Se o documento está ativo |
| `updated_at` | datetime | Data de atualização |
| `created_at` | datetime | Data de criação |

### Objeto related_parties

| Campo | Tipo | Descrição |
|---|------|-----------|
| `person_key` | string | Chave única da pessoa |
| `person_type` | object | Tipo de pessoa (formato enumerador) |
| `individual_document_number` | string | CPF |
| `company_document_number` | string | CNPJ |
| `name` | string | Nome |
| `mother_name` | string | Nome da mãe |
| `is_pep` | boolean | Se é pessoa politicamente exposta |
| `final_beneficiary` | boolean | Se é beneficiário final |
| `is_signer` | boolean | Se é signatário |
| `is_activated` | boolean | Se está ativo |
| `address` | object | Endereço |
| `phone` | object | Telefone |
| `nationality` | string | Nacionalidade |
| `email` | string | Email |
| `birth_date` | string | Data de nascimento |
| `role_type` | object | Tipo de papel (formato enumerador) |
| `updated_at` | datetime | Data de atualização |
| `created_at` | datetime | Data de criação |

## Erros

STATUS 404

Response Body: Pedido de conta não encontrado

```json
{
    "title": "Proposal Not Found",
    "description": "Proposal not found.",
    "translation": "Proposta não encontrada.",
    "code": "ACR000003"
}
```

STATUS 400

Response Body: Tipo de conta não suportado

```json
{
    "title": "Temporarily unavailable",
    "description": "Temporarily unavailable",
    "translation": "Temporariamente indisponível",
    "code": "ACR000068"
}
```

STATUS 403

Response Body: Usuário não possui credenciais

```json
{
    "title": "Permission Validator Error",
    "description": "Selected agent do not own this item.",
    "translation": "O agente selecionado não é dono do item.",
    "code": "QIT000005"
}
```

---

# Encerramento de conta

URL: /documentation/contas/encerramento_de_conta

## Request

ENDPOINT /account/ ACCOUNT_KEY /cancel
MÉTODO PATCH

## Response

STATUS 200

**Response Body**

```json
{
	"account_block_reason": null,
	"account_branch": "0001",
	"account_credentials": [{
			"account_id": 3493,
			"created_at": "2023-01-04T11:10:53",
			"credential_type": {
				"created_at": "2019-06-18T13:19:30",
				"enumerator": "observer",
				"id": 3,
				"translation_path": "account.CredentialType.observer"
			},
			"credential_type_id": 3,
			"id": 3456,
			"is_active": true,
			"person_key": "10ffdcef-6ac7-4ca0-9932-8a0e49ff5972",
			"updated_at": null
		},
		{
			"account_id": 3493,
			"created_at": "2023-01-04T11:10:53",
			"credential_type": {
				"created_at": "2019-06-18T13:19:30",
				"enumerator": "requester",
				"id": 2,
				"translation_path": "account.CredentialType.requester"
			},
			"credential_type_id": 2,
			"id": 3457,
			"is_active": true,
			"person_key": "78269442-caa1-4767-a049-0291b0321063",
			"updated_at": null
		}
	],
	"account_digit": "9",
	"account_documents": [],
	"account_events": [{
			"account_id": 3493,
			"created_at": "2023-01-04T11:10:53",
			"id": 5284,
			"new_account_status": {
				"created_at": "2019-10-11T18:58:31",
				"enumerator": "blocked",
				"id": 3,
				"translation_path": "account.AccountStatus.blocked"
			},
			"new_account_status_id": 3,
			"old_account_status": null,
			"old_account_status_id": null
		},
		{
			"account_id": null,
			"created_at": null,
			"id": null,
			"new_account_status": {
				"created_at": "2019-10-11T18:58:31",
				"enumerator": "closed",
				"id": 2,
				"translation_path": "account.AccountStatus.closed"
			},
			"new_account_status_id": null,
			"old_account_status": {
				"created_at": "2019-10-11T18:58:31",
				"enumerator": "blocked",
				"id": 3,
				"translation_path": "account.AccountStatus.blocked"
			},
			"old_account_status_id": null
		}
	],
	"account_key": "91e42ceb-53f7-4dc5-ab75-db30b1de491f",
	"account_name": "Default",
	"account_number": "2765703",
	"account_status": {
		"created_at": "2019-10-11T18:58:31",
		"enumerator": "closed",
		"translation_path": "account.AccountStatus.closed"
	},
	"account_type": {
		"created_at": "2019-03-15T13:09:15",
		"enumerator": "checking",
		"translation_path": "account.AccountType.checking"
	},
	"automatic_transfer_management_status": {
		"created_at": "2022-10-27T13:48:18",
		"enumerator": "master"
	},
	"automatic_transfers": [],
	"balance": 0.0,
	"blocked_balance": 0.0,
	"blocked_balance_events": [],
	"created_at": "2023-01-04T11:10:53",
	"destinations": [],
	"fee": 0.0,
	"internal_webhooks": [],
	"investment_available_amount": 0.0,
	"investment_configuration": null,
	"is_system_account": false,
	"owner_document_number": "23426525852",
	"owner_name": "Murilo Almeida",
	"owner_person_key": "10ffdcef-6ac7-4ca0-9932-8a0e49ff5972",
	"permitted_person_keys": ["10ffdcef-6ac7-4ca0-9932-8a0e49ff5972",
		"10ffdcef-6ac7-4ca0-9932-8a0e49ff5972",
		"78269442-caa1-4767-a049-0291b0321063"
	],
	"requester_key": "78269442-caa1-4767-a049-0291b0321063",
	"requester_name": "Salgadinhos Show (BAAS)",
	"setup_fee": null,
	"transactional_limit": null,
	"url": "https://storage.googleapis.com/sandbox-doc-api/documents/e054a511-a8db-4c6e-abbe-f376f36fb39c/e054a511-a8db-4c6e-abbe-f376f36fb39c.pdf",
	"webhook_enabled": true
}
```

:::caution **Atenção!**

É importante que o PDF do comporvante de encerramento de conta devolvido no campo **"url"** seja apresentado para o cliente.

:::

### Path Params

| Campo | Tipo | Descrição |
|---|---| ---|
| `account_key` * | string | Chave da conta. | 

## Response

STATUS 400

**Response Body**

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}

```

### Erros

| Codigo | Status code | Descrição | 
|---|---|---|
| ACC000006  | 404  | Account not found for the given key \{account_key\} |
| QIT000003  | 403  | The agent does not have enough roles. |
| ACC000127  | 500  | Failed to create account cancelling term |
| ACC000011  | 423  | Closed accounts can not perform this action. |
| ACC000123  | 400  | Account balance cannot be greater than 0. |
| ACC000124  | 400  | Can't perform this action. There'are few unpaid future transactions |
| ACC000125  | 400  | Can't perform this action. There'are few unpaid bankslip fees |
| ACC000126  | 400  | There'are few accepted or registered bankslips yet |

## Webhook

:::danger Atenção!
Os webhooks da QI Tech não devem ser mapeadas de forma restrita. 
Campos adicionais podem ser incluídos aos payloads dos webhooks retornados em nossas APIs.
:::

:::info Reenvio de Webhooks
Você pode consultar e reenviar webhooks seguindo as instruções detalhadas na documentação: [Reenvio de Webhooks](/documentation/notificacoes/reenvio_de_notificacoes).
:::

Abaixo está descrito o webhook disparado quando uma conta é encerrada.

WEBHOOK_TYPE baas.account.status_change

Webhook Body

```json
{
  "webhook_type": "baas.account.status_change",
  "webhook_datetime": "2021-10-22T20:30:23.459Z",
  "data": {
	"account_key":"91e42ceb-53f7-4dc5-ab75-db30b1de491f",
	"account_status":"closed"
  }
}
```

---

# Extrato de tarifas

URL: /documentation/contas/extrato_de_tarifas

Retorna uma lista das tarifas cobradas em uma conta de cobrança específica no período selecionado.

## Request

ENDPOINT /billing/requester_configuration/billing_account/ BILLING_ACCOUNT_KEY /invoices
MÉTODO GET

### Path Params

| Campo | Tipo | Descrição |
|---|---| ---|
| `BILLING_ACCOUNT_KEY` | string | id (uuid) da conta de cobrança cujas tarifas serão listadas. |

## Query Params

| Campo | Tipo | Descrição |
|---|---| ---|
| `start_date` | string | Data inicial do período, no formato `aaaa-mm-dd`. Opcional. |
| `end_date` | string | Data final do período, no formato `aaaa-mm-dd`. Opcional. |
| `status` | string | Filtra pelo status da tarifa. Opcional. **[Enumerador status](#enumerador-status)** |
| `billing_type` | string | Filtra pelo tipo de tarifa. Pode ser informado mais de uma vez para combinar tipos. Opcional. |
| `page` | integer | Número da página. Padrão `1`. |
| `page_size` | integer | Quantidade de tarifas por página. Padrão `20`, máximo `50`. |

## Response

STATUS 200

**Response Body**

```json
{
  "data": [
    {
      "invoice_key": "d1f4a2b6-8c3e-4f5a-9b7d-2e6c8a0f1d3b",
      "reference_date": "2026-06-01",
      "billing_type": "account_maintenance",
      "billing_type_description": "Tarifa de Manutenção de Conta",
      "status": "paid",
      "total_amount": 30.00,
      "paid_amount": 30.00,
      "amount_owed": 0.00
    },
    {
      "invoice_key": "b2e5c3a7-9d4f-4a6b-8c1e-3f7d9b1a2c4e",
      "reference_date": "2026-06-15",
      "billing_type": "outgoing_ted",
      "billing_type_description": "Tarifa de Envio de TED",
      "status": "open",
      "total_amount": 20.00,
      "paid_amount": 0.00,
      "amount_owed": 20.00
    }
  ],
  "page": 1,
  "page_size": 20,
  "has_next_page": false
}
```

### Response Body

| Campo | Tipo | Descrição |
|---|---| ---|
| `data` | array | Lista de tarifas cobradas. **[Data](#data)** |
| `page` | integer | Página retornada. |
| `page_size` | integer | Quantidade de tarifas por página. |
| `has_next_page` | boolean | Indica se existem mais páginas de resultados. |

### Data

| Campo | Tipo | Descrição |
|---|---| ---|
| `invoice_key` | string | id (uuid) da tarifa. |
| `reference_date` | string | Data de referência da tarifa, no formato `aaaa-mm-dd`. |
| `billing_type` | string | Tipo da tarifa (enumerador). |
| `billing_type_description` | string | Descrição do tipo da tarifa. |
| `status` | string | Status da tarifa. **[Enumerador status](#enumerador-status)** |
| `total_amount` | number | Valor total da tarifa. |
| `paid_amount` | number | Valor já pago da tarifa. |
| `amount_owed` | number | Valor em aberto da tarifa. Tarifas baixadas (`written_off`) retornam `0`. |

# Enumeradores

### Enumerador _Status_

| Enumerador | Descrição |
|---|---|
| **open** | Tarifa em aberto. |
| **pending** | Tarifa aguardando pagamento. |
| **paid** | Tarifa quitada. |
| **written_off** | Tarifa baixada. |

STATUS 4XX

**Response Body: Error**

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo"
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`          | Descrição (eng)<br/>`description`                    | Descrição (ptbr)<br/>`translation`                          |
|-------------|----------------------|-----------------------------|------------------------------------------------------|-------------------------------------------------------------|
| 400         | BLL000096            | Invalid Date Format         | Dates must be formatted as 'yyyy-mm-dd'.             | Datas devem ser formatadas como 'aaaa-mm-dd'                |
| 400         | BLL000043            | Bad Request                 | Invalid status enumerator                            | Status informado não é válido                               |
| 400         | BLL000090            | Invalid value for params    | Page Size and Page Number must be integers           | Page Size e Page Number devem ser números inteiros          |
| 400         | BLL000091            | Page size too large         | Requested page size above limit of 50                | Tamanho de página requerido acima do limite de 50           |
| 400         | BLL000063            | Bad Request                 | Not allowed to view fees in unavailable accounts     | Conta indisponível.                                         |

---

# Gestão de tarifas

URL: /documentation/contas/gestao_de_tarifas

## Request

ENDPOINT /account/ ACCOUNT_KEY /billing_configuration
MÉTODO PUT

:::danger Definição e Repasse de Tarifas
Os valores máximos e mínimos de cada tarifa devem ser alinhados com o time comercial da QI Tech.

O valor a ser repassado ao parceiro, referente a cada tarifa cobrada, também deve ser alinhado junto ao time comercial da QI Tech.
:::

:::danger Observações Gerais:
Para este endpoint, é importante que o "Request Body" seja seguido a risca visto que todos os campos são de carater obrigatório.
:::

**Request Body**

```json
{
   "billing_configuration_data":{
      "bank_slip":{
         "registration":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":10,
            "expense_type":"fixed_amount"
         },
         "bank_slip_instant_registration":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "permanence":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":10,
            "expense_type":"fixed_amount"
         },
         "protest_removal":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "protest_request":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "protest_costs":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"percentage"
         },
         "expiration_date_change":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "rebate_inclusion":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "discount_inclusion":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "notary_office_payment":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "expiration_write_off":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "write_off":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "protest_write_off":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "protest_removal_and_write_off":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "payment":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "payment_qr_code":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "payment":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "fine_or_interest_inclusion":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "bank_slip_fine_alteration":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "bank_slip_interest_alteration":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "bank_slip_discount_alteration":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
      },
      "ted":{
         "outgoing_ted":{
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435",
            "amount":20,
            "expense_type":"fixed_amount",
         },
         "incoming_ted":{
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435",
            "amount":20,
            "expense_type":"fixed_amount"
         }
      },
      "pix_transfer":{
         "incoming_pix":{
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435",
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "outgoing_pix":{
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435",
            "amount":20,
            "expense_type":"fixed_amount"
         },
      },
      "account": {
         "account_maintenance":{
            "amount":40,
            "expense_type": "fixed_amount",
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435"
         },
         "incoming_funds":{
            "amount":10,
            "expense_type": "percentage",
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435"
         },
         "account_creation":{
            "amount":40,
            "expense_type": "fixed_amount",
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435"
         }
      },
      "qr_code": {
         "dynamic_qr_code_expiration":{
            "amount":40,
            "expense_type": "fixed_amount",
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435"
         }
      },
      "prepaid_card": {
         "prepaid_fisical_card_creation":{
            "amount":40,
            "expense_type": "fixed_amount",
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435"
         },
         "prepaid_virtual_card_creation":{
            "amount":40,
            "expense_type": "fixed_amount",
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435"
         },
         "card_withdrawal_fee":{
            "amount":40,
            "expense_type": "fixed_amount",
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435"
         },
         "international_card_withdrawal_fee":{
            "amount":40,
            "expense_type": "fixed_amount",
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435"
         }
      },
      "automatic_pix": {
         "active_recurrence": {
            "amount":0.50,
            "expense_type": "fixed_amount",
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435"
         },
         "recurrence_settlement": {
            "amount":0.80,
            "expense_type": "fixed_amount",
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435"
         }
      }
   }
}

```

### Body Params

| Campo | Tipo | Descrição |
|---|---| ---|
| `billing_configuration_data` | object  | **[Billing_configuration_data](#billing_configuration_data)**  |

### Billing_configuration_data

| Campo | Tipo | Descrição  |
|---| ---| ---|
| `bank_slip` | object  | **[Bankslip](#bank_slip)**  |
| `ted` | object  | **[TED](#ted)**  |
| `pix_transfer` | object  | **[Pix](#pix)**  |
| `account` | object  | **[Conta](#account)**  |
| `prepaid_card` | object  | **[Conta](#prepaid_card)**  |
| `qr_code` | object  | **[Conta](#qr_code)**  |
| `automatic_pix` | object  | **[Pix Automático](#automatic_pix)**  |

### BankSlip 

| Campo | Tipo | Descrição | Referência
|---|---|---|---|
| `registration` | object  |  Tarifa de registro | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `permanence` | object  | Tarifa de permanência título cadastrado | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `protest_removal` | object  | Tarifa de sustação/Excl Negativação | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `protest_request` | object  | Tarifa de protesto/Incl Negativação | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `protest_costs` | object  | Custas de Protestos, para esse campo **expense_type deve ser 'percentage'** | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `expiration_date_change` | object  | Tarifa alteração de vencimento | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `rebate_inclusion` | object  | Tarifa concessão abatimento | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `discount_inclusion` | object  | Tarifa concessão desconto | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `notary_office_payment` | object  | Tarifa título Baix. Pg. Cartório | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `expiration_write_off` | object  | Tarifa título baixado decurso prazo | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `write_off` | object  | Tarifa título baixado conf. Pedido | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `protest_write_off` | object  | Tarifa título baixado protestado | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `protest_removal_and_write_off` | object  | Tarifa título baixado SUST/RET/CARTÓRIO | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `payment` | object  | Tarifa Liquidação | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `payment_qr_code` | object  | Tarifa Liquidação por QR-Code  | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `fine_or_interest_inclusion` | object  | Tarifa de inclusão de Multa e Juros | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `bank_slip_fine_alteration` | object  | Tarifa de alteração de Multa | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `bank_slip_interest_alteration` | object  | Tarifa de alteração de Juros | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `bank_slip_discount_alteration` | object  | Tarifa de alteração de Desconto | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `bank_slip_instant_registration` | object  | Tarifa de registro de boleto instantâneo | **[Objeto padrão fees](#objeto-padrão-fees)** |

### Ted 

| Campo | Tipo | Descrição | Referência
|---|---|---|----|
| `outgoing_ted` | object  | Tarifa de Envio de TED | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `incoming_ted` | object  | Tarifa de Entrada de TED | **[Objeto padrão fees](#objeto-padrão-fees)** |

### Pix 

| Campo | Tipo | Descrição | Referência
|---|---|---|---|
| `incoming_pix` | object  | Tarifa de Entrada de Pix | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `outgoing_pix` | object  | Tarifa de Envio de Pix | **[Objeto padrão fees](#objeto-padrão-fees)** |

### Account 

| Campo | Tipo | Descrição | Referência
|---|---|---|---|
| `incoming_funds` | object  | Tarifa de Entrada de Recurso | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `account_maintenance` | object  | Tarifa de Manutenção de Conta | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `account_creation` | object  | Tarifa de Criação de Conta | **[Objeto padrão fees](#objeto-padrão-fees)** |

### QrCode 

| Campo | Tipo | Descrição | Referência
|---|---|---|---|
| `dynamic_qr_code_expiration` | object  | Tarifa de Expiração de QR-Code Dinâmico não Liquidado | **[Objeto padrão fees](#objeto-padrão-fees)** |

### PrepaidCard 

| Campo | Tipo | Descrição | Referência
|---|---|---|---|
| `prepaid_fisical_card_creation` | object  | Tarifa de Criação de Cartão Físico | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `prepaid_virtual_card_creation` | object  | Tarifa de Criação de Cartão Virtual | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `card_withdrawal_fee` | object  | Tarifa de Saque | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `international_card_withdrawal_fee` | object  | Tarifa de Saque Internacional | **[Objeto padrão fees](#objeto-padrão-fees)** |

### Pix Automático

| Campo | Tipo | Descrição | Referência
|---|---|---|---|
| `active_recurrence` | object  | Tarifa de Recorrência ativa de Pix | **[Objeto padrão fees](#objeto-padrão-fees)** |
| `recurrence_settlement` | object  | Tarifa de Liquidação de Recorrência de Pix | **[Objeto padrão fees](#objeto-padrão-fees)** |

### Objeto padrão fees

| Campo | Tipo | Descrição | Referência
|---|---|---|---|
| `amount` | number | Valor da taxa a qual poderá representar em valor absoluto (fixed_amount) ou porcentagem (percentage), deve ser limitado a duas casas decimais|
| `expense_type` | enum | Formato de cobrança | **[Enumerador expense_type](#enumerador-expense-type)** 
| `billing_account_key` | string | id (uuid) contendo a referência para a conta a qual será cobrada a taxa | 

# Enumeradores

### Enumerador _Expense Type_
| Enumerador            | Descrição                                                                 |
|-----------------------|---------------------------------------------------------------------------|
| **percentage**        | Valor em porcentagem                                                      |
| **fixed_amount**    | Valor absoluto                                  |

## Response

STATUS 200

**Response Body**

```json
{
   "account_key": "3a4fe5f9-3133-4ce3-9988-9ff8827bcaa5",
   "billing_configuration_data":{
      "bank_slip":{
         "registration":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":10,
            "expense_type":"fixed_amount"
         },
         "bank_slip_instant_registration":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "permanence":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":10,
            "expense_type":"fixed_amount"
         },
         "protest_removal":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "protest_request":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "protest_costs":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"percentage"
         },
         "expiration_date_change":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "rebate_inclusion":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "discount_inclusion":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "notary_office_payment":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "expiration_write_off":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "write_off":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "protest_write_off":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "protest_removal_and_write_off":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "payment":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "payment_qr_code":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "payment":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "fine_or_interest_inclusion":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "bank_slip_fine_alteration":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "bank_slip_interest_alteration":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "bank_slip_discount_alteration":{
            "billing_account_key": "f6bc82ae-8ede-424d-9450-242a8c9d2435", 
            "amount":20,
            "expense_type":"fixed_amount"
         },
      },
      "ted":{
         "outgoing_ted":{
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435",
            "amount":20,
            "expense_type":"fixed_amount",
         },
         "incoming_ted":{
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435",
            "amount":20,
            "expense_type":"fixed_amount"
         }
      },
      "pix":{
         "incoming_pix":{
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435",
            "amount":20,
            "expense_type":"fixed_amount"
         },
         "outgoing_pix":{
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435",
            "amount":20,
            "expense_type":"fixed_amount"
         },
      },
      "account": {
         "account_maintenance":{
            "amount":40,
            "expense_type": "fixed_amount",
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435"
         },
         "incoming_funds":{
            "amount":10,
            "expense_type": "percentage",
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435"
         },
         "account_creation":{
            "amount":40,
            "expense_type": "fixed_amount",
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435"
         }
      },
      "qr_code": {
         "dynamic_qr_code_expiration":{
            "amount":40,
            "expense_type": "fixed_amount",
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435"
         }
      },
      "prepaid_card": {
         "prepaid_fisical_card_creation":{
            "amount":40,
            "expense_type": "fixed_amount",
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435"
         },
         "prepaid_virtual_card_creation":{
            "amount":40,
            "expense_type": "fixed_amount",
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435"
         },
         "card_withdrawal_fee":{
            "amount":40,
            "expense_type": "fixed_amount",
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435"
         },
         "international_card_withdrawal_fee":{
            "amount":40,
            "expense_type": "fixed_amount",
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435"
         }
      },
      "automatic_pix": {
         "active_recurrence": {
            "amount":0.50,
            "expense_type": "fixed_amount",
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435"
         },
         "recurrence_settlement": {
            "amount":0.80,
            "expense_type": "fixed_amount",
            "billing_account_key":"f6bc82ae-8ede-424d-9450-242a8c9d2435"
         }
      }
   }
}
```

STATUS 400

**Response Body**

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}

```

---

# Informe de rendimentos

URL: /documentation/contas/informe_rendimentos

## Request

ENDPOINT /account/ ACCOUNT_KEY /income_report/ REFERENCE_YEAR
MÉTODO POST

Request Body - Titular PF

```json
{
  "partner_logo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAAiCAYAAACUc"
}
```

| Campo          | Descrição                                                                                                                                                                                                                                                                          | Exemplo                          |
|----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------|
| `partner_logo` | logo do perceiro que será apresentada do lado esquerdo do header do informe de rendimentos caso seja forncecida, caso contrário será exibido apenas a logo da QI no canto superior direito. A imagem deve ser fornecida no padrão utilizado no html data:image/png;FORMATO,base64  | data:image/png;base64,iVBORw0... |

### Path Params
| Campo          | Tipo| Descrição                                                                                        |
|----------------|-----|--------------------------------------------------------------------------------------------------|
| `REFERENCE_YEAR` | number | Ano de referência do informe|
| `ACCOUNT_KEY` | UUUID |Chave da conta que deseja consultar o informe | 

## Response
Será retornado um blob(base64) que deve ser convertido para o pdf do imforme de rendimentos.

STATUS 200

**Response Body**

```json
{
  "income_report_blob": "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6xo9rMBuxB32s3rUQrkiWepxyjoUPXQu+lAagKUugUuvBkCAjSjdeTkgo7ZoKbPl0dToluv2MlXQpmfcZNxzpnqsTBW4SSGnORQ2YmDrPV2uYKecAaZmqWSK/O5uPBV+WWWnSug/30iBQtXroNHgc2B8y8B4fTe9mXz7Hz3zhdAKZW5kc3RyZWFtCmVuZG9iago2IDAgb2JqCjw8L1R5cGUgL1BhZ2UvUGFyZW50IDEgMCBSL01lZGlhQm94IFswIDAgNTk1LjI3NTU5MSA4NDEuODg5NzY0XS9Db250ZW50cyA1IDAgUi9SZXNvdXJjZXMgNCAwIFIvVHJpbUJveCBbMCAwIDU5NS4yNzU1OTEgODQxLjg4OTc2NF0vQmxlZWRCb3ggWzAgMCA1OTUuMjc1NTkxIDg0MS44ODk3NjRdPj4KZW5kb2JqCjcgMCBvYmoKPDwvVGl0bGUgKEluZm9ybWUgaW1wb3N0byBkZSByZW5kYSAyMDIzKS9EZXN0IFs2IDAgUiAvWFlaIDEzNSA3NjYuNDM5NzY0IDBdL0NvdW50IDgvRmlyc3QgOCAwIFIvTGFzdCAxNSAwIFIvUGFyZW50IDE2IDAgUj4+CmVuZG9iago4IDAgb2JqCjw8L1RpdGxlIDxmZWZmMDA1MjAwNjUwMDZlMDA2NDAwNjkwMDZkMDA2NTAwNmUwMDc0MDA2ZjAwNzMwMDIwMDA1MzAwNzUwMDZhMDA2NTAwNjkwMDc0MDA2ZjAwNzMwMDIwMDBlMDAwMjAwMDU0MDA3MjAwNjkwMDYyMDA3NTAwNzQwMDYxMDBlNzAwZTMwMDZmMDAyMDAwNDUwMDc4MDA2MzAwNmMwMDc1MDA3MzAwNjkwMDc2MDA2MTAwM2E+L0Rlc3QgWzYgMCBSIC9YWVogNjIuMjUgNTk1Ljk2NTM1IDBdL0NvdW50IDEvRmlyc3QgOSAwIFIvTGFzdCA5IDAgUi9QYXJlbnQgNyAwIFIvTmV4dCAxMCAwIFI+PgplbmRvYmoKOSAwIG9iago8PC9UaXRsZSAoTmF0dXJlemEgZGUgcmVuZGltZW50bzogMTIwMTcpL0Rlc3QgWzYgMCBSIC9YWVogNjIuMjUgNTY2Ljc4ODc5NyAwXS9Db3VudCAwL1BhcmVudCA4IDAgUj4+CmVuZG9iagoxMCAwIG9iago8PC9UaXRsZSAoUmVuZGltZW50b3MgSXNlbnRvczopL0Rlc3QgWzYgMCBSIC9YWVogNjIuMjUgNDI5LjA1OTI2NiAwXS9Db3VudCAwL1ByZXYgOCAwIFIvUGFyZW50IDcgMCBSL05leHQgMTEgMCBSPj4KZW5kb2JqCjExIDAgb2JqCjw8L1RpdGxlIDxmZWZmMDA1MjAwNjUwMDZlMDA2NDAwNjkwMDZkMDA2NTAwNmUwMDc0MDA2ZjAwNzMwMDIwMDA1NDAwNzIwMDY5MDA2MjAwNzUwMDc0MDBlMTAwNzYwMDY1MDA2OTAwNzMwMDIwMDA2ZTAwNjEwMDIwMDA0NDAwNjUwMDYzMDA2YzAwNjEwMDcyMDA2MTAwZTcwMGUzMDA2ZjAwMjAwMDY0MDA2NTAwMjAwMDQxMDA2YTAwNzUwMDczMDA3NDAwNjUwMDIwMDA0MTAwNmUwMDc1MDA2MTAwNmMwMDNhPi9EZXN0IFs2IDAgUiAvWFlaIDYyLjI1IDM2NC4zNjIyNDQgMF0vQ291bnQgMC9QcmV2IDEwIDAgUi9QYXJlbnQgNyAwIFIvTmV4dCAxMiAwIFI+PgplbmRvYmoKMTIgMCBvYmoKPDwvVGl0bGUgKEJlbnMgZSBEaXJlaXRvcykvRGVzdCBbNiAwIFIgL1hZWiA2Mi4yNSAyOTkuNjY1MjIzIDBdL0NvdW50IDEvUHJldiAxMSAwIFIvRmlyc3QgMTMgMCBSL0xhc3QgMTMgMCBSL1BhcmVudCA3IDAgUi9OZXh0IDE0IDAgUj4+CmVuZG9iagoxMyAwIG9iago8PC9UaXRsZSAoU2FsZG8gZW0gQ29udGEtY29ycmVudGU6KS9EZXN0IFs2IDAgUiAvWFlaIDYyLjI1IDI3MC40ODg2NyAwXS9Db3VudCAwL1BhcmVudCAxMiAwIFI+PgplbmRvYmoKMTQgMCBvYmoKPDwvVGl0bGUgPGZlZmYwMDQzMDA3MjAwZTkwMDY0MDA2OTAwNzQwMDZmMDA3MzAwMjAwMDY1MDA2ZDAwMjAwMDU0MDA3MjAwZTIwMDZlMDA3MzAwNjkwMDc0MDA2ZjAwM2E+L0Rlc3QgWzYgMCBSIC9YWVogNjIuMjUgMTcyLjcyMDA3NiAwXS9Db3VudCAwL1ByZXYgMTIgMCBSL1BhcmVudCA3IDAgUi9OZXh0IDE1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MDBlNz4KPDAwYTU+IDwwMGUzPgo8MDAyOD4gPDAwNDU+CjwwMDViPiA8MDA3OD4KPDAwNDY+IDwwMDYzPgo8MDA0Zj4gPDAwNmM+CjwwMDU5PiA8MDA3Nj4KPDAwMWQ+IDwwMDNhPgo8MDAzMT4gPDAwNGU+CjwwMDVkPiA8MDA3YT4KPDAwMTQ+IDwwMDMxPgo8MDAxYT4gPDAwMzc+CjwwMGEzPiA8MDBlMT4KPDAwMjc+IDwwMDQ0Pgo8MDAyND4gPDAwNDE+CjwwMDI1PiA8MDA0Mj4KPDAwMjY+IDwwMDQzPgo8MDAxMD4gPDAwMmQ+CjwwMGFiPiA8MDBlOT4KPDAwYTQ+IDwwMGUyPgo8MDBiNz4gPDAwZjU+CmVuZGJmY2hhcgplbmRjbWFwCkNNYXBOYW1lIGN1cnJlbnRkaWN0IC9DTWFwIGRlZmluZXJlc291cmNlIHBvcAplbmQKZW5kCmVuZHN0cmVhbQplbmRvYmoKMjAgMCBvYmoKPDwvVHlwZSAvRm9udERlc2NyaXB0b3IvRm9udE5hbWUgL1JXQU5YRitEZWphVnUtU2VyaWYtQm9sZC9Gb250RmFtaWx5IChEZWphVnUgU2VyaWYpL0ZsYWdzIDYvRm9udEJCb3ggWy03IC0xNCA2MjYgNzkxXS9JdGFsaWNBbmdsZSAwL0FzY2VudCA5MzgvRGVzY2VudCAtMjM1L0NhcEhlaWdodCA3OTEvU3RlbVYgODAvU3RlbUggODAvRm9udEZpbGUyIDE3IDAgUj4+CmVuZG9iagoyMSAwIG9iago8PC9UeXBlIC9Gb250L1N1YnR5cGUgL0NJREZvbnRUeXBlMi9CYXNlRm9udCAvUldBTlhGK0RlamFWdS1TZXJpZi1Cb2xkL0NJRFN5c3RlbUluZm8gPDwvUmVnaXN0cnkgKEFkb2JlKS9PcmRlcmluZyAoSWRlbnRpdHkpL1N1cHBsZW1lbnQgMD4+L0NJRFRvR0lETWFwIC9JZGVudGl0eS9XIFszIFszNDhdIDE2IFs0MTVdIDE5IFs2OTYgNjk2IDY5NiA2OTZdIDI2IFs2OTZdIDI5IFszNjldIDM2IFs3NzYgODQ1IDc5NiA4NjcgNzYyXSA0NCBbNDY4XSA0OSBbOTE0XSA1MyBbODMxIDcyMiA3NDRdIDY4IFs2NDggNjk5IDYwOSA2OTkgNjM2IDQzMF0gNzYgWzM4MCAzNjJdIDc5IFszODAgMTA1OCA3MjcgNjY3IDY5OV0gODUgWzUyNyA1NjMgNDYyIDcyNyA1ODFdIDkxIFs1OTZdIDkzIFs1NjhdIDE2MiBbNjQ4IDY0OCA2NDggNjQ4XSAxNjkgWzYwOV0gMTcxIFs2MzZdIDE4MyBbNjY3XV0vRm9udERlc2NyaXB0b3IgMjAgMCBSPj4KZW5kb2JqCjIyIDAgb2JqCjw8L1R5cGUgL0ZvbnQvU3VidHlwZSAvVHlwZTAvQmFzZUZvbnQgL1JXQU5YRitEZWphVnUtU2VyaWYtQm9sZC9Ub1VuaWNvZGUgMTkgMCBSL0VuY29kaW5nIC9JZGVudGl0eS1IL0Rlc2NlbmRhbnRGb250cyBbMjEgMCBSXT4+CmVuZG9iagoyMyAwIG9iago8PC9MZW5ndGggMTAzOD4+CnN0cmVhbQovQ0lESW5pdCAvUHJvY1NldCBmaW5kcmVzb3VyY2UgYmVnaW4KMTIgZGljdCBiZWdpbgpiZWdpbmNtYXAKL0NJRFN5c3RlbUluZm8KPDwgL1JlZ2lzdHJ5IChBZG9iZSkKL09yZGVyaW5nIChVQ1MpCi9TdXBwbGVtZW50IDAKPj4gZGVmCi9DTWFwTmFtZSAvQWRvYmUtSWRlbnRpdHktVUNTIGRlZgovQ01hcFR5cGUgMiBkZWYKMSBiZWdpbmNvZGVzcGFjZXJhbmdlCjwwMDAwPiA8ZmZmZj4KZW5kY29kZXNwYWNlcmFuZ2UKNTEgYmVnaW5iZmNoYXIKPDAwMzQ+IDwwMDUxPgo8MDAyYz4gPDAwNDk+CjwwMDAzPiA8MDAyMD4KPDAwMzY+IDwwMDUzPgo8MDA1Mj4gPDAwNmY+CjwwMDQ2PiA8MDA2Mz4KPDAwNGM+IDwwMDY5Pgo8MDA0OD4gPDAwNjU+CjwwMDQ3PiA8MDA2ND4KPDAwNDQ+IDwwMDYxPgo8MDAyNj4gPDAwNDM+CjwwMDU1PiA8MDA3Mj4KPDAwYWI+IDwwMGU5Pgo8MDA1Nz4gPDAwNzQ+CjwwMDI3PiA8MDA0ND4KPDAwMTE+IDwwMDJlPgo8MDAyND4gPDAwNDE+CjwwMDMxPiA8MDA0ZT4KPDAwMzM+IDwwMDUwPgo8MDAyZD4gPDAwNGE+CjwwMDFkPiA8MDAzYT4KPDAwMTY+IDwwMDMzPgo8MDAxNT4gPDAwMzI+CjwwMDE3PiA8MDAzND4KPDAwMTM+IDwwMDMwPgo8MDAxOD4gPDAwMzU+CjwwMDEyPiA8MDAyZj4KPDAwMTQ+IDwwMDMxPgo8MDAxMD4gPDAwMmQ+CjwwMDI1PiA8MDA0Mj4KPDAwYjU+IDwwMGYzPgo8MDA0YT4gPDAwNjc+CjwwMDQ1PiA8MDA2Mj4KPDAwNTE+IDwwMDZlPgo8MDAxYz4gPDAwMzk+CjwwMDM3PiA8MDA1ND4KPDAwNTg+IDwwMDc1Pgo8MDA0Zj4gPDAwNmM+CjwwMDM4PiA8MDA1NT4KPDAwMjk+IDwwMDQ2Pgo8MDAxYj4gPDAwMzg+CjwwMDFhPiA8MDAzNz4KPDAwMTk+IDwwMDM2Pgo8MDBhYz4gPDAwZWE+CjwwMDM1PiA8MDA1Mj4KPDAwNTA+IDwwMDZkPgo8MDAwNz4gPDAwMjQ+CjwwMDM5PiA8MDA1Nj4KPDAwMzI+IDwwMDRmPgo8MDA1Nj4gPDAwNzM+CjwwMDU0PiA8MDA3MT4KZW5kYmZjaGFyCmVuZGNtYXAKQ01hcE5hbWUgY3VycmVudGRpY3QgL0NNYXAgZGVmaW5lcmVzb3VyY2UgcG9wCmVuZAplbmQKZW5kc3RyZWFtCmVuZG9iagoyNCAwIG9iago8PC9UeXBlIC9Gb250RGVzY3JpcHRvci9Gb250TmFtZSAvTldPTFFQK0RlamFWdS1TZXJpZi9Gb250RmFtaWx5IChEZWphVnUgU2VyaWYpL0ZsYWdzIDYvRm9udEJCb3ggWy05IC0yMDggNjEwIDUzM10vSXRhbGljQW5nbGUgMC9Bc2NlbnQgOTI4L0Rlc2NlbnQgLTIzNS9DYXBIZWlnaHQgNTMzL1N0ZW1WIDgwL1N0ZW1IIDgwL0ZvbnRGaWxlMiAxOCAwIFI+PgplbmRvYmoKMjUgMCBvYmoKPDwvVHlwZSAvRm9udC9TdWJ0eXBlIC9DSURGb250VHlwZTIvQmFzZUZvbnQgL05XT0xRUCtEZWphVnUtU2VyaWYvQ0lEU3lzdGVtSW5mbyA8PC9SZWdpc3RyeSAoQWRvYmUpL09yZGVyaW5nIChJZGVudGl0eSkvU3VwcGxlbWVudCAwPj4vQ0lEVG9HSURNYXAgL0lkZW50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S9UB3IceaZrohXFRljLQzMzQxyVdAQ+HtHqAJHjcUPa845zyak8sm/+sz8bVTyoJ4OZLP9y5XmKdv5IbyM05+HH8vho/qyz8DI4G3lrXy+q3BE5v1puAn1IDdE9/SVro+Y32zXX8yDM+g8l9aYHmroH6rnFFkSybdEOI2z9ss5m1spcrnarqCg4ZtrwG6usNJ2wJ6dMjcAPhyEOdmmMFgOtdF6fUmcw00fhZ184VfeVf1aRe1UBMFGNYFn16CjdzfA5NcpDn1ThmN8ljX0kn1jJzXcWVyxZbszMPITLCiJu7+wQAk1LBqeL3tPZLf4K/dfemd5748c/WjlYznruugZiU26F+/xDIM0nhNTTVs/TI+8jNboP5co2r08sc8jx5J3I5z9H9XbwYzwoKU568c0byyg++MkDcOXm7KjdeiFJul+SjWYv5CYC0iGZddUDzb3z5wPPDWuSgTDOV45zdumBSPyMnA7n4Y9P/KVtOwbf05OPaYMiOi7Sxk+ZvqNWUbIujJN+fblv61f6u/gc5o4ACCmVuZHN0cmVhbQplbmRvYmoKeHJlZgowIDMwCjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAxNSAwMDAwMCBuIAowMDAwMDAwMDY4IDAwMDAwIG4gCjAwMDAwMDAxMTUgMDAwMDAgbiAKMDAwMDAwMDE3NyAwMDAwMCBuIAowMDAwMDAwMzE5IDAwMDAwIG4gCjAwMDAwMDE5NDYgMDAwMDAgbiAKMDAwMDAwMjEzMSAwMDAwMCBuIAowMDAwMDAyMjcwIDAwMDAwIG4gCjAwMDAwMDI1NzEgMDAwMDAgbiAKMDAwMDAwMjY4NyAwMDAwMCBuIAowMDAwMDAyODE4IDAwMDAwIG4gCjAwMDAwMDMxNTAgMDAwMDAgbiAKMDAwMDAwMzMwMiAwMDAwMCBuIAowMDAwMDAzNDE0IDAwMDAwIG4gCjAwMDAwMDM2MTQgMDAwMDAgbiAKMDAwMDAwMzgyNiAwMDAwMCBuIAowMDAwMDAzODc4IDAwMDAwIG4gCjAwMDAwMDc2MDEgMDAwMDAgbiAKMDAwMDAxMTk3MSAwMDAwMCBuIAowMDAwMDEyOTc1IDAwMDAwIG4gCjAwMDAwMTMxOTkgMDAwMDAgbiAKMDAwMDAxMzY4NCAwMDAwMCBuIAowMDAwMDEzODI5IDAwMDAwIG4gCjAwMDAwMTQ5MTggMDAwMDAgbiAKMDAwMDAxNTEzOCAwMDAwMCBuIAowMDAwMDE1NjEzIDAwMDAwIG4gCjAwMDAwMTU3NTMgMDAwMDAgbiAKMDAwMDAxNTgwMiAwMDAwMCBuIAowMDAwMDE3NDcyIDAwMDAwIG4gCnRyYWlsZXIKPDwKL1NpemUgMzAKL1Jvb3QgMyAwIFIKL0luZm8gMiAwIFIKPj4Kc3RhcnR4cmVmCjE4NDIwCiUlRU9GCg=="
}
```

STATUS 404

**Response Body**

```json
{
  "data": "{\"title\": \"Not Found\", \"description\": \"Account not found for the given parameters.\", \"translation\": \"Conta não encontrada para os parâmetros fornecidos.\", \"extra_fields\": {}, \"code\": \"ACC000008\"}"
}

```

---

# Consultar Bloqueios em Conta

URL: /documentation/contas/ordens_de_bloqueio

## Request

ENDPOINT /account/ ACCOUNT_KEY /account_block_records
MÉTODO GET

### Path parameters

| Campo | Tipo | Descrição                      |
|---|------|--------------------------------|
| `ACCOUNT_KEY` | UUID | Chave da conta a ser detalhada |

### Query parameters

| Campo                      | Tipo       | Descrição                                             | Caracteres                                                                  |
|----------------------------|------------|-------------------------------------------------------|-----------------------------------------------------------------------------|
| `block_order_statuses` * | enumerator | Indica o status da ordem de bloqueio. | [Enumeradores block_order_statuses](#enumeradores-block_order_statuses) |

### Enumeradores block_order_statuses

| Enumerador   | Descrição                    |
|--------------|------------------------------|
| **pending** | Ordem de bloqueio pendente |
| **open** | Ordem de bloqueio aberta   |
| **concluded** | Ordem de bloqueio concluída   |

## Response

STATUS 200

Response Body

```json
{
  [
    {
      "account_blocked_amount": 1000,
      "block_order": {
        "block_order_protocol": "100000000",
        "block_order_sequence": "00001",
        "case_number": "0000000000000",
        "court_code": "00000",
        "defendant_document_number": "00000000000000",
        "institution_document_number": null,
        "lawsuit_author_name": "NOME DO JUIZ",
        "lawsuit_type": "labor",
        "protocol_datetime": "2025-04-28T08:34:16Z",
        "requested_amount": 1000,
        "requester_judge": "JUIZ DE DIREITO"
      }
    }
  ]
}
```

### Response Body Params

| Campo                          | Tipo            | Descrição                                          | Max. Caracteres |
|--------------------------------|-----------------|----------------------------------------------------|-----------------|
| `account_blocked_amount`       | float          | Valor bloqueado na conta.                          | -               |
| `block_order`                  | object          | Detalhes da ordem de bloqueio.                     | **[Objeto block_order](#objeto-block_order)**          |

### Objeto block_order

| Campo                          | Tipo            | Descrição                                          | Max. Caracteres |
|--------------------------------|-----------------|----------------------------------------------------|-----------------|
| `block_order_protocol`      | string          | Protocolo da ordem de bloqueio.                    | -               |
| `block_order_sequence`      | string          | Sequência da ordem de bloqueio.                    | -               |
| `case_number`               | string          | Número do caso.                                    | -               |
| `court_code`                | string          | Código do tribunal.                                | -               |
| `defendant_document_number` | string          | Número de documento do réu.                        | 14              |
| `institution_document_number` | string or null| Número de documento da instituição, se aplicável.  | -               |
| `lawsuit_author_name`       | string          | Nome do autor do processo.                         | -               |
| `lawsuit_type`              | enumerator      | Tipo de processo.                                  | **[Enumeradores lawsuit_type](#enumeradores-lawsuit_type)**               |
| `protocol_datetime`         | string   | Data e hora do protocolo.                          | 20              |
| `requested_amount`          | float          | Valor solicitado.                                  | -               |
| `requester_judge`           | string          | Nome do juiz solicitante.                          | -               |

### Enumeradores lawsuit_type

| Enumerador  | Descrição              |
|-------------|------------------------|
| `labor`     | Processo trabalhista   |
| `civil`     | Processo civil         |
| `criminal`  | Processo criminal      |
| `tax`       | Processo tributário    |
| `family`    | Processo de família    |

STATUS 404

Response Body: Conta não encontrada

```json
{
    "title": "Not Found",
    "description": "Account not found for the given key 3e4b8746-da58-4799-bcd0-063326428d3f",
    "translation": "Conta não encontrada para a seguinte chave 3e4b8746-da58-4799-bcd0-063326428d3f",
    "code": "ACC000006"
}
```

STATUS 403

Response Body: Usuário não possui permissão

```json
{
    "title": "Permission Validator Error",
    "description": "Selected agent do not own this item.",
    "translation": "O agente selecionado não é dono do item.",
    "code": "QIT000005"
}
```

---

# Simulação de cenários

URL: /documentation/contas/simulacao

Passo a passo para simular o bloqueio e desbloqueio de conta de clientes.

## 1 - Simulação de bloqueio de conta

### Request

ENDPOINT /mock/account/ ACCOUNT_KEY /block
MÉTODO PATCH

Request Body

```json
{
  "account_block_reason": "\<Motivo do bloqueio da conta\>"
}
```

### Body Parameters

| Campo                | Tipo   | Descrição                          | Exemplo                                |
|----------------------|--------|------------------------------------|----------------------------------------|
| `account_block_reason` | string | Motivo do bloqueio da conta         | "judicially_suspended"                   |

:::info
Os motivos de bloqueio possíveis podem ser acessados na seção [Webhook de bloqueio de conta](../movimentacao_de_contas/webhook_movimentacoes#webhook-de-bloqueio-de-conta).
:::

## 2 - Simulação de desbloqueio de conta

### Request

ENDPOINT /mock/account/ ACCOUNT_KEY /unblock
MÉTODO PATCH

Request Body

```json
{
}
```

---

# Cadastrar conta no DDA

URL: /documentation/dda/cadastro_dda

Para habilitar o recebimento das informações dos boletos, que tenham o titular de uma conta QI como pagador, é necessário cadastrar esta conta no DDA.

As evidências da assinatura do termo de adesão devem ser enviadas na requisição.

## Request

ENDPOINT /account/ ACCOUNT_KEY /dda
MÉTODO POST

Request Body

```json
{
	"authorization_term": {
		"document_number": "12345678910", 
		"signature": {
			"signer": {
				"name": "Jose da Silva",
				"email": "ownermail@mail.com",
				"phone": {
					"number": "0987654321",
					"area_code": "11",
					"country_code": "55"
				},
				"document_number": "12345678910"
			},
			"authentication_type": "opt_in",
			"authenticity": {
				"timestamp": "1970-01-01T00:00:01.080100Z",
				"ip_address": "177.51.1.000",
				"fingerprint": {
					"browser": "Mozila"
				},
				"third_party_additional_data": {},
				"session_id": "10c33308-866f-47e5-bec8-2e512e9c0237"
			},
			"signed_object": {
				"raw_text": "Lorem ipsum dolor sit amet, consectetur a...."
			}
		}
	}
}
```

### Path Params

| Campo         | Tipo   | Descrição                                               | Caracteres |
| ------------- | ------ | ------------------------------------------------------- | ---------- |
| `account_key` | string | Chave de identificação da conta a ser cadastrada no DDA | 36         |

### Body Params

| Campo                | Tipo   | Descrição                                  | Caracteres |
| -------------------- | ------ | ------------------------------------------ | ---------- |
| `authorization_term` | object | Dados da autorização assinada pelo pagador | -          |

## Response

STATUS 201

**Response Body**

```json
{
	"account_key": "e1c891a1-78a0-4915-9cb8-8b6adfc2e83a",
	"dda_account_status": "active",
	"account_number": "12345",
	"account_digit": "6",
	"owner_document_number": "12345678910",
	"owner_person_key": "99784848-36bb-4049-8ce3-0e47938738de",
	"requester_key": "59a63416-073a-45d5-b821-6a39664632ca",
	"created_at": "2023-10-22T20:30:23.459Z"
}
```

| Campo                   | Tipo   | Descrição                                                | Caracteres |
| ----------------------- | ------ | -------------------------------------------------------- | ---------- |
| `account_key`           | string | Account_key da conta cadastrada no DDA.                  | 36         |
| `dda_account_status`    | enum   | [Enumeradores de status da conta.](#enumeradores-status) | -          |
| `account_number`        | string | Número da conta.                                         | 20         |
| `account_digit`         | string | Dígito da conta.                                         | 1          |
| `owner_document_number` | string | Documento do dono da conta.                              | 14         |
| `owner_person_key`      | string | Person key do dono da conta.                             | 36         |
| `requester_key`         | string | Requester key de quem abriu a conta.                     | 36         |
| `created_at`            | string | Data de criação e ativação no DDA.                       | 24         |

### Enumeradores Status

| Enumerador  | Descrição                           |
| ----------- | ----------------------------------- |
| `active`    | Conta ativa no DDA.                 |
| `cancelled` | Relacionamento com o DDA encerrado. |

---

# Remover conta do DDA

URL: /documentation/dda/cancelamento_dda

Após a remoção da conta no DDA, as notificações de registro de boletos tendo o titular da conta como pagador, não serão mais recebidas.

:::info Informação
Caso o titular da conta ainda possua outra(s) conta(s), aberta(s) pelo parceiro integrador e cadastrada(s) no DDA, as notificações continuarão sendo enviadas.

Para interrupção das notificações, é necessário remover todas as contas do titular cadastradas no DDA.
:::

As evidências da assinatura do termo de cancelamento devem ser enviadas na requisição.

## Request

ENDPOINT /account/ ACCOUNT_KEY /dda/cancel
MÉTODO PATCH

Request Body

```json
{
	"authorization_term": {
		"document_number": "12345678910", 
		"signature": {
			"signer": {
				"name": "Jose da Silva",
				"email": "ownermail@mail.com",
				"phone": {
					"number": "0987654321",
					"area_code": "11",
					"country_code": "55"
				},
				"document_number": "12345678910"
			},
			"authentication_type": "opt_in",
			"authenticity": {
				"timestamp": "1970-01-01T00:00:01.080100Z",
				"ip_address": "177.51.1.000",
				"fingerprint": {
					"browser": "Mozila"
				},
				"third_party_additional_data": {},
				"session_id": "10c33308-866f-47e5-bec8-2e512e9c0237"
			},
			"signed_object": {
				"raw_text": "Lorem ipsum dolor sit amet, consectetur a...."
			}
		}
	}
}
```

### Path Params

| Campo         | Tipo   | Descrição                                         | Caracteres |
| ------------- | ------ | ------------------------------------------------- | ---------- |
| `account_key` | string | Chave de identificação da conta cadastrada no DDA | 36         |

### Body Params

| Campo                | Tipo   | Descrição                                  | Caracteres |
| -------------------- | ------ | ------------------------------------------ | ---------- |
| `authorization_term` | object | Dados da autorização assinada pelo pagador | -          |

## Response

STATUS 200

```json
{
	"account_key": "e1c891a1-78a0-4915-9cb8-8b6adfc2e83a",
	"dda_account_status": "cancelled",
	"account_number": "12345",
	"account_digit": "6",
	"owner_document_number": "12345678910",
	"owner_person_key": "99784848-36bb-4049-8ce3-0e47938738de",
	"requester_key": "59a63416-073a-45d5-b821-6a39664632ca",
	"created_at": "2023-10-22T20:30:23.459Z"
}
```

| Campo                   | Tipo   | Descrição                                                | Caracteres |
| ----------------------- | ------ | -------------------------------------------------------- | ---------- |
| `account_key`           | string | Account_key da conta cadastrada no DDA.                  | 36         |
| `dda_account_status`    | enum   | [Enumeradores de status da conta.](#enumeradores-status) | -          |
| `account_number`        | string | Número da conta.                                         | 20         |
| `account_digit`         | string | Dígito da conta.                                         | 1          |
| `owner_document_number` | string | Documento do dono da conta.                              | 14         |
| `owner_person_key`      | string | Person key do dono da conta.                             | 36         |
| `requester_key`         | string | Requester key de quem abriu a conta.                     | 36         |
| `created_at`            | string | Data de criação e ativação no DDA.                       | 24         |

### Enumeradores Status

| Enumerador  | Descrição                           |
| ----------- | ----------------------------------- |
| `active`    | Conta ativa no DDA.                 |
| `cancelled` | Relacionamento com o DDA encerrado. |

---

# Consultar conta cadastrada no DDA

URL: /documentation/dda/consultar_dados_conta

Consulta uma conta ativa no DDA para o requester.
## Request

ENDPOINT /account/ ACCOUNT_KEY /dda
MÉTODO GET

### Path Params

| Campo         | Tipo   | Descrição                                         | Caracteres |
| ------------- | ------ | ------------------------------------------------- | ---------- |
| `account_key` | string | chave de identificação da conta cadastrada no DDA | 36         |

## Response

STATUS 200

Response Body

```json
{
	"account_key": "e1c891a1-78a0-4915-9cb8-8b6adfc2e83a",
	"dda_account_status": "active",
	"account_number": "12345",
	"account_digit": "6",
	"owner_document_number": "12345678910",
	"owner_person_key": "99784848-36bb-4049-8ce3-0e47938738de",
	"requester_key": "59a63416-073a-45d5-b821-6a39664632ca",
	"created_at": "2023-10-22T20:30:23.459Z"
}
```

| Campo                   | Tipo   | Descrição                                                | Caracteres |
| ----------------------- | ------ | -------------------------------------------------------- | ---------- |
| `account_key`           | string | Account_key da conta cadastrada no DDA.                  | 36         |
| `dda_account_status`    | enum   | [Enumeradores de status da conta.](#enumeradores-status) | -          |
| `account_number`        | string | Número da conta.                                         | 20         |
| `account_digit`         | string | Dígito da conta.                                         | 1          |
| `owner_document_number` | string | Documento do dono da conta.                              | 14         |
| `owner_person_key`      | string | Person key do dono da conta.                             | 36         |
| `requester_key`         | string | Requester key de quem abriu a conta.                     | 36         |
| `created_at`            | string | Data de criação e ativação no DDA.                       | 24         |

### Enumeradores Status

| Enumerador  | Descrição                           |
| ----------- | ----------------------------------- |
| `active`    | Conta ativa no DDA.                 |
| `cancelled` | Relacionamento com o DDA encerrado. |

---

# Erros retornados na api

URL: /documentation/dda/erros

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}",
  "title": "Bad Request", 
  "description": "Invalid request body.", 
  "translation": "Corpo da requisição inválido.", 
  "extra_fields": {}, 
  "code": "LEG000069"
}
```

STATUS 403

Response Body

```json
{
  "data": "{\"title\": \"Forbidden\", \"description\": \"Has no permission to this account\", \"translation\": \"Não possui permissão nesta conta\", \"extra_fields\": {}, \"code\": \"QIT000079\"}",
  "title": "Forbidden", 
  "description": "Has no permission to this account",
  "translation": "Não possui permissão nesta conta", 
  "extra_fields": {}, 
  "code": "QIT000079"
  
}

```

STATUS 404

Response Body

```json
{
  "data": "{\"title\": \"Not Found\", \"description\": \"Not found account for the given key\", \"translation\": \"Não foi encontrada uma conta com a chave fornecida\", \"extra_fields\": {}, \"code\": \"QIT000099\"}",
  "title": "Not Found", 
  "description": "Not found account for the given key", 
  "translation": "Não foi encontrada uma conta com a chave fornecida",
  "extra_fields": {}, 
  "code": "QIT000099"
}

```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Error on electronic payer subscription\", \"translation\": \"Erro ao inscrever pagador eletronico.\", \"extra_fields\": {}, \"code\": \"QIT000011\"}",
  "title": "Bad Request", 
  "description": "Error on electronic payer subscription", 
  "translation": "Erro ao inscrever pagador eletronico.", 
  "extra_fields": {}, 
  "code": "QIT000011"
}

```

STATUS 409

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Bank slip already registered\", \"translation\": \"Boleto já cadastrado.\", \"extra_fields\": {}, \"code\": \"QIT100012\"}",
  "title": "Duplicated Bank Slip", 
  "description": "Bank slip already registered", 
  "translation": "Boleto já cadastrado.", 
  "extra_fields": {}, 
  "code": "QIT100012"
}

```

STATUS 409

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Account already registered\", \"translation\": \"Conta já cadastrada.\", \"extra_fields\": {}, \"code\": \"QIT200012\"}",
  "title": "Account already registered", 
  "description": "Account already registered", 
  "translation": "Conta já cadastrada.", 
  "extra_fields": {}, 
  "code": "QIT200012"
}

```

---

# Introdução

URL: /documentation/dda/introducao

A API do Débito Direto Autorizado (DDA) possibilita que uma conta dentro da QI Tech, receba as informações de todos os boletos que tenham o titular da conta como pagador.

:::danger Observações Gerais:
- Para esta API, a **conta** cadastrada no DDA é obrigatoriamente conta QI.
- A divulgação e aceite dos termos é de responsabilidade do parceiro (integrador).
:::

---

# Listar contas cadastradas no DDA

URL: /documentation/dda/lista_contas_cadastradas

## Request

ENDPOINT /dda/accounts
MÉTODO GET

### QUERY PARAMS

| Campo         | Descrição                              |
| ------------- | -------------------------------------- |
| `page_number` | Página atual que está sendo consultada |
| `page_size`   | Quantidade de resultados por página    |

## Response

STATUS 200

Response Body

```json
{
  "data": [
    {
      "account_key": "e1c891a1-78a0-4915-9cb8-8b6adfc2e83a",
      "dda_account_status": "active",
      "account_number": "12345",
      "account_digit": "6",
      "owner_document_number": "12345678910",
      "owner_person_key": "99784848-36bb-4049-8ce3-0e47938738de",
      "requester_key": "59a63416-073a-45d5-b821-6a39664632ca",
      "created_at": "2023-10-22T20:30:23.459Z"
    },
    {
      "account_key": "e1c891a1-78a0-4915-9cb8-8b6adfc2e832",
      "dda_account_status": "active",
      "account_number": "54321",
      "account_digit": "6",
      "owner_document_number": "12345678911",
      "owner_person_key": "99784848-36bb-4049-8ce3-0e47938738d2",
      "requester_key": "59a63416-073a-45d5-b821-6a39664632ca",
      "created_at": "2023-11-22T20:30:23.459Z"
    }
  ],
  "pagination": {
    "current_page": 1,
    "next_page": null,
    "rows_per_page": 10
  }
}

```

| Campo                   | Tipo   | Descrição                                                | Caracteres |
| ----------------------- | ------ | -------------------------------------------------------- | ---------- |
| `account_key`           | string | Account_key da conta cadastrada no DDA.                  | 36         |
| `dda_account_status`    | enum   | [Enumeradores de status da conta.](#enumeradores-status) | -          |
| `account_number`        | string | Número da conta.                                         | 20         |
| `account_digit`         | string | Dígito da conta.                                         | 1          |
| `owner_document_number` | string | Documento do dono da conta.                              | 14         |
| `owner_person_key`      | string | Person key do dono da conta.                             | 36         |
| `requester_key`         | string | Requester key de quem abriu a conta.                     | 36         |
| `created_at`            | string | Data de criação e ativação no DDA.                       | 24         |

### Enumeradores Status

| Enumerador  | Descrição                           |
| ----------- | ----------------------------------- |
| `active`    | Conta ativa no DDA.                 |
| `cancelled` | Relacionamento com o DDA encerrado. |

---

# Lista de boletos registrados no DDA (bank slip notification) com filtros

URL: /documentation/dda/lista_notificacoes_de_boletos

Método que permite a listagem de títudos de boletos de conta registrada no DDA permitindo filtragem por status e intervalo de tempo.

## Request
ENDPOINT /account/ ACCOUNT_KEY /dda/bank_slips
MÉTODO GET

### Path Params

| Campo         | Tipo   | Descrição                                         | Caracteres |
| ------------- | ------ | ------------------------------------------------- | ---------- |
| `account_key` | string | Chave de identificação da conta cadastrada no DDA | 36         |

### QUERY PARAMS

| Campo         | Descrição                              |
| ------------- | -------------------------------------- |
| `status`      | status de um boleto                    |
| `start_date`  | Data de início da listagem.            |
| `end_date`    | Data de fim da listagem.               |
| `page_number` | Página atual que está sendo consultada |
| `page_size`   | Quantidade de resultados por página    |

## Response

STATUS 200

Response Body

```json
{
  "data": [
    {
        "barcode": "00193000000001000000500000001234567890123456",
        "digitable_line": "00193000000001000000500000001234567890123456123",
        "status": "registered",
        "nominal_amount": 1050,
        "total_amount": 999,
        "total_payment_amount": null,
        "partial_payment_allowed": true,
        "paid_fine": null,
        "paid_interest": null,
        "discount_amount": null,
        "expiration": "2024-07-19",
        "max_payment_date": "2024-09-02",
        "beneficiary": {
            "name": "Tech Solutions Ltda.",
            "bank_code": "123",
            "bank_ispb": "12345678",
            "person_type": "legal",
            "document_number": "12345678000100"
        },
        "payer": {
            "name": "João Carlos",
            "person_type": "natural",
            "document_number": "12345678900"
        },
        "guarantor": { 
            "name": "Maria Junior", 
            "person_type": "natural",
            "document_number": "03903984900" 
        },
        "rebate_amount": 30.00,
        "interest": [
            {
                "interest_amount_type": "workdays_daily_amount",
                "interest_billing_start_date": "2024-07-21",
                "interest_amount": 10.00
            }
        ],
        "fine": [
            {
                "fine_billing_start_date": "2024-07-29",
                "fine_amount_type": "absolute",
                "fine_amount": 100.00
            }
        ],
        "discounts": [
            {
                "discount_limit_date": "2024-07-05",
                "discount_type": "absolute",
                "discount_amount": 50.00
            }
        ],
        "calculations": [],
        "calculation_model": "01",
    },
    {
        "barcode": "00193000000001000000500000001234567890123457",
        "digitable_line": "00193000000001000000500000001234567890123456123",
        "status": "paid",
        "nominal_amount": 1050,
        "total_amount": 1200,
        "total_payment_amount": 1200,
        "partial_payment_allowed": false,
        "paid_fine": 150,
        "paid_interest": 50,
        "discount_amount": 0,
        "expiration": "2024-05-30",
        "max_payment_date": "2024-07-01",
        "beneficiary": {
            "name": "Tech Solutions Ltda.",
            "bank_code": "123",
            "bank_ispb": "12345678",
            "person_type": "legal",
            "document_number": "12345678000100"
        },
        "payer": {
            "name": "João Carlos",
            "person_type": "natural",
            "document_number": "12345678900"
        },
        "guarantor": { 
            "name": "Maria Junior", 
            "person_type": "natural",
            "document_number": "03903984900" 
        },
        "rebate_amount": 30.00,
        "interest": [
            {
                "interest_amount_type": "workdays_daily_amount",
                "interest_billing_start_date": "2024-05-21",
                "interest_amount": 10.00
            }
        ],
        "fine": [
            {
                "fine_billing_start_date": "2024-05-29",
                "fine_amount_type": "absolute",
                "fine_amount": 100.00
            }
        ],
        "discounts": [
            {
                "discount_limit_date": "2024-05-05",
                "discount_type": "absolute",
                "discount_amount": 50.00
            }
        ],
        "calculations": [],
        "calculation_model": "01",
    }
  ],
  "pagination": {
    "current_page": 1,
    "next_page": null,
    "rows_per_page": 10
  }
}
```

### Body Params

| Campo                     | Tipo    | Descrição                                                                           | Caracteres |
| ------------------------- | ------- | ----------------------------------------------------------------------------------- | ---------- |
| `barcode`                 | string  | Código de barras do boleto.                                                         | 44         |
| `digitable_line`          | string  | Linha digitável do boleto.                                                          | 47         |
| `status`                  | enum    | [Enumeradores de status de um boleto.](#enumeradores-status)                        | -          |
| `nominal_amount`          | float   | Valor nominal do boleto.                                                            | -          |
| `total_amount`            | float   | Valor calculado do boleto.                                                          | -          |
| `total_payment_amount`    | float   | Valor de pagamento do boleto.                                                       | -          |
| `partial_payment_allowed` | boolean | Indicador de aceite de pagamento parcial.                                           | -          |
| `paid_fine`               | float   | Total de multa efetivado no pagamento do boleto, calculado a partir do valor total. | -          |
| `paid_interest`           | float   | Total de juros efetivado no pagamento do boleto, calculado a partir do valor total. | -          |
| `discount_amount`         | float   | Total de descontos no pagamento do boleto, calculado a partir do valor total.       | -          |
| `expiration`              | string  | Data de vencimento do boleto.                                                       | 10         |
| `max_payment_date`        | string  | Data limite de pagamento do boleto.                                                 | 10         |
| `payer`                   | object  | [Objeto pagador do boleto.](#objeto-payer)                                          | -          |
| `beneficiary`             | object  | [Objeto beneficiário do boleto.](#objeto-beneficiary)                               | -          |
| `guarantor`               | object  | [Objeto sacador avalista do boleto](#objeto-guarantor)                              | -          |
| `rebate_amount`           | float   | Valor de rebate.                                                                    | -          |
| `interest`                | list    | [Lista de objetos interest.](#objeto-interest)                                      | -          |
| `fine`                    | list    | [Lista de objetos fine.](#objeto-fine)                                              | -          |
| `discounts`               | list    | [Lista de objetos discount.](#objeto-discount)                                      | -          |
| `calculations`            | list    | Lista do grupo cálculo de boleto.                                                   | -          |
| `calculation_model`       | string  | Método de cálculo do valor atual do boleto.                                         | 2          |

### Enumeradores Status

| Enumerador       | Descrição                              |
| ---------------- | -------------------------------------- |
| `registered`     | Código de barras do boleto registrado. |
| `paid`           | Boleto pago.                           |
| `partially_paid` | Boleto pago parcialmente.              |
| `written_off`    | Boleto baixado.                        |

### Objeto Payer

| Campo             | Tipo   | Descrição                  | Caracteres |
| ----------------- | ------ | -------------------------- | ---------- |
| `name`            | string | Nome do pagador.           | -          |
| `person_type`     | string | Tipo de pessoa do pagador. | 7          |
| `document_number` | string | Documento do pagador.      | 14         |

### Objeto Beneficiary

| Campo             | Tipo   | Descrição                        | Caracteres |
| ----------------- | ------ | -------------------------------- | ---------- |
| `name`            | string | Nome do beneficiário.            | -          |
| `person_type`     | string | Tipo de pessoa do beneficiário.  | 7          |
| `document_number` | string | Documento do beneficiário.       | 14         |
| `bank_code`       | string | Código do banco do beneficiário. | 3          |
| `bank_ispb`       | string | ISPB do banco do beneficiário.   | 8          |

### Objeto guarantor

| Campo             | Tipo   | Descrição                           | Caracteres |
| ----------------- | ------ | ----------------------------------- | ---------- |
| `name`            | string | Nome do sacador avalista.           | -          |
| `person_type`     | string | Tipo de pessoa do sacador avalista. | 7          |
| `document_number` | string | Documento do sacador avalista.      | 14         |

### Objeto interest

| Campo                         | Tipo   | Descrição                | Caracteres |
| ----------------------------- | ------ | ------------------------ | ---------- |
| `interest_billing_start_date` | string | Data de início do juros. | 10         |
| `interest_amount_type`        | string | Tipo de juros.           | -          |
| `interest_amount`             | string | Valor do juros.          | -          |

### Objeto fine

| Campo                     | Tipo   | Descrição                | Caracteres |
| ------------------------- | ------ | ------------------------ | ---------- |
| `fine_billing_start_date` | string | Data de início da multa. | 10         |
| `fine_amount_type`        | string | Tipo de multa.           | -          |
| `fine_amount`             | string | Valor da multa.          | -          |

### Objeto discount

| Campo                 | Tipo   | Descrição                | Caracteres |
| --------------------- | ------ | ------------------------ | ---------- |
| `discount_limit_date` | string | Data limite do disconto. | 10         |
| `discount_type`       | string | Tipo de desconto.        | -          |
| `discount_amount`     | string | Valor do desconto.       | -          |

---

# Simulação de cenários de registro e alteração de boletos

URL: /documentation/dda/simulacoes

Para gerar simulações de uma notificação de registro de um boleto onde o titular da conta seja o pagador, o parceiro integrador pode utilizar os endpoints abaixo:

:::info Informação
Para receber os webhooks de teste, a conta informada no endpoint deve ser uma conta válida do requester e ativa no DDA.
:::

## Request registro de boleto

ENDPOINT /mock/account/ ACCOUNT-KEY /dda/bank_slip
MÉTODO POST

Request Body

```json
{
  "status": "registered",
  "amount": 1050,
  "partial_payment_allowed": false,
  "expiration": "2024-05-30",
  "max_payment_date": "2024-07-01",
  "beneficiary": {
    "name": "Tech Solutions Ltda.",
    "bank_code": "123",
    "bank_ispb": "12345678",
    "person_type": "legal",
    "document_number": "12345678000100"
  },
  "guarantor": {
    "name": "Maria Junior",
    "person_type": "natural",
    "document_number": "03903984900"
  },
  "rebate_amount": 30.0,
  "interest": [
    {
      "interest_amount_type": "workdays_daily_amount",
      "interest_billing_start_date": "2024-05-21",
      "interest_amount": 10.0
    }
  ],
  "fine": [
    {
      "fine_billing_start_date": "2024-05-29",
      "fine_amount_type": "absolute",
      "fine_amount": 100.0
    }
  ],
  "discounts": [
    {
      "discount_limit_date": "2024-05-05",
      "discount_type": "absolute",
      "discount_amount": 50.0
    }
  ],
  "calculations": [],
  "calculation_model": "01"
}
```

| Campo                       | Tipo    | Descrição                                                    | Caracteres |
| --------------------------- | ------- | ------------------------------------------------------------ | ---------- |
| `status` *                  | enum    | [Enumeradores de status de um boleto.](#enumeradores-status) | -          |
| `amount` *                  | float   | Valor nominal do boleto.                                     | -          |
| `partial_payment_allowed` * | boolean | Indicador de aceite de pagamento parcial.                    | -          |
| `expiration` *              | string  | Data de vencimento do boleto.                                | 10         |
| `max_payment_date` *        | string  | Data limite de pagamento do boleto.                          | 10         |
| `beneficiary` *             | object  | [Objeto beneficiário do boleto.](#objeto-beneficiary)        | -          |
| `guarantor`                 | object  | [Objeto sacador avalista do boleto](#objeto-guarantor)       | -          |
| `rebate_amount`             | float   | Valor de rebate.                                             | -          |
| `interest`                  | list    | [Lista de objetos interest.](#objeto-interest)               | -          |
| `fine`                      | list    | [Lista de objetos fine.](#objeto-fine)                       | -          |
| `discounts`                 | list    | [Lista de objetos discount.](#objeto-discount)               | -          |
| `calculations`              | list    | Lista do grupo cálculo de boleto.                            | -          |
| `calculation_model` *       | string  | Método de cálculo do valor atual do boleto.                  | 2          |

### Enumeradores Status

| Enumerador       | Descrição                              |
| ---------------- | -------------------------------------- |
| `registered`     | Código de barras do boleto registrado. |
| `paid`           | Boleto pago.                           |
| `partially_paid` | Boleto pago parcialmente.              |
| `written_off`    | Boleto baixado.                        |

### Objeto Beneficiary

| Campo               | Tipo   | Descrição                        | Caracteres |
| ------------------- | ------ | -------------------------------- | ---------- |
| `name` *            | string | Nome do beneficiário.            | -          |
| `person_type` *     | string | Tipo de pessoa do beneficiário.  | 7          |
| `document_number` * | string | Documento do beneficiário.       | 14         |
| `bank_code` *       | string | Código do banco do beneficiário. | 3          |
| `bank_ispb` *       | string | ISPB do banco do beneficiário.   | 8          |

### Objeto guarantor

| Campo               | Tipo   | Descrição                           | Caracteres |
| ------------------- | ------ | ----------------------------------- | ---------- |
| `name` *            | string | Nome do sacador avalista.           | -          |
| `person_type` *     | string | Tipo de pessoa do sacador avalista. | 7          |
| `document_number` * | string | Documento do sacador avalista.      | 14         |

### Objeto interest

| Campo                           | Tipo   | Descrição                | Caracteres |
| ------------------------------- | ------ | ------------------------ | ---------- |
| `interest_billing_start_date` * | string | Data de início do juros. | 10         |
| `interest_amount_type` *        | string | Tipo de juros.           | -          |
| `interest_amount` *             | string | Valor do juros.          | -          |

### Objeto fine

| Campo                       | Tipo   | Descrição                | Caracteres |
| --------------------------- | ------ | ------------------------ | ---------- |
| `fine_billing_start_date` * | string | Data de início da multa. | 10         |
| `fine_amount_type` *        | string | Tipo de multa.           | -          |
| `fine_amount` *             | string | Valor da multa.          | -          |

### Objeto discount

| Campo                   | Tipo   | Descrição                | Caracteres |
| ----------------------- | ------ | ------------------------ | ---------- |
| `discount_limit_date` * | string | Data limite do disconto. | 10         |
| `discount_type` *       | string | Tipo de desconto.        | -          |
| `discount_amount` *     | string | Valor do desconto.       | -          |

## Response

STATUS 200

```json
{}
```

## Request alteração de boleto

Apenas alguns campos do boleto podem ser alterados, como ilustrado na request abaixo. Alguns campos, como beneficiário, pagador e aceite de pagamento parcial, não aceitam alteração. 

:::info Informação
Os campos que são listas de objetos não devem ser passados caso não deseje alterá-los. Se uma lista vazia for passada, ou qualquer outro valor for passado dentro da lista todos os objetos serão substituídos. 
:::

ENDPOINT /mock/account/ ACCOUNT-KEY /dda/bank_slip/ BARECODE
MÉTODO PATCH

Request Body

```json
{
  "status": "registered",
  "amount": 1200,
  "expiration": "2024-05-30",
  "max_payment_date": "2024-07-01",
  "guarantor": {
    "name": "Maria Junior",
    "person_type": "natural",
    "document_number": "03903984900"
  },
  "rebate_amount": 30.0,
  "interest": [],
  "fine": [
    {
      "fine_billing_start_date": "2024-05-29",
      "fine_amount_type": "absolute",
      "fine_amount": 100.0
    },
    {
      "fine_billing_start_date": "2024-06-29",
      "fine_amount_type": "absolute",
      "fine_amount": 100.0
    }
  ],
  "discounts": [
    {
      "discount_limit_date": "2024-05-05",
      "discount_type": "absolute",
      "discount_amount": 50.0
    }
  ],
  "calculations": [],
  "calculation_model": "01"
}
```

| Campo               | Tipo   | Descrição                                                    | Caracteres |
| ------------------- | ------ | ------------------------------------------------------------ | ---------- |
| `status` *          | enum   | [Enumeradores de status de um boleto.](#enumeradores-status) | -          |
| `amount`            | float  | Valor nominal do boleto.                                     | -          |
| `expiration`        | string | Data de vencimento do boleto.                                | 10         |
| `max_payment_date`  | string | Data limite de pagamento do boleto.                          | 10         |
| `guarantor`         | object | [Objeto sacador avalista do boleto](#objeto-guarantor)      | -          |
| `rebate_amount`     | float  | Valor de rebate.                                             | -          |
| `interest`          | list   | [Lista de objetos interest.](#objeto-interest)              | -          |
| `fine`              | list   | [Lista de objetos fine.](#objeto-fine)                      | -          |
| `discounts`         | list   | [Lista de objetos discount.](#objeto-discount)              | -          |
| `calculations`      | list   | Lista do grupo cálculo de boleto.                            | -          |
| `calculation_model` | string | Método de cálculo do valor atual do boleto.                  | 2          |

## Response

STATUS 200

```json
{}
```

## Request baixa por pagamento de boleto

ENDPOINT /mock/account/ ACCOUNT-KEY /dda/bank_slip/ BARECODE
MÉTODO PATCH

Request Body

```json
{
  "status": "paid",
  "paid_amount": 1200,
}
```

| Campo           | Tipo  | Descrição                                                    | Caracteres |
| --------------- | ----- | ------------------------------------------------------------ | ---------- |
| `status` *      | enum  | [Enumeradores de status de um boleto.](#enumeradores-status) | -          |
| `paid_amount` * | float | Valor pago do boleto.                                        | -          |

## Response

STATUS 200

```json
{}
```

## Request baixa por cancelamento de boleto

ENDPOINT /mock/account/ ACCOUNT-KEY /dda/bank_slip/ BARECODE
MÉTODO PATCH

Request Body

```json
{
  "status": "written_off",
}
```

| Campo      | Tipo | Descrição                                                    | Caracteres |
| ---------- | ---- | ------------------------------------------------------------ | ---------- |
| `status` * | enum | [Enumeradores de status de um boleto.](#enumeradores-status) | -          |

## Response

STATUS 200

```json
{}
```

---

# Formato dos Webhooks

URL: /documentation/dda/webhooks

:::danger Atenção!
Os webhooks da QI Tech não devem ser mapeadas de forma restrita. 
Campos adicionais podem ser incluídos aos payloads dos webhooks retornados em nossas APIs.
:::

:::info Reenvio de Webhooks
Você pode consultar e reenviar webhooks seguindo as instruções detalhadas na documentação: [Reenvio de Webhooks](/documentation/notificacoes/reenvio_de_notificacoes).
:::

Existem dois tipos de eventos no dda que serão diferenciados no webhook pelo atributo webhook_type

## Webhook de captura de boleto

Registration webhook

```json
    {
      "webhook_type": "baas.dda.bankslip.registration",
      "key": "7c52d5f6-9db1-4a3c-bb03-1f76a2e8f9d2",
      "data": {
        "barcode": "00193000000001000000500000001234567890123456",
        "digitable_line": "00193000000001000000500000001234567890123456123",
        "status": "registered",
        "nominal_amount": 1050,
        "total_amount": 999,
        "total_payment_amount": null,
        "paid_fine": null,
        "paid_interest": null,
        "discount_amount": null,
        "partial_payment_allowed": true,
        "expiration": "2024-07-19",
        "max_payment_date": "2024-09-02",
        "beneficiary": {
            "name": "Tech Solutions Ltda.",
            "bank_code": "123",
            "bank_ispb": "12345678",
            "person_type": "legal",
            "document_number": "12345678000100"
        },
        "payer": {
            "name": "João Carlos",
            "person_type": "natural",
            "document_number": "12345678900"
        },
        "guarantor": { 
            "name": "Maria Junior", 
            "person_type": "natural",
            "document_number": "03903984900" 
        },
        "rebate_amount": 30.00,
        "interest": [
            {
                "interest_amount_type": "workdays_daily_amount",
                "interest_billing_start_date": "2024-07-21",
                "interest_amount": 10.00
            }
        ],
        "fine": [
            {
                "fine_billing_start_date": "2024-07-29",
                "fine_amount_type": "absolute",
                "fine_amount": 100.00
            }
        ],
        "discounts": [
            {
                "discount_limit_date": "2024-07-05",
                "discount_type": "absolute",
                "discount_amount": 50.00
            }
        ],
        "calculations": [],
        "calculation_model": "01",
      }
    }
```

### Body Params

| Campo                     | Tipo    | Descrição                                                    | Caracteres |
| ------------------------- | ------- | ------------------------------------------------------------ | ---------- |
| `barcode`                 | string  | Código de barras do boleto.                                  | 44         |
| `digitable_line`          | string  | Linha digitável do boleto.                                   | 47         |
| `status`                  | enum    | [Enumeradores de status de um boleto.](#enumeradores-status) | -          |
| `nominal_amount`          | float   | Valor nominal do boleto.                                     | -          |
| `total_amount`            | float   | Valor calculado do boleto.                                   | -          |
| `total_payment_amount`    | float   | Valor de pagamento do boleto.                                | -          |
| `partial_payment_allowed` | boolean | Indicador de aceite de pagamento parcial.                    | -          |
| `expiration`              | string  | Data de vencimento do boleto.                                | 10         |
| `max_payment_date`        | string  | Data limite de pagamento do boleto.                          | 10         |
| `payer`                   | object  | [Objeto pagador do boleto.](#objeto-payer)                   | -          |
| `beneficiary`             | object  | [Objeto beneficiário do boleto.](#objeto-beneficiary)        | -          |
| `guarantor`               | object  | [Objeto sacador avalista do boleto](#objeto-guarantor)       | -          |
| `rebate_amount`           | float   | Valor de rebate.                                             | -          |
| `interest`                | list    | [Lista de objetos interest.](#objeto-interest)               | -          |
| `fine`                    | list    | [Lista de objetos fine.](#objeto-fine)                       | -          |
| `discounts`               | list    | [Lista de objetos discount.](#objeto-discount)               | -          |
| `calculations`            | list    | Lista do grupo cálculo de boleto.                            | -          |
| `calculation_model`       | string  | Método de cálculo do valor atual do boleto.                  | 2          |

### Enumeradores Status

| Enumerador       | Descrição                              |
| ---------------- | -------------------------------------- |
| `registered`     | Código de barras do boleto registrado. |
| `paid`           | Boleto pago.                           |
| `partially_paid` | Boleto pago parcialmente.              |
| `written_off`    | Boleto baixado.                        |

### Objeto Payer

| Campo             | Tipo   | Descrição                  | Caracteres |
| ----------------- | ------ | -------------------------- | ---------- |
| `name`            | string | Nome do pagador.           | -          |
| `person_type`     | string | Tipo de pessoa do pagador. | 7          |
| `document_number` | string | Documento do pagador.      | 14         |

### Objeto Beneficiary

| Campo             | Tipo   | Descrição                        | Caracteres |
| ----------------- | ------ | -------------------------------- | ---------- |
| `name`            | string | Nome do beneficiário.            | -          |
| `person_type`     | string | Tipo de pessoa do beneficiário.  | 7          |
| `document_number` | string | Documento do beneficiário.       | 14         |
| `bank_code`       | string | Código do banco do beneficiário. | 3          |
| `bank_ispb`       | string | ISPB do banco do beneficiário.   | 8          |

### Objeto guarantor

| Campo             | Tipo   | Descrição                           | Caracteres |
| ----------------- | ------ | ----------------------------------- | ---------- |
| `name`            | string | Nome do sacador avalista.           | -          |
| `person_type`     | string | Tipo de pessoa do sacador avalista. | 7          |
| `document_number` | string | Documento do sacador avalista.      | 14         |

### Objeto interest

| Campo                         | Tipo   | Descrição                | Caracteres |
| ----------------------------- | ------ | ------------------------ | ---------- |
| `interest_billing_start_date` | string | Data de início do juros. | 10         |
| `interest_amount_type`        | string | Tipo de juros.           | -          |
| `interest_amount`             | string | Valor do juros.          | -          |

### Objeto fine

| Campo                     | Tipo   | Descrição                | Caracteres |
| ------------------------- | ------ | ------------------------ | ---------- |
| `fine_billing_start_date` | string | Data de início da multa. | 10         |
| `fine_amount_type`        | string | Tipo de multa.           | -          |
| `fine_amount`             | string | Valor da multa.          | -          |

### Objeto discount

| Campo                 | Tipo   | Descrição                | Caracteres |
| --------------------- | ------ | ------------------------ | ---------- |
| `discount_limit_date` | string | Data limite do disconto. | 10         |
| `discount_type`       | string | Tipo de desconto.        | -          |
| `discount_amount`     | string | Valor do desconto.       | -          |

## Webhook de alteração de boleto

Update webhook

```json
    {
      "webhook_type": "baas.dda.bankslip.update",
      "key": "7c52d5f6-9db1-4a3c-bb03-1f76a2e8f9d2",
      "data": {
        "barcode": "00193000000001000000500000001234567890123457",
        "digitable_line": "00193000000001000000500000001234567890123456123",
        "status": "paid",
        "nominal_amount": 1050,
        "total_amount": 1200,
        "total_payment_amount": 1200,
        "partial_payment_allowed": false,
        "paid_fine": 150,
        "paid_interest": 50,
        "discount_amount": 0,
        "expiration": "2024-05-30",
        "max_payment_date": "2024-07-01",
        "beneficiary": {
            "name": "Tech Solutions Ltda.",
            "bank_code": "123",
            "bank_ispb": "12345678",
            "person_type": "legal",
            "document_number": "12345678000100"
        },
        "payer": {
            "name": "João Carlos",
            "person_type": "natural",
            "document_number": "12345678900"
        },
        "guarantor": { 
            "name": "Maria Junior", 
            "person_type": "natural",
            "document_number": "03903984900" 
        },
        "rebate_amount": 30.00,
        "interest": [
            {
                "interest_amount_type": "workdays_daily_amount",
                "interest_billing_start_date": "2024-05-21",
                "interest_amount": 10.00
            }
        ],
        "fine": [
            {
                "fine_billing_start_date": "2024-05-29",
                "fine_amount_type": "absolute",
                "fine_amount": 100.00
            }
        ],
        "discounts": [
            {
                "discount_limit_date": "2024-05-05",
                "discount_type": "absolute",
                "discount_amount": 50.00
            }
        ],
        "calculations": [],
        "calculation_model": "01",
      }
    }
```

### Body Params

| Campo                     | Tipo    | Descrição                                                                           | Caracteres |
| ------------------------- | ------- | ----------------------------------------------------------------------------------- | ---------- |
| `barcode`                 | string  | Código de barras do boleto.                                                         | 44         |
| `digitable_line`          | string  | Linha digitável do boleto.                                                          | 47         |
| `status`                  | enum    | [Enumeradores de status de um boleto.](#enumeradores-status)                        | -          |
| `nominal_amount`          | float   | Valor nominal do boleto.                                                            | -          |
| `total_amount`            | float   | Valor calculado do boleto.                                                          | -          |
| `total_payment_amount`    | float   | Valor de pagamento do boleto.                                                       | -          |
| `partial_payment_allowed` | boolean | Indicador de aceite de pagamento parcial.                                           | -          |
| `paid_fine`               | float   | Total de multa efetivado no pagamento do boleto, calculado a partir do valor total. | -          |
| `paid_interest`           | float   | Total de juros efetivado no pagamento do boleto, calculado a partir do valor total. | -          |
| `discount_amount`         | float   | Total de descontos no pagamento do boleto, calculado a partir do valor total.       | -          |
| `expiration`              | string  | Data de vencimento do boleto.                                                       | 10         |
| `max_payment_date`        | string  | Data limite de pagamento do boleto.                                                 | 10         |
| `payer`                   | object  | [Objeto pagador do boleto.](#objeto-payer)                                          | -          |
| `beneficiary`             | object  | [Objeto beneficiário do boleto.](#objeto-beneficiary)                               | -          |
| `guarantor`               | object  | [Objeto sacador avalista do boleto](#objeto-guarantor)                              | -          |
| `rebate_amount`           | float   | Valor de rebate.                                                                    | -          |
| `interest`                | list    | [Lista de objetos interest.](#objeto-interest)                                      | -          |
| `fine`                    | list    | [Lista de objetos fine.](#objeto-fine)                                              | -          |
| `discounts`               | list    | [Lista de objetos discount.](#objeto-discount)                                      | -          |
| `calculations`            | list    | Lista do grupo cálculo de boleto.                                                   | -          |
| `calculation_model`       | string  | Método de cálculo do valor atual do boleto.                                         | 2          |

---

# Alteração de contato de pessoa

URL: /documentation/gestao_de_usuarios/alteracao_de_contato_de_pessoa

## Request

### Token Request

ENDPOINT /baas/token_request
MÉTODO POST

Request Body

```json
{
  "contact_type": "email",
  "person_contact_update": {
    "person_key": "3ea7f034-f06b-4e28-ae19-7c23694f546b",
    "phone_number": {
      "country_code": "55",
      "area_code": "888",
      "number": "988887777"
    }
  },
  "agent_document_number": "99988877765"
}

```

### Token Validation

ENDPOINT /baas/movement_validation
MÉTODO POST

Request Body

```json
{
  "token": "123456",
  "person_contact_update": {
    "person_key": "3ea7f034-f06b-4e28-ae19-7c23694f546b",
    "phone_number": {
      "country_code": "55",
      "area_code": "888",
      "number": "988887777"
    }
  }
}

```

### Body Params

| Campo                   | Tipo   | Descrição                                                                                                                                 | Caracteres                                                                   |
|-------------------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------|
| `contact_type` *        | string | `(/baas/token_request)` Forma de envio escolhida para o token. Para envios de sms, apenas números brasileiros (+55) receberão a mensagem. | "sms"                                                                        |
| `token` *               | string | `(/baas/token_validation)` Código de seis (6) dígitos enviado ao aprovador da operação. Ex: "123456"                                      | 6                                                                            |
| `person_contact_update` | Object | Informações de alteração de contato                                                                                                       | **[Objeto person_contact_update](#objeto-professional_data_contact_update)** |
| `agent_document_number` | string | CPF de um dos administradores da conta que receberá o SMS para validação Ex: "99977766654"                                                | 11                                                                           |

### Objeto person_contact_update

| Campo          | Tipo   | Descrição                                                                                          | Caracteres                                      |
|----------------|--------|----------------------------------------------------------------------------------------------------|-------------------------------------------------|
| `person_key` * | string | Chave de identificação da pessoa física. Formato uuid v4. Ex: 1ed6dc4e-a0a8-42bb-8cc0-0bb3b0233fb9 | 36                                              |
| `phone_number` | Object | Objeto contendo informações do novo número de telefone                                             | **[Objeto phone_number](#objeto-phone_number)** |
| `email`        | string | Novo email a ser cadastrado                                                                        |                                                 |

### Objeto phone_number

| Campo            | Tipo   | Descrição               | Caracteres |
|------------------|--------|-------------------------|------------|
| `country_code` * | string | DDI do país             | 1-3        |
| `area_code` *    | string | DDD da área do telefone | 1-3        |
| `number` *       | string | Número de telefone      | 10         |

:::info Formas de contato implementadas
`contact_type` permitido para esta operação é **sms** e **email**.
:::

:::info Limitações para modificação
Para alteração de número de telefone a forma de contato deve ser email e para a alteração de email, a forma de contato deve ser sms.
:::

:::info Número a receber token
A pessoa física que está tendo seu cadastro alterado receberá o token.
:::

## Response

### Token Request

STATUS 200

Response Body

```json
{}
```

STATUS 400

Response Body: Tipo de contato não implementado

```json
{
  "title": "Bad Request",
  "description": "Contact type {contact_type} not allowed",
  "translation": "Forma de contato por {contact_type} não permitida",
  "code": "ACC000152",
  "additional_data": {}
}
```

STATUS 400

Response Body: Contato não existente inválido

```json
{
  "title": "Bad Request",
  "description": "Contact does not exist",
  "translation": "Contato nao existe",
  "code": "ACC000135",
  "additional_data": {}
}
```

### Token Validation

STATUS 200

Response Body

```json
{
  "hash": "8e11308086ea336edb113a6ff5746778",
  "return_response": {
    "email": "test.email@email.com",
    "person_key": "110b3ee3-cae2-44de-ba2c-494434d5cb18",
    "phone": [
      {
        "area_code": "11",
        "country_code": "55",
        "number": "988887777"
      }
    ]
  },
  "validation": true
}
```

STATUS 401

Response Body: Token enviado expirado

```json
{
  "title": "Unauthorized",
  "description": "Expired token",
  "translation": "Token Expirado",
  "code": "ACC000134",
  "additional_data": {}
}
```

STATUS 401

Response Body: Token enviado inválido

```json
{
  "title": "Unauthorized",
  "description": "Invalid token",
  "translation": "Token Inválido",
  "code": "ACC000133",
  "additional_data": {}
}
```

---

# Alteração de contato de vínculo

URL: /documentation/gestao_de_usuarios/alteracao_de_contato_de_vinculo

## Request

### Token Request

ENDPOINT /baas/token_request
MÉTODO POST

Request Body

```json
{
  "contact_type": "sms",
  "professional_data_contact_update": {
    "professional_data_key": "4ba8ff34-e07b-4ea8-ae59-8c23994f546b",
    "natural_person": "3ea7f034-f06b-4e28-ae19-7c23694f546b",
    "email": "sample@gmail.com",
    "phone_number": {
      "country_code": "55",
      "area_code": "888",
      "number": "988887777"
    }
  },
  "agent_document_number": "99988877765"
}

```

### Token Validation

ENDPOINT /baas/movement_validation
MÉTODO POST

Request Body

```json
{
  "token": "123456",
  "professional_data_contact_update": {
    "professional_data_key": "4ba8ff34-e07b-4ea8-ae59-8c23994f546b",
    "natural_person": "3ea7f034-f06b-4e28-ae19-7c23694f546b",
    "email": "sample@gmail.com",
    "phone_number": {
      "country_code": "55",
      "area_code": "888",
      "number": "988887777"
    }
  }
}

```

### Body Params

| Campo                              | Tipo   | Descrição                                                                                                                                 | Caracteres                                                                              |
|------------------------------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------|
| `contact_type` *                   | string | `(/baas/token_request)` Forma de envio escolhida para o token. Para envios de sms, apenas números brasileiros (+55) receberão a mensagem. | "sms"                                                                                   |
| `token` *                          | string | `(/baas/token_validation)` Código de seis (6) dígitos enviado ao aprovador da operação. Ex: "123456"                                      | 6                                                                                       |
| `professional_data_contact_update` | Object | Informações de vínculo de pessoa física a pessoa jurídica                                                                                 | **[Objeto professional_data_contact_update](#objeto-professional_data_contact_update)** |
| `agent_document_number`            | string | CPF de um dos administradores da conta que receberá o SMS para validação Ex: "99977766654"                                                | 11                                                                                      |

### Objeto professional_data_contact_update

| Campo                     | Tipo   | Descrição                                                                                            | Caracteres                                      |
|---------------------------|--------|------------------------------------------------------------------------------------------------------|-------------------------------------------------|
| `natural_person` *        | string | Chave de identificação da pessoa física. Formato uuid v4. Ex: 1ed6dc4e-a0a8-42bb-8cc0-0bb3b0233fb9   | 36                                              |
| `professional_data_key` * | string | Chave de identificação da pessoa jurídica. Formato uuid v4. Ex: 1ed6dc4e-a0a8-42bb-8cc0-0bb3b0233fb9 | 36                                              |
| `phone_number` *          | Object | Objeto contendo informações do novo número de telefone.                                              | **[Objeto phone_number](#objeto-phone_number)** |
| `email` *                 | string | Novo email a ser cadastrado                                                                          |                                                 |

### Objeto phone_number

| Campo            | Tipo   | Descrição               | Caracteres |
|------------------|--------|-------------------------|------------|
| `country_code` * | string | DDI do país             | 1-3        |
| `area_code` *    | string | DDD da área do telefone | 1-3        |
| `number` *       | string | Número de telefone      | 10         |

:::info Formas de contato implementadas
`contact_type` permitido para esta operação é **sms**.
:::

:::info Número a receber token
A pessoa física que está tendo seu cadastro alterado receberá o token.
:::

## Response

### Token Request

STATUS 200

Response Body

```json
{}
```

STATUS 400

Response Body: Tipo de contato não implementado expirado

```json
{
  "title": "Bad Request",
  "description": "Contact type {contact_type} not allowed",
  "translation": "Forma de contato por {contact_type} não permitida",
  "code": "ACC000152",
  "additional_data": {}
}
```

STATUS 400

Response Body: Contato não existente inválido

```json
{
  "title": "Bad Request",
  "description": "Contact does not exist",
  "translation": "Contato nao existe",
  "code": "ACC000135",
  "additional_data": {}
}
```

### Token Validation

STATUS 200

Response Body

```json
{
  "hash": "8e11308086ea336edb113a6ff5746778",
  "return_response": {
    "admission_date": "2023-06-13",
    "created_at": "2023-06-13T17:26:57",
    "email": "sampl1e@gmail.com",
    "final_beneficiary": null,
    "is_active": true,
    "legal_person_key": "b678ae5c-5797-4bd9-8a4c-9cbd1a0829a4",
    "natural_person_key": "1ed6dc4e-a0a8-42bb-8cc0-0bb3b0233fb9",
    "natural_person_roles": [
      {
        "created_at": "2023-06-13T17:26:57",
        "natural_person_roles_events": [],
        "product_type": {
          "created_at": "2022-04-08T14:51:34",
          "enumerator": "escrow"
        },
        "role_type": {
          "created_at": "2021-02-26T14:14:52",
          "enumerator": "viewer"
        },
        "updated_at": "2023-06-14T20:11:45"
      },
      {
        "created_at": "2023-06-13T17:26:57",
        "natural_person_roles_events": [],
        "product_type": {
          "created_at": "2021-02-26T14:16:35",
          "enumerator": "account"
        },
        "role_type": {
          "created_at": "2021-02-26T14:14:52",
          "enumerator": "viewer"
        },
        "updated_at": "2023-06-14T20:11:46"
      }
    ],
    "phone": {
      "area_code": "61",
      "country_code": "55",
      "number": "988887777",
      "phone_type": "commercial"
    },
    "post_type": {
      "created_at": "2019-02-15T18:28:12",
      "enumerator": "analyst",
      "translation_path": "onboarding.PostType.analyst"
    },
    "profession_data_key": "78c8b92f-4e44-4725-a5fd-aa1fca78366d",
    "updated_at": "2023-06-14T20:11:46"
  },
  "validation": true
}
```

STATUS 401

Response Body: Token enviado expirado

```json
{
  "title": "Unauthorized",
  "description": "Expired token",
  "translation": "Token Expirado",
  "code": "ACC000134",
  "additional_data": {}
}
```

STATUS 401

Response Body: Token enviado inválido

```json
{
  "title": "Unauthorized",
  "description": "Invalid token",
  "translation": "Token Inválido",
  "code": "ACC000133",
  "additional_data": {}
}
```

---

# Editar dados de uma pessoa

URL: /documentation/gestao_de_usuarios/alteracao_de_dados_pessoais

## Request

ENDPOINT /person/PERSON_KEY/personal_data
MÉTODO PATCH

### Path Params

| Campo                   | Tipo | Descrição                     | Caracteres |
|-------------------------|------|-------------------------------|------------|
| `PERSON_KEY` *          | UUID | identificador único da person | 36         |

Request Body

```json
{
    "name": "Mateus da Silva",
    "date_of_birth": "1995-05-01",
    "profession": "programer",
    "mother_name": "Maria de Jesus",
    "father_name": "João dos Santos",
    "birth_place": "Taguatinga",
    "spouse_name": "Luis dos anjos",
    "is_pep": true,
    "revenue_amount": 100.52,
    "onboarding_key": "bc90744e-4f9a-42b1-9410-d5fa3c183fa8"
}

```

### Body Params

| Campo | Tipo | Descrição | Caracteres |
|---|---| ---| ---|
| `name` | string | Nome completo | - | 
| `date_of_birth` |  string | Data de aniversário, no formato YYYY-MM-DD | date | 
| `profession` | string | Profissão | - |
| `mother_name` | string |  Nome da mãe| - |
| `father_name` | string | Nome do pai | - | 
| `birth_place` | string | Local de nascimento | - | 
| `spouse_name` | string | Nome do cônjuge | - |
| `is_pep` | Boolean | Declaração se a pessoa é PEP (http://www.portaldatransparencia.gov.br/download-de-dados/pep).  | boolean |
| `revenue_amount` | number | Renda mensal | - |
| `onboarding_key` | string | Chave utilizada na validação do antifraude | uuuidv4 |

## Response

STATUS 204

Response Body

```json
{}
```

STATUS 4XX

Response Body

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo"
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title` | Descrição (eng)<br/>`Description`                                       | Descrição (ptbr)<br/>`translation`                                               |
|-------------|----------------------|--------------------|-------------------------------------------------------------------------|----------------------------------------------------------------------------------|
| 404         | OBD000019            | Not found          | Person not found                                                        | Pessoa não encontrada.                                                           |
| 403         | OBD000073            | Unauthorized       | User does not have permission to add or modify persons to this domain   | Usuário não tem permissão para adicionar ou modificar pessoas a este domínio.    |

---

# Editar endereço de uma pessoa

URL: /documentation/gestao_de_usuarios/alteracao_de_endereco

## Request

ENDPOINT /person/PERSON_KEY/address
MÉTODO PUT

### Path Params

| Campo                   | Tipo | Descrição                     | Caracteres |
|-------------------------|------|-------------------------------|------------|
| `PERSON_KEY` *          | UUID | identificador único da person | 36         |

Request Body

```json
{
    "street": "Rua Sample after test",
    "complement": "Apto 125",
    "state": "MG",
    "number": "1234",
    "neighborhood": "Cabral",
    "postal_code": "38300000",
    "city": "Ituiutaba"
}

```

## Response

STATUS 204

Response Body

```json
{}
```

STATUS 4XX

Response Body

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo"
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title` | Descrição (eng)<br/>`Description`                                       | Descrição (ptbr)<br/>`translation`                                               |
|-------------|----------------------|--------------------|-------------------------------------------------------------------------|----------------------------------------------------------------------------------|
| 404         | OBD000019            | Not found          | Person not found                                                        | Pessoa não encontrada.                                                           |
| 403         | OBD000073            | Unauthorized       | User does not have permission to add or modify persons to this domain   | Usuário não tem permissão para adicionar ou modificar pessoas a este domínio.    |

---

# Consultar partes relacionadas a uma conta PJ

URL: /documentation/gestao_de_usuarios/consulta_partes_relacionadas

## Request

ENDPOINT /account/ ACCOUNT_KEY /related_parties
MÉTODO GET

### Path Params

| Campo | Tipo | Descrição                      |
|---|------|--------------------------------|
| `ACCOUNT_KEY` | uuidv4 | Chave única de identificação da conta |

## Response

STATUS 200

Response Body

```json
{
    "allowed_users": [
        {
            "natural_person_document_number": "49875468975",
            "natural_person_key": "69850ae3-28bc-4779-a871-e73e1e993412",
            "natural_person_name": "Gabriel Pomodoro",
            "professional_data_key": "3532ea7d-855b-4033-8e1c-7a28d4440d4a"
        },
        {
            "natural_person_document_number": "79857848695",
            "natural_person_key": "7f775i35-da9b-493b-8d43-c5c34282f6cb",
            "natural_person_name": "Fernando Teixeira",
            "professional_data_key": "fd6b4ta8-0c1a-481f-a046-6e0e6edcfb43"
        }
    ],
    "legal_person_key": "40e841e1-edc6-44f2-9a55-7f97eed1bef5",
    "owner_document_number": "10479846950100",
    "owner_name": "EMPRESA DE TESTE S.A"
}
```

### Body params

| Campo | Tipo          | Descrição                                    |
|-------|---------------|----------------------------------------------|
| `allowed_users` | list        | Objeto contendo os usuários vinculados a conta. (**[Objeto allowed_users](#objeto-allowed_users)**) |
| `legal_person_key` | uuidv4 | Chave única de identificação do titular da conta |
| `owner_document_number` | string        | Número CNPJ do Titular da conta. |
| `owner_name` | string        | Razão Social do Titular da Conta. |

### Objeto allowed_users

| Campo | Tipo          | Descrição                                    | 
|-------|---------------|----------------------------------------------|
| `natural_person_document_number` | string        | Número do CPF do usuário vinculado à conta. |
| `natural_person_key` | uuidv4 | Chave única de identificação do usuário vinculado à conta. |
| `natural_person_name` | string        | Nome do usuário vinculado à conta. |
| `professional_data_key` | uuidv4 | Chave única de identificação do vínculo entre usuário e a pessoa jurídica titular da conta. |

---

# Criação de pessoa

URL: /documentation/gestao_de_usuarios/criacao_de_pessoa

## Request

### Token Request

ENDPOINT /baas/token_request
MÉTODO POST

Request Body

```json
{
    "contact_type": "sms",
    "person_creation": {
        "person": {
            "date_of_birth": "1987-01-11",
            "spouse_name": "sample spouse name",
            "birth_place": "sample birth place",
            "phone_number": {
                "country_code": "55",
                "area_code": "888",
                "number": "988887777"
            },
            "representative": null,
            "father_name": "sample father name",
            "address": {
                "street": "Rua Sample Avenue",
                "complement": "Apto 123",
                "state": "MG",
                "number": "1234",
                "neighborhood": "Cabral",
                "postal_code": "38300000",
                "city": "Ituiutaba"
            },
            "nationality": "Brasil",
            "document_identification_number": "sample identification number",
            "mother_name": "Sample Mama",
            "person_type": "natural",
            "name": "Sample Name Natural",
            "profession": "sample profession",
            "gender": null,
            "email": "sample@gmail.com",
            "document_number": "68346734500",
            "marital_status": null
        }
    },
	"agent_document_number": "99988877765"
    }

```

### Token Validation

ENDPOINT /baas/movement_validation
MÉTODO POST

Request Body

```json
{
    "token": "076244",
    "person_creation": {
        "person": {
            "date_of_birth": "1987-01-11",
            "spouse_name": "sample spouse name",
            "birth_place": "sample birth place",
            "phone_number": {
                "country_code": "55",
                "area_code": "888",
                "number": "988887777"
            },
            "representative": null,
            "father_name": "sample father name",
            "address": {
                "street": "Rua Sample Avenue",
                "complement": "Apto 123",
                "state": "MG",
                "number": "1234",
                "neighborhood": "Cabral",
                "postal_code": "38300000",
                "city": "Ituiutaba"
            },
            "nationality": "Brasil",
            "document_identification_number": "sample identification number",
            "mother_name": "Sample Mama",
            "person_type": "natural",
            "name": "Sample Name Natural",
            "profession": "sample profession",
            "gender": null,
            "email": "sample@gmail.com",
            "document_number": "68346734500",
            "marital_status": null
        }
    }
    }

```

### Body Params

| Campo | Tipo | Descrição | Caracteres |
|---|---| ---| ---|
| `contact_type` * | string | `(/baas/token_request)` Forma de envio escolhida para o token. Para envios de sms, apenas números brasileiros (+55) receberão a mensagem. | "sms" |
| `token` * | string | `(/baas/token_validation)` Código de seis (6) dígitos enviado ao aprovador da operação. Ex: "123456" | 6 |
| `person_creation` | object | Contêm objeto com as informações da pessoa a ser cadastrada | **[Objeto person_creation](#objeto-person_creation)** |
| `agent_document_number` | string | CPF de um dos administradores da conta que receberá o SMS para validação Ex: "99977766654" | 11 |

### Objeto person_creation

| Campo | Tipo | Descrição | Caracteres |
|---|---| ---| ---|
| `person` * | object | Informações da pessoa a ser cadastrada. | **[Objeto person](#objeto-person)**|

### Objeto person
| Campo | Tipo | Descrição | Caracteres |
|---| ---| ---| ---| 
| `address` | object | Endereço da pessoa. | **[Objeto adress](#objeto-address)** |  |
| `date_of_birth` * | string |  Data de nascimento da pessoa (formato "AAAA-MM-DD") |  |
| `document_identification_number`  | string |  Campo destinado ao envio do número de uma documentação adicional, como a CNH (limitado a 16 caracteres). |  |
| `email` * | string |  Email da pessoa. |  |
| `document_number` * | string | CPF da pessoa (apenas números). Limitado a 11 caracteres. |  |
| `is_pep` * | string |  Declaração se a pessoa é PEP (http://www.portaldatransparencia.gov.br/download-de-dados/pep).|  |
| `mother_name` * | string |  Nome da mãe da pessoa em caso de PF. | 100 |
| `name` * | string |  Razão social em caso de operações PJ ou Nome da pessoa em caso de operações PF. | 100 |
| `nationality` * | string |  Nacionalidade da pessoa. | 50 |
| `birth_place` * | string |  Local de nascimento da pessoa. | 50 |
| `person_type` * | string | Identificador de que o objeto enviado é uma pessoa física ou jurídica.| "natural", "legal" |
| `phone_number` * | object | Objeto com dados do telefone | **[Objeto phone](#objeto-phone)**|
| `proof_of_residence` | string |  DOCUMENT_KEY do PDF do comprovante de endereço do endereço enviado (enviado previamente).| |
| `spouse_name` | string |  Nome do cônjuge| |
| `father_name` | string |  Nome do pai da pessoa em caso de PF.| |
| `profession` | string |  Profissão da pessoa em caso de PF.| |

### Objeto address 

| Campo | Descrição | Exemplo |  Máx. Caracteres | 
|---|---|---|---| 
| `street` *| string | Rua do endereço  | 100 |
| `state` *| string | Estado do endereço (com dois caracteres maiúsculos) | 2 |
| `city` *| string | Cidade do endereço | 100 |
| `neighborhood` *| string |Bairro do endereço | 100 |
| `number` *| string | Número da rua | 10 |
| `postal_code` *| string |CEP do endereço (http://www.buscacep.correios.com.br/sistemas/buscacep/) (apenas números) |  8 |
| `complement` *| string |Complemento do endereço (texto livre) | 100 |

### Objeto phone 

| Campo | Descrição | Exemplo |  Máx. Caracteres | 
| --- | --- | --- | --- | 
|`country_code` *| string | Código DDI do telefone (https://ddi.guiamais.com.br/) | 3 | 
| `area_code` *| string | Código DDD do telefone (https://ddd.guiamais.com.br/) | 2 |
| `number` *| string |Número de telefone (apenas números) |  10 |

:::info Formas de contato implementadas
`contact_type` permitido para esta operação é **sms**.
::: 

:::info Número a receber token
A pessoa a ser cadastrada receberá o token.
:::

## Response

### Token Request

STATUS 200

Response Body

```json
{}
```

STATUS 400

Response Body: Tipo de contato não implementado expirado

```json
{
	"title": "Bad Request",
	"description": "Contact type {contact_type} not allowed",
	"translation": "Forma de contato por {contact_type} não permitida",
	"code": "ACC000152",
	"additional_data": {}
}
```

STATUS 400

Response Body: Contato não existente inválido

```json
{
	"title": "Bad Request",
	"description": "Contact does not exist",
	"translation": "Contato nao existe",
	"code": "ACC000135",
	"additional_data": {}
}
```

### Token Validation

STATUS 200

Response Body

```json
{
	"hash": "bd707fdcb3f78abcab8b5c5b7459f9aa",
	"return_response": {
		"birth_place": "sample birth place",
		"created_at": "2023-06-14T20:51:32",
		"date_of_birth": "1987-01-11T00:00:00",
		"document_identification_number": "sample",
		"email": "sample@gmail.com",
		"father_name": "sample father name",
		"gender": null,
		"is_pep": false,
		"kc_key": "2eedef51-7638-4874-bb98-661080bdfbfd",
		"marital_status": null,
		"mother_name": "Sample Mama",
		"nationality": "Brasil",
		"natural_revenue_range": {
			"average_amount": null,
			"created_at": "2021-03-12T13:26:08",
			"description": "Unavailable",
			"description_ptbr": "Indisponível",
			"enumerator": "0",
			"more_than_amount": null,
			"up_to_amount": null
		},
		"person": {
			"address": {
				"city": "Ituiutaba",
				"complement": "Apto 123",
				"created_at": "2023-06-14T20:51:32",
				"neighborhood": "Cabral",
				"number": "1234",
				"postal_code": "38300000",
				"state": "MG",
				"street": "Rua Sample Avenue"
			},
			"category": null,
			"category_nick": null,
			"created_at": "2023-06-14T20:51:32",
			"document_number": "68346734500",
			"domain": {
				"created_at": "2022-06-29T19:35:17",
				"domain_key": "abc36183-9845-40b9-8a6d-3805b48057e1",
				"domain_name": "QI SCD Domain",
				"owner_person_key": "bf623fcf-6e03-42b7-8664-55141c8acddb"
			},
			"internal_contact": null,
			"internal_contact_person_key": null,
			"name": "Sample Name Natural",
			"person_category": null,
			"person_code": 1681,
			"person_key": "2eedef51-7638-4874-bb98-661080bdfbfd",
			"person_status": {
				"created_at": "2019-02-15T18:28:09",
				"enumerator": "pending",
				"translation_path": "onboarding.PersonStatus.pending"
			},
			"person_type": {
				"created_at": "2019-02-15T18:28:08",
				"enumerator": "natural",
				"translation_path": "onboarding.PersonType.natural"
			},
			"phone": [
				{
					"area_code": "888",
					"country_code": "55",
					"created_at": "2023-06-14T20:51:32",
					"number": "988887777",
					"phone_key": "9a39e3ce-e4fd-447a-9856-83df19989895",
					"phone_type": null
				}
			],
			"professional_data": [],
			"qualifications": [],
			"registration_date": "2023-06-14",
			"risk": null,
			"special_attention": false,
			"terms_acknowledgement": false,
			"valid_cip_beneficiary": false
		},
		"profession": "sample profession",
		"revenue_amount": null,
		"spouse_name": null
	},
	"validation": true
}
```

STATUS 401

Response Body: Token enviado expirado

```json
{
	"title": "Unauthorized",
	"description": "Expired token",
	"translation": "Token Expirado",
	"code": "ACC000134",
	"additional_data": {}
}
```

STATUS 401

Response Body: Token enviado inválido

```json
{
	"title": "Unauthorized",
	"description": "Invalid token",
	"translation": "Token Inválido",
	"code": "ACC000133",
	"additional_data": {}
}
```

---

# Exclusão de vínculo

URL: /documentation/gestao_de_usuarios/exclusao_de_vinculo

## Request

### Token Request

ENDPOINT /baas/token_request
MÉTODO POST

Request Body

```json
{
	"contact_type":"sms",
	"professional_data_deletion":{
		"natural_person": "1ed6dc4e-a0a8-42bb-8cc0-0bb3b0233fb9",
		"legal_person": "b678ae5c-5797-4bd9-8a4c-9cbd1a0829a4"
	},
	"agent_document_number": "99988877765"
}

```

### Token Validation

ENDPOINT /baas/movement_validation
MÉTODO POST

Request Body

```json
{
	"token": "746116",
	"professional_data_deletion":{
		"natural_person": "1ed6dc4e-a0a8-42bb-8cc0-0bb3b0233fb9",
		"legal_person": "b678ae5c-5797-4bd9-8a4c-9cbd1a0829a4",
	}
}

```

### Body Params

| Campo | Tipo | Descrição | Caracteres |
|---|---| ---| ---|
| `contact_type` * | string | `(/baas/token_request)` Forma de envio escolhida para o token. Para envios de sms, apenas números brasileiros (+55) receberão a mensagem. | "sms" |
| `token` * | string | `(/baas/token_validation)` Código de seis (6) dígitos enviado ao aprovador da operação. Ex: "123456" | 6 |
| `professional_data_deletion` | Object | Vínculo de pessoa física a pessoa jurídica a ser removido | **[Objeto professional_data_deletion](#objeto-professional_data_)** |
| `agent_document_number` | string | CPF de um dos administradores da conta que receberá o SMS para validação Ex: "99977766654" | 11 |

### Objeto professional_data_deletion

| Campo | Tipo | Descrição | Caracteres |
|---|---| ---| ---|
| `natural_person` * | string | Chave de identificação da pessoa física. Formato uuid v4. Ex: 1ed6dc4e-a0a8-42bb-8cc0-0bb3b0233fb9| 36 |
| `legal_person` * |string | Chave de identificação da pessoa jurídica. Formato uuid v4. Ex: 1ed6dc4e-a0a8-42bb-8cc0-0bb3b0233fb9| 36 |

:::info Formas de contato implementadas
`contact_type` permitido para esta operação é **sms**.
::: 

:::info Número a receber token
Uma das pessoas cadastradas como **administrador de conta da pessoa jurídica** a ser vinculada receberá o token.
:::

## Response

### Token Request

STATUS 200

Response Body

```json
{}
```

STATUS 400

Response Body: Tipo de contato não implementado expirado

```json
{
	"title": "Bad Request",
	"description": "Contact type {contact_type} not allowed",
	"translation": "Forma de contato por {contact_type} não permitida",
	"code": "ACC000152",
	"additional_data": {}
}
```

STATUS 400

Response Body: Contato não existente inválido

```json
{
	"title": "Bad Request",
	"description": "Contact does not exist",
	"translation": "Contato nao existe",
	"code": "ACC000135",
	"additional_data": {}
}
```

### Token Validation

STATUS 200

Response Body

```json
{
	"hash": "b6e2643b15493d8f604a3083a20f2476",
	"return_response": {
		"deleted": "OK",
		"legal_person": "b678ae5c-5797-4bd9-8a4c-9cbd1a0829a4",
		"natural_person": "1ed6dc4e-a0a8-42bb-8cc0-0bb3b0233fb9"
	},
	"validation": true
}
```

STATUS 401

Response Body: Token enviado expirado

```json
{
	"title": "Unauthorized",
	"description": "Expired token",
	"translation": "Token Expirado",
	"code": "ACC000134",
	"additional_data": {}
}
```

STATUS 401

Response Body: Token enviado inválido

```json
{
	"title": "Unauthorized",
	"description": "Invalid token",
	"translation": "Token Inválido",
	"code": "ACC000133",
	"additional_data": {}
}
```

---

# Inclusão de vínculo

URL: /documentation/gestao_de_usuarios/inclusao_de_vinculo

## Request

### Token Request

ENDPOINT /baas/token_request
MÉTODO POST

Request Body

```json
{
	"contact_type":"sms",
	"professional_data_creation":{
	"natural_person": "1ed6dc4e-a0a8-42bb-8cc0-0bb3b0233fb9",
	"legal_person": "b678ae5c-5797-4bd9-8a4c-9cbd1a0829a4",
	"natural_person_roles": [
		{
			"product_type":"account",
			"role_type": "viewer"
		}
	],
	"post_type":"analyst"
	},
	"agent_document_number": "99988877765"
}

```

### Token Validation

ENDPOINT /baas/movement_validation
MÉTODO POST

Request Body

```json
{
	"token": "746116",
	"professional_data_creation":{
	"natural_person": "1ed6dc4e-a0a8-42bb-8cc0-0bb3b0233fb9",
	"legal_person": "b678ae5c-5797-4bd9-8a4c-9cbd1a0829a4",
	"natural_person_roles": [
		{
			"product_type":"account",
			"role_type": "viewer"
		}
	],
	"post_type":"analyst"
	}
}

```

### Body Params

| Campo | Tipo | Descrição | Caracteres |
|---|---| ---| ---|
| `contact_type` * | string | `(/baas/token_request)` Forma de envio escolhida para o token. Para envios de sms, apenas números brasileiros (+55) receberão a mensagem. | "sms" |
| `token` * | string | `(/baas/token_validation)` Código de seis (6) dígitos enviado ao aprovador da operação. Ex: "123456" | 6 |
| `professional_data_creation` | Object | Informações de vínculo de pessoa física a pessoa jurídica | **[Objeto professional_data_creation](#objeto-professional_data_creation)** |
| `agent_document_number` | string | CPF de um dos administradores da conta que receberá o SMS para validação Ex: "99977766654" | 11 |

### Objeto professional_data_creation

| Campo | Tipo | Descrição | Caracteres |
|---|---| ---| ---|
| `natural_person` * | string | Chave de identificação da pessoa física. Formato uuid v4. Ex: 1ed6dc4e-a0a8-42bb-8cc0-0bb3b0233fb9| 36 |
| `legal_person` * |string | Chave de identificação da pessoa jurídica. Formato uuid v4. Ex: 1ed6dc4e-a0a8-42bb-8cc0-0bb3b0233fb9| 36 |
| `natural_person_roles` * | array | Informações de permissionamento e produto. | Array de  **[Objeto natural_person_roles](#objeto-natural_person_role)**|
| `post_type` * | string | Número da conta.| "ceo", "analyst", "partner", "director", "attorney", "signer" |

### Objeto natural_person_role
| Campo | Tipo | Descrição | Caracteres |
|---|---| ---| ---|
| `product_type` * | string | Tipo de produto a ser dado permissionamento sobre. | "account", "escrow" |
| `role_type` * |string | Tipo de permissionamento a ser dado ao produto.| "administrator", "requester", "viewer" |

:::info Formas de contato implementadas
`contact_type` permitido para esta operação é **sms**.
::: 

:::info Número a receber token
Uma das pessoas cadastradas como **administrador de conta da pessoa jurídica** a ser vinculada receberá o token.
:::

## Response

### Token Request

STATUS 200

Response Body

```json
{}
```

STATUS 400

Response Body: Tipo de contato não implementado expirado

```json
{
	"title": "Bad Request",
	"description": "Contact type {contact_type} not allowed",
	"translation": "Forma de contato por {contact_type} não permitida",
	"code": "ACC000152",
	"additional_data": {}
}
```

STATUS 400

Response Body: Contato não existente inválido

```json
{
	"title": "Bad Request",
	"description": "Contact does not exist",
	"translation": "Contato nao existe",
	"code": "ACC000135",
	"additional_data": {}
}
```

### Token Validation

STATUS 200

Response Body

```json
{
	"hash": "c5ad79fc14d8447ae272c671fe6dc27e",
	"return_response": {
		"admission_date": "2023-06-13",
		"created_at": "2023-06-13T17:26:57",
		"email": null,
		"final_beneficiary": null,
		"is_active": true,
		"legal_person_key": "b678ae5c-5797-4bd9-8a4c-9cbd1a0829a4",
		"natural_person_key": "1ed6dc4e-a0a8-42bb-8cc0-0bb3b0233fb9",
		"natural_person_roles": [
			{
				"created_at": "2023-06-13T17:26:57",
				"natural_person_roles_events": [],
				"product_type": {
					"created_at": "2022-04-08T14:51:34",
					"enumerator": "escrow"
				},
				"role_type": {
					"created_at": "2021-02-26T14:14:52",
					"enumerator": "viewer"
				},
				"updated_at": "2023-06-13T18:24:35"
			},
			{
				"created_at": "2023-06-13T17:26:57",
				"natural_person_roles_events": [],
				"product_type": {
					"created_at": "2021-02-26T14:16:35",
					"enumerator": "account"
				},
				"role_type": {
					"created_at": "2021-02-26T14:14:52",
					"enumerator": "viewer"
				},
				"updated_at": "2023-06-13T18:24:35"
			}
		],
		"phone": null,
		"post_type": {
			"created_at": "2019-02-15T18:28:12",
			"enumerator": "analyst",
			"translation_path": "onboarding.PostType.analyst"
		},
		"profession_data_key": "78c8b92f-4e44-4725-a5fd-aa1fca78366d",
		"updated_at": "2023-06-13T18:24:35"
	},
	"validation": true
}
```

STATUS 401

Response Body: Token enviado expirado

```json
{
	"title": "Unauthorized",
	"description": "Expired token",
	"translation": "Token Expirado",
	"code": "ACC000134",
	"additional_data": {}
}
```

STATUS 401

Response Body: Token enviado inválido

```json
{
	"title": "Unauthorized",
	"description": "Invalid token",
	"translation": "Token Inválido",
	"code": "ACC000133",
	"additional_data": {}
}
```

---

# Introdução

URL: /documentation/gestao_de_usuarios/tfa_introducao

O sistema de Autorização em Dois Fatores, doravante referido como tfa, tem o objetivo de garantir a autorização via token enviado à pessoa responsável por aprovar a alteração ou inclusão de cadastro.

## Requisição de Token

ENDPOINT /baas/token_request
MÉTODO POST

Para realizar a requisição de token é necessário realizar uma requisição com a forma de contato de envio do token e um objeto específico para o tipo de operação a ser realizada. A explicação completa sobre o payload a ser enviado para cada operação é explicitada na sua própria **[página](#operações)**.

Todos os payloads enviados seguem o mesmo formato básico abaixo:

```json
{
	"contact_type":"sms",
	"\<nome_do_objeto_da_operação\>":"\<objeto_da_operação\>"
}
```
:::info Aviso
`contact_type` implementados podem variar de operação para operação.
::: 

:::warning Aviso
O `token` gerado em ambiente de **Sandbox** será sempre **329329**
::: 

## Validação de Token

ENDPOINT /baas/movement_validation
MÉTODO POST

Para efetivar a operação é necessário que seja enviado no payload o token recebido, juntamente com o **mesmo** `objeto_da_operação` enviado na requisição de token.

Todos os payloads enviados seguem o mesmo formato básico abaixo:

```json
{
	"token":"123456",
	"\<nome_do_objeto_da_operação\>":"\<objeto_da_operação\>"
}
```

:::info Aviso
O token enviado é valido por 120 segundos a partir de sua geração
::: 

## Operações

- **[Criação de Pessoa](/documentation/gestao_de_usuarios/criacao_de_pessoa)**
- **[Inclusão de Vínculo](/documentation/gestao_de_usuarios/inclusao_de_vinculo)**
- **[Exclusão de Vínculo](/documentation/gestao_de_usuarios/exclusao_de_vinculo)**
- **[Alteração de contato de vínculo](/documentation/gestao_de_usuarios/alteracao_de_contato_de_vinculo)**

---

# Comprovante de transferência

URL: /documentation/movimentacao_de_contas/comprovante_de_transferencia

## Request

ENDPOINT /transaction_receipt/ TRANSACTION_KEY
MÉTODO GET

:::info

A resposta desta requisição irá trazer os dados referentes á aquela transação consultada e caso o parâmetro PDF seja verdadeiro o campo "pdf_encoded_string" estará disponível com a string do PDF encodada em base-64.
:::

### Request Path Params

| Campo               | Tipo    | Descrição                         | Caracteres |
|---------------------|---------|-----------------------------------|------------|
| `transaction_key` * | uuidv4 | Chave única de identificação da transação. | 36         |

### Request Query String Params

| Campo | Tipo | Descrição | Caracteres |
|---|---| ---|------------| 
| `pdf` * | boolean | Booleano que define se a resposta deverá gerar um PDF ou não. | - |

## Response

### Success Response

STATUS 200

**Response Body: Comprovantes de pagamento de boleto bancário**

```json
{
    "bank_slip": {
        "beneficiary": {
            "document_number": "03782617037",
            "document_number_formatted": "037.826.170-37",
            "name": "Beatriz Couto de Carvalho"
        },
        "digitable_line": "32992269485000000000554007797902798030027500000",
        "expiration_date": "2024-08-09",
        "expiration_date_formatted": "09/08/2024",
        "financial_institution_compe_number": "329",
        "financial_institution_name": "QI SOCIEDADE DE CRÉDITO DIRETO S.A.",
        "payer": {
            "document_number": "32402502000135",
            "document_number_formatted": "32.402.502/0001-35",
            "name": "QI SCD S.A."
        },
        "payment_date": "2024-08-06",
        "payment_date_formatted": "06/08/2024",
        "payment_key": "ca944fbb-7f0f-42d7-b775-1014f5804155",
        "tax_collection_info": null
    },
    "origin_key": "ca944fbb-7f0f-42d7-b775-1014f5804155",
    "pdf_encoded_string": "JVBERi0xLjcKJeLjz9MKMSAwIG9iago8PAovVHlwZSAvUGFnZXMKL0NvdW50IDEKL0tpZHMgWyA0IDAgUiBdCj4+CmVuZG9iagoyIDAgb2JqCjw8Ci9Qcm9kdWNlciAoUHlQREYyKQo+PgplbmRvYmoKMyAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMSAwIFIKPj4KZW5kb2JqCjQgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL01lZGlhQm94IFsgMCAwIDU5NS4yNzU1OTEgODQxLjg4OTc2NCBdCi9Db250ZW50cyA1IDAgUgovUmVzb3VyY2VzIDw8Ci9FeHRHU3RhdGUgPDwKL2ExLjAgPDwKL2NhIDEKPj4KL2ExIDw8Ci9jYSAxCj4+Ci9hMC43IDw8Ci9jYSAwLjcKPj4KL0VHUzYgNiAwIFIKPj4KL0ZvbnQgPDwKL1ZDQVRXUyA3IDAgUgovT0NITlVQIDEyIDAgUgo+PgovWE9iamVjdCA8PAovSW00IDE3IDAgUgovVHI1IDE5IDAgUgo+PgovUHJvY1NldCBbIC9UZXh0IC9JbWFnZUkgL0ltYWdlQiAvSW1hZ2VDIC9QREYgXQo+PgovVHJpbUJveCBbIDAgMCA1OTUuMjc1NTkxIDg0MS44ODk3NjQgXQovQmxlZWRCb3ggWyAwIDAgNTk1LjI3NTU5MSA4NDEuODg5NzY0IF0KL0Fubm90cyBbIF0KL1BhcmVudCAxIDAgUgo+PgplbmRvYmoKNSAwIG9iago8PAovTGVuZ3RoIDI2MDQwCj4+CnN0cmVhbQpxCjEgMCAwIC0xIDAgODQxLjg4OTc2NCBjbQpxCjAuNzUgMCAwIDAuNzUgMCAwIGNtCnEKcQpxCnEKcQpxCjAgMCBtCjc5My43MDA3ODcgMCBsCjc5My43MDA3ODcgMCA3OTMuNzAwNzg3IDAgNzkzLjcwMDc4NyAwIGMKNzkzLjcwMDc4NyAxNDYuNDY4NzUgbAo3OTMuNzAwNzg3IDE1MS45Njg3NSA3ODkuMjAwNzg3IDE1Ni40Njg3NSA3ODMuNzAwNzg3IDE1Ni40Njg3NSBjCjEwIDE1Ni40Njg3NSBsCjQuNSAxNTYuNDY4NzUgMCAxNTEuOTY4NzUgMCAxNDYuNDY4NzUgYwowIDAgbAowIDAgMCAwIDAgMCBjClcKbgpxCjAuMDk4MDM5IDAuMTQxMTc2IDAuNDk0MTE4IHJnCi9hMS4wIGdzCjAgMCA3OTMuNzAwNzg3IDE1Ni40Njg3NSByZQpXCm4KMCAwIDc5My43MDA3ODcgMTU2LjQ2ODc1IHJlCmYKUQpRCnEKNzkzLjcwMDc4NyAwIG0KMCAwIGwKMCA1IGwKNzkzLjcwMDc4NyA1IGwKVyoKbgoxIDAuMjUwOTggMC41MDE5NjEgcmcKL2ExLjAgZ3MKMCA1IG0KNzkzLjcwMDc4NyA1IGwKNzkzLjcwMDc4NyA1IDc5My43MDA3ODcgNSA3OTMuNzAwNzg3IDUgYwo3OTMuNzAwNzg3IDE0Ni40Njg3NSBsCjc5My43MDA3ODcgMTUxLjk2ODc1IDc4OS4yMDA3ODcgMTU2LjQ2ODc1IDc4My43MDA3ODcgMTU2LjQ2ODc1IGMKMTAgMTU2LjQ2ODc1IGwKNC41IDE1Ni40Njg3NSAwIDE1MS45Njg3NSAwIDE0Ni40Njg3NSBjCjAgNSBsCjAgNSAwIDUgMCA1IGMKMCAwIG0KNzkzLjcwMDc4NyAwIGwKNzkzLjcwMDc4NyAwIDc5My43MDA3ODcgMCA3OTMuNzAwNzg3IDAgYwo3OTMuNzAwNzg3IDE0Ni40Njg3NSBsCjc5My43MDA3ODcgMTUxLjk2ODc1IDc4OS4yMDA3ODcgMTU2LjQ2ODc1IDc4My43MDA3ODcgMTU2LjQ2ODc1IGMKMTAgMTU2LjQ2ODc1IGwKNC41IDE1Ni40Njg3NSAwIDE1MS45Njg3NSAwIDE0Ni40Njg3NSBjCjAgMCBsCjAgMCAwIDAgMCAwIGMKZioKUQpRCnEKcQowIDAgMCByZwovYTEuMCBncwpCVApFVAoxIDEgMSByZwpCVAoxIDAgMCAtMSAyNTIuNjQ4MjQ1IDgxLjQ4MTQ0NSBUbQovVkNBVFdTIDE4IFRmClsgPDAwMjYwMDUyMDA1MDAwNTMwMDU1MDA1MjAwNTkwMDQ0MDA1MTAwNTcwMDQ4MDAwMzAwNDcwMDQ4MDAwMzAwNTMwMDQ0MDA0YTAwNDQwMDUwMDA0ODAwNTEwMDU3MDA1Mj4gXSBUSgoxIDAgMCAtMSAzNjIuMjY4MzYyIDEwNS44NjUyMzQgVG0KL09DSE5VUCAxMiBUZgpbIDwwMDEzMDAxOTAwMTIwMDEzMDAxYjAwMTIwMDE1MDAxMzAwMTUwMDE3PiBdIFRKCkVUClEKUQpxCnEKMzU4LjM1MDM5NCAyNSA3NyAyMiByZQpXCm4KcQovYTEgZ3MKMSAwIDAgMSAzNTguMzUwMzk0IDI1IGNtCnEKcQoxIDAgMCAxIDAgMCBjbQoxIDAgMCAxIDAgMCBjbQpxCjAgMCBtCjMuNTYzNzIgNi4yNTAwMSBtCjMuODgyODcgNi4yNTA4OSA0LjE5NDYxIDYuMzUyNDMgNC40NTk1NSA2LjU0MTgyIGMKNC43MjQ0OSA2LjczMTIgNC45MzA3NCA2Ljk5OTkyIDUuMDUyMjMgNy4zMTQwMSBjCjUuMTczNzMgNy42MjgxMSA1LjIwNTAyIDcuOTczNDkgNS4xNDIxNSA4LjMwNjUxIGMKNS4wNzkyOCA4LjYzOTUzIDQuOTI1MDcgOC45NDUyMyA0LjY5OTAxIDkuMTg1MDEgYwo0LjQ3Mjk2IDkuNDI0NzggNC4xODUxOSA5LjU4Nzg1IDMuODcyMDggOS42NTM2MSBjCjMuNTU4OTcgOS43MTkzOCAzLjIzNDU4IDkuNjg0ODkgMi45Mzk4OCA5LjU1NDQ5IGMKMi42NDUxOSA5LjQyNDEgMi4zOTM0MiA5LjIwMzY2IDIuMjE2NCA4LjkyMTAzIGMKMi4wMzkzNyA4LjYzODQgMS45NDUwNCA4LjMwNjI2IDEuOTQ1MzEgNy45NjY1OSBjCjEuOTQ1MzEgNy43NDA2NiAxLjk4NzIxIDcuNTE2OTYgMi4wNjg2MSA3LjMwODMxIGMKMi4xNTAwMSA3LjA5OTY2IDIuMjY5MzEgNi45MTAxNiAyLjQxOTY3IDYuNzUwNjkgYwoyLjU3MDAzIDYuNTkxMjEgMi43NDg0OCA2LjQ2NDg5IDIuOTQ0OCA2LjM3ODk3IGMKMy4xNDExMyA2LjI5MzA2IDMuMzUxNDUgNi4yNDkyMyAzLjU2MzcyIDYuMjUwMDEgYwpoCjE2LjkgMTQuOTMxMSBtCjE0Ljk5MzYgMTMuMjI0OSAxMy4xNzM0IDEwLjYwNzkgMTEuNTc0NCAxMi40Mjk2IGMKMTAuMzY5MyAxMy44MDQgMTEuNjAzNyAxNC44NTcxIDEyLjI0MSAxNS41MDczIGMKMTMuOTAxMiAxNy4yMzcyIDE2LjA3NjIgMTkuNTY4NCAxNy44NjAyIDIxLjE0NTggYwoxOC40NTU4IDIxLjY3MTYgMTguNzcwMyAyMS44MDYzIDE5LjIwNTkgMjEuOTEgYwoyMC41MjM3IDIyLjIxOTYgMjEuMjY2OCAyMS4wMjE0IDIxLjAxNDkgMTkuODM2NSBjCjIwLjc3ODQgMTguNzAzNSAxOS41ODcyIDE3LjU4MDggMTkuMzMzOSAxNy40NDE2IGMKMjAuMjU3OSAxNi4wNzUgMjAuODUxOSAxNC40ODc2IDIxLjA2MzYgMTIuODE5MSBjCjIxLjM2MzggMTAuNjA3NSAyMS4wMDQxIDguMzUxNCAyMC4wMzUzIDYuMzY4OTkgYwoxOC42NDM3IDMuNTU0OTIgMTYuMTM4OCAxLjc1MjQ0IDE0LjIxOTggMS4xMzc3OSBjCjEzLjE4MTcgMC44MDQ1NDYgMTIuMjI0MyAwLjkyMzAzMyAxMS43NTEyIDEuMjg1OSBjCjExLjE4NDggMS43MTM5MyAxMC44OTk1IDIuNzMyOTIgMTEuMzY1NyAzLjU1Nzg5IGMKMTEuNDQ1OSAzLjcwNTE5IDExLjU1MzQgMy44MzM2MyAxMS42ODE2IDMuOTM1NDYgYwoxMS44MDk4IDQuMDM3MjkgMTEuOTU2MSA0LjExMDM4IDEyLjExMTYgNC4xNTAzMiBjCjEyLjc4MjMgNC4zMjA2NSAxNC4wOTE4IDQuNjgyMDMgMTUuMjE0OCA1LjYzMTQxIGMKMTYuNDU1OCA2LjY0NzEyIDE3LjMyNDEgOC4wOTI2IDE3LjY2OTYgOS43MTc3MiBjCjE4LjA1NSAxMS40NjM5IDE3LjcyOCAxMy42MTQ1IDE2LjkwMTQgMTQuOTMxMSBjCjIuMzMzMTcgMTEuODMwOCBtCjEuMzg5NjggMTIuMjQ5OSAxLjI0NDk2IDEzLjE0NDUgMS40MzY5OSAxNC4wODIgYwoxLjc0NTkyIDE1LjU5MTIgMi45NTI0MyAxNy42OTI5IDMuODgyIDE4LjY5MTEgYwo1LjI3MzU4IDIwLjE3MjIgNi45NDM0OCAyMS4yNzg2IDguOTA3IDIxLjcyMTQgYwoxMC41MTE1IDIyLjA4MjggMTIuMjcwNSAyMi4wOTE3IDEzLjIzMDYgMjEuNzUyNiBjCjE0LjYyMjIgMjEuMjYwOCAxNC44NjAyIDE4LjQ2OSAxMi41NTQzIDE4LjQyOSBjCjEyLjE4MjggMTguNDI5IDExLjc2NjcgMTguNDU1NyAxMS4zMjU2IDE4LjQ3NDkgYwoxMC40MzM2IDE4LjUxMDYgOS41NDM4NiAxOC4zNTc2IDguNzA3ODMgMTguMDI0OCBjCjcuODcxNzkgMTcuNjkyIDcuMTA2MDkgMTcuMTg2MSA2LjQ1NTAzIDE2LjUzNjIgYwo1LjkxNCAxNi4wMTQgNS40NzEwNSAxNS4zODczIDUuMTQ5NzMgMTQuNjg5MyBjCjQuOTQ2MjEgMTQuMjQ5NCA0Ljc2NTUgMTMuNzk4IDQuNjA4NDEgMTMuMzM3IGMKNC41MjYzIDEzLjA3MzQgNC41Mzg4MyAxMi44MTg2IDQuMzgwMTkgMTIuNTQwMiBjCjQuMTcyNDMgMTIuMTg0IDMuODUzMDIgMTEuOTE3NCAzLjQ3ODQzIDExLjc4NzUgYwozLjEwMzg0IDExLjY1NzcgMi42OTgxOCAxMS42NzMgMi4zMzMxNyAxMS44MzA4IGMKaAowLjMwOTgwNCAwLjggMC45Mjk0MTIgcmcKL2ExLjAgZ3MKMSB3CjAgSgowIGoKNCBNCmYqClEKcQowIDAgbQo4Ljk4NDczIDcuMDM3MTEgbQo5LjQ4MjY4IDcuMDM2ODIgOS45Njk1MiA3LjE5MzcxIDEwLjM4MzcgNy40ODc5MyBjCjEwLjc5NzggNy43ODIxNiAxMS4xMjA3IDguMjAwNSAxMS4zMTE1IDguNjkwMDUgYwoxMS41MDIyIDkuMTc5NiAxMS41NTIzIDkuNzE4MzYgMTEuNDU1MyAxMC4yMzgyIGMKMTEuMzU4MyAxMC43NTggMTEuMTE4NyAxMS4yMzU2IDEwLjc2NjcgMTEuNjEwNCBjCjEwLjQxNDcgMTEuOTg1MyA5Ljk2NjExIDEyLjI0MDYgOS40Nzc3NSAxMi4zNDQxIGMKOC45ODkzOSAxMi40NDc2IDguNDgzMTYgMTIuMzk0NiA4LjAyMzA5IDEyLjE5MTkgYwo3LjU2MzAxIDExLjk4OTEgNy4xNjk3NyAxMS42NDU3IDYuODkzMSAxMS4yMDUxIGMKNi42MTY0MyAxMC43NjQ0IDYuNDY4NzUgMTAuMjQ2NCA2LjQ2ODc1IDkuNzE2MzkgYwo2LjQ2ODc1IDkuMDA2MDYgNi43MzM3OCA4LjMyNDggNy4yMDU1OCA3LjgyMjM4IGMKNy42NzczOCA3LjMxOTk2IDguMzE3MzIgNy4wMzc1IDguOTg0NzMgNy4wMzcxMSBjCmgKNi41MTA5NiAwIG0KNi44OTkwMyAwIDcuMjc4MzkgMC4xMjI0NzkgNy42MDEwNiAwLjM1MTk0OCBjCjcuOTIzNzMgMC41ODE0MTYgOC4xNzUyMiAwLjkwNzU2OCA4LjMyMzczIDEuMjg5MTYgYwo4LjQ3MjI0IDEuNjcwNzUgOC41MTEwOSAyLjA5MDY1IDguNDM1MzkgMi40OTU3NCBjCjguMzU5NjggMi45MDA4NCA4LjE3MjggMy4yNzI5NSA3Ljg5ODM5IDMuNTY1IGMKNy42MjM5OCAzLjg1NzA2IDcuMjc0MzcgNC4wNTU5NiA2Ljg5Mzc1IDQuMTM2NTQgYwo2LjUxMzEzIDQuMjE3MTEgNi4xMTg2MiA0LjE3NTc2IDUuNzYwMDggNC4wMTc3IGMKNS40MDE1NSAzLjg1OTY0IDUuMDk1MTEgMy41OTE5NyA0Ljg3OTUxIDMuMjQ4NTQgYwo0LjY2MzkxIDIuOTA1MTIgNC41NDg4MyAyLjUwMTM2IDQuNTQ4ODMgMi4wODgzMyBjCjQuNTQ4ODMgMS41MzQ0NyA0Ljc1NTU1IDEuMDAzMyA1LjEyMzUyIDAuNjExNjU3IGMKNS40OTE0OSAwLjIyMDAxOSA1Ljk5MDU3IDAgNi41MTA5NiAwIGMKaAoxLjIyNTk4IDIuMzM4OSBtCjEuNDcwNTIgMi4zMzcxNCAxLjcxMDA0IDIuNDEyNzMgMS45MTQxNSAyLjU1NjA3IGMKMi4xMTgyNiAyLjY5OTQyIDIuMjc3NzYgMi45MDQwNiAyLjM3MjQzIDMuMTQ0MDMgYwoyLjQ2NzA5IDMuMzg0MDEgMi40OTI2NSAzLjY0ODUxIDIuNDQ1ODYgMy45MDM5NyBjCjIuMzk5MDYgNC4xNTk0MyAyLjI4MjAzIDQuMzk0MzQgMi4xMDk2IDQuNTc4OSBjCjEuOTM3MTggNC43NjM0NiAxLjcxNzEzIDQuODg5MzUgMS40NzczNyA0Ljk0MDYgYwoxLjIzNzYyIDQuOTkxODQgMC45ODg5NjUgNC45NjYxNCAwLjc2Mjk1NyA0Ljg2Njc0IGMKMC41MzY5NSA0Ljc2NzM1IDAuMzQzNzc1IDQuNTk4NzUgMC4yMDc5MzkgNC4zODIzMiBjCjAuMDcyMTA0IDQuMTY1OSAtMC4wMDAyNjkgMy45MTE0MSAwLjAwMDAwMSAzLjY1MTE0IGMKMC4wMDAwMDEgMy4zMDMxMSAwLjEyOTg5OSAyLjk2OTM0IDAuMzYxMTIxIDIuNzIzMjUgYwowLjU5MjM0MiAyLjQ3NzE1IDAuOTA1OTQ1IDIuMzM4OSAxLjIzMjk0IDIuMzM4OSBjCjAuMzA5ODA0IDAuOCAwLjkyOTQxMiByZwovYTEuMCBncwoxIHcKMCBKCjAgago0IE0KZioKUQpxCjAgMCBtCjYxLjg4ODkgMTQuMTA4NCBtCjYxLjQyOSAxNC4xMTc3IDYwLjk2OTcgMTQuMDY4IDYwLjUyMSAxMy45NjAzIGMKNjAuMTk3MiAxMy44ODU5IDU5Ljg5NjIgMTMuNzI2IDU5LjY0NTcgMTMuNDk1MiBjCjU5LjQxOTIgMTMuMjY3OCA1OS4yNTggMTIuOTc2NiA1OS4xODA5IDEyLjY1NTQgYwo1OS4wODA2IDEyLjIzOSA1OS4wMzM3IDExLjgxIDU5LjA0MTggMTEuMzgwMiBjCjU5LjA0MTggOC44ODYwOCBsCjU5LjAzNDUgOC40NTgyNSA1OS4wODEzIDguMDMxMzMgNTkuMTgwOSA3LjYxNjc5IGMKNTkuMjU3IDcuMjkzOTYgNTkuNDE4MyA3LjAwMTAzIDU5LjY0NTcgNi43NzI1NyBjCjU5Ljg5NjIgNi41NDE4MSA2MC4xOTcyIDYuMzgxODcgNjAuNTIxIDYuMzA3NTEgYwo2MC45Njk3IDYuMTk5NzQgNjEuNDI5IDYuMTUwMDEgNjEuODg4OSA2LjE1OTQgYwo2Ny4wNjU2IDYuMTU5NCBsCjY3LjA2NTYgNy42ODY0IGwKNjEuOTY1NSA3LjY4NjQgbAo2MS43NTQyIDcuNjgxNDYgNjEuNTQzMSA3LjcwMjgzIDYxLjMzNjUgNy43NTAwOCBjCjYxLjE5MDkgNy43ODIyNiA2MS4wNTY2IDcuODU2NTcgNjAuOTQ4MiA3Ljk2NDg0IGMKNjAuODQ3OCA4LjA3NjQ2IDYwLjc3OTIgOC4yMTYxOCA2MC43NTA2IDguMzY3NyBjCjYwLjcxMTIgOC41NjgzMSA2MC42OTMgOC43NzI5OSA2MC42OTY0IDguOTc3OSBjCjYwLjY5NjQgMTEuMzA3NyBsCjYwLjY5MjUgMTEuNTE1IDYwLjcxMDcgMTEuNzIyMiA2MC43NTA2IDExLjkyNTMgYwo2MC43ODAyIDEyLjA3NDMgNjAuODQ4NyAxMi4yMTEzIDYwLjk0ODIgMTIuMzIwNyBjCjYxLjA1NzUgMTIuNDMwMSA2MS4xOTQzIDEyLjUwMzIgNjEuMzQyIDEyLjUzMSBjCjYxLjU1MTEgMTIuNTczNSA2MS43NjM4IDEyLjU5MjggNjEuOTc2NiAxMi41ODg4IGMKNjcuMDY1NiAxMi41ODg4IGwKNjcuMDY1NiAxNC4xMDI1IGwKNjEuODg4OSAxNC4xMDg0IGwKaAo1Mi44MTcyIDE0LjEwODQgbQo1Mi4zNTczIDE0LjExNzcgNTEuODk4IDE0LjA2OCA1MS40NDkzIDEzLjk2MDMgYwo1MS4xMjU1IDEzLjg4NTkgNTAuODI0NCAxMy43MjYgNTAuNTc0IDEzLjQ5NTIgYwo1MC4zNDc1IDEzLjI2NzggNTAuMTg2MyAxMi45NzY2IDUwLjEwOTIgMTIuNjU1NCBjCjUwLjAwODggMTIuMjM5IDQ5Ljk2MiAxMS44MSA0OS45NyAxMS4zODAyIGMKNDkuOTcgOC44ODYwOCBsCjQ5Ljk2MjggOC40NTgyNSA1MC4wMDk2IDguMDMxMzMgNTAuMTA5MiA3LjYxNjc5IGMKNTAuMTg1MyA3LjI5Mzk2IDUwLjM0NjYgNy4wMDEwMyA1MC41NzQgNi43NzI1NyBjCjUwLjgyNDQgNi41NDE4MSA1MS4xMjU1IDYuMzgxODcgNTEuNDQ5MyA2LjMwNzUxIGMKNTEuODk4IDYuMTk5NzQgNTIuMzU3MyA2LjE1MDAxIDUyLjgxNzIgNi4xNTk0IGMKNTQuNjU1NSA2LjE1OTQgbAo1NC42NTU1IDcuNjYyNyBsCjUyLjgxNzIgNy42NjI3IGwKNTIuNjE4OCA3LjY1NzYxIDUyLjQyMDYgNy42NzkwMSA1Mi4yMjcyIDcuNzI2MzkgYwo1Mi4wOTAzIDcuNzU5ODIgNTEuOTYzOCA3LjgzMDIxIDUxLjg1OTggNy45MzA3OCBjCjUxLjc2NDYgOC4wMzI0NCA1MS42OTk3IDguMTYxNzcgNTEuNjczMyA4LjMwMjUzIGMKNTEuNjM4NyA4LjQ5NDc4IDUxLjYyMzMgOC42OTAzOCA1MS42Mjc0IDguODg2MDggYwo1MS42Mjc0IDkuNDIyMjMgbAo1Ny45ODU1IDkuNDIyMjMgbAo1Ny45ODU1IDEwLjgzMjIgbAo1MS42Mjc0IDEwLjgzMjIgbAo1MS42Mjc0IDExLjM5MDYgbAo1MS42MjQxIDExLjU4OTMgNTEuNjQwNCAxMS43ODc5IDUxLjY3NjEgMTEuOTgzIGMKNTEuNzAxOCAxMi4xMjMyIDUxLjc2NDUgMTIuMjUyNyA1MS44NTcgMTIuMzU2MyBjCjUxLjk1OTIgMTIuNDU3MiA1Mi4wODY5IDEyLjUyNDEgNTIuMjI0NCAxMi41NDg4IGMKNTIuNDIwOSAxMi41ODY4IDUyLjYyMDMgMTIuNjA0MiA1Mi44MiAxMi42MDA2IGMKNTguMDI4NyAxMi42MDA2IGwKNTguMDI4NyAxNC4xMDI1IGwKNTIuODE3MiAxNC4xMDg0IGwKaAo0NC4zNTkyIDE0LjEwODQgbQo0NC4zNTkyIDcuNjkyMzIgbAo0MS4yMjk1IDcuNjkyMzIgbAo0MS4yMjk1IDYuMTY1MzIgbAo0OS4xNjE1IDYuMTY1MzIgbAo0OS4xNjE1IDcuNjkyMzIgbAo0Ni4wMzMzIDcuNjkyMzIgbAo0Ni4wMzMzIDE0LjEwODQgbAo0NC4zNTkyIDE0LjEwODQgbApoCjM0LjMzOTggNi4xNjUzMiBtCjM2LjAwOTcgNi4xNjUzMiBsCjM2LjAwOTcgMTQuMTA4NCBsCjM0LjMzOTggMTQuMTA4NCBsCjM0LjMzOTggNi4xNjUzMiBsCmgKMzEuNDMgOC45NzkzOSBtCjMxLjQzNCA4Ljc3MjA5IDMxLjQxMzQgOC41NjUwOCAzMS4zNjg4IDguMzYzMjUgYwozMS4zMzYzIDguMjE0MDQgMzEuMjY2NiA4LjA3NjkxIDMxLjE2NyA3Ljk2NjMyIGMKMzEuMDU5MiA3Ljg1ODM1IDMwLjkyNDQgNy43ODU4MyAzMC43Nzg3IDcuNzU3NDkgYwozMC41Nzg1IDcuNzE1NCAzMC4zNzQ3IDcuNjk2MDMgMzAuMTcwNiA3LjY5OTczIGMKMjcuNDg0OSA3LjY5OTczIGwKMjcuMjcwMiA3LjY5NTA5IDI3LjA1NTYgNy43MTQ0NSAyNi44NDQ3IDcuNzU3NDkgYwoyNi42OTkxIDcuNzg1ODMgMjYuNTY0MyA3Ljg1ODM1IDI2LjQ1NjUgNy45NjYzMiBjCjI2LjM1NzkgOC4wNzYyMSAyNi4yOTEyIDguMjE0MDMgMjYuMjY0NSA4LjM2MzI1IGMKMjYuMjI4OSA4LjU2NjM4IDI2LjIxMjUgOC43NzI3OSAyNi4yMTU3IDguOTc5MzkgYwoyNi4yMTU3IDExLjAwNyBsCjI2LjIxMjggMTEuMjY3OCAyNi4yMjU0IDExLjUyODQgMjYuMjUzMyAxMS43ODc1IGMKMjYuMjY4NyAxMS45NTk4IDI2LjMyNzQgMTIuMTI0NSAyNi40MjMxIDEyLjI2NDQgYwoyNi41MjE2IDEyLjM4NzcgMjYuNjU2NSAxMi40NzE4IDI2LjgwNTggMTIuNTAyOSBjCjI3LjAyOTEgMTIuNTUxOCAyNy4yNTY5IDEyLjU3MzYgMjcuNDg0OSAxMi41NjgxIGMKMzAuMTc2MiAxMi41NjgxIGwKMzAuMzggMTIuNTcxNSAzMC41ODM3IDEyLjU1MzYgMzAuNzg0MyAxMi41MTQ3IGMKMzAuOTI4NSAxMi40OTQxIDMxLjA2MyAxMi40MjU4IDMxLjE2ODggMTIuMzE5NSBjCjMxLjI3NDcgMTIuMjEzMiAzMS4zNDY1IDEyLjA3NDMgMzEuMzc0MyAxMS45MjIzIGMKMzEuNDE5MSAxMS43MTQ1IDMxLjQzOTcgMTEuNTAxNiAzMS40MzU2IDExLjI4ODQgYwozMS40MyA4Ljk3OTM5IGwKaAozMS42MTA5IDE1LjI1NDcgbQozMC41MzggMTQuMDMxNCBsCjI3LjQxMzkgMTQuMDMxNCBsCjI2Ljk1MSAxNC4wNDA3IDI2LjQ4ODYgMTMuOTk2IDI2LjAzNDggMTMuODk4MSBjCjI1LjcxMjEgMTMuODMyMyAyNS40MTA3IDEzLjY3OTMgMjUuMTU5NSAxMy40NTM3IGMKMjQuOTMzMyAxMy4yMzE0IDI0Ljc3MiAxMi45NDQ1IDI0LjY5NDggMTIuNjI3MyBjCjI0LjU5NDMgMTIuMjEyOSAyNC41NDc0IDExLjc4NTkgMjQuNTU1NiAxMS4zNTggYwoyNC41NTU2IDguODg2MDggbAoyNC41NDgzIDguNDU4MjUgMjQuNTk1MSA4LjAzMTMzIDI0LjY5NDggNy42MTY3OSBjCjI0Ljc3MDkgNy4yOTM5NiAyNC45MzIxIDcuMDAxMDMgMjUuMTU5NSA2Ljc3MjU3IGMKMjUuNDEgNi41NDE4MSAyNS43MTEgNi4zODE4NyAyNi4wMzQ4IDYuMzA3NTEgYwoyNi40ODczIDYuMTk5NDEgMjYuOTUwMyA2LjE0OTY4IDI3LjQxMzkgNi4xNTk0IGMKMzAuMjQ4NiA2LjE1OTQgbAozMC43MTE3IDYuMTQ5NjcgMzEuMTc0MyA2LjE5OTQgMzEuNjI2MiA2LjMwNzUxIGMKMzEuOTUwMSA2LjM4MTU3IDMyLjI1MTIgNi41NDE1NCAzMi41MDE1IDYuNzcyNTcgYwozMi43Mjk0IDcuMDAwODkgMzIuODkxMSA3LjI5MzgyIDMyLjk2NzcgNy42MTY3OSBjCjMzLjA2NjYgOC4wMzE0NyAzMy4xMTM0IDguNDU4MjkgMzMuMTA2OSA4Ljg4NjA4IGMKMzMuMTA2OSAxMS4zNDQ3IGwKMzMuMTIwMyAxMS44Mjc5IDMzLjA1NzMgMTIuMzEgMzIuOTIwNCAxMi43NzEgYwozMi44MDIyIDEzLjEzMjQgMzIuNTY1NSAxMy40MzYzIDMyLjI1MzggMTMuNjI3IGMKMzMuNjU2NSAxNS4yNTQ3IGwKMzEuNjEwOSAxNS4yNTQ3IGwKaAo3NS4zNDc1IDEyLjE1OTggbQo3NS4zNDc1IDEwLjk2MDEgbAo2OS44NzU4IDEwLjk2MDEgbAo2OS44NzU4IDE0LjEyODEgbAo2OC4yMTI5IDE0LjEyODEgbAo2OC4yMTI5IDYuMTgzNTkgbAo2OS44NzU4IDYuMTgzNTkgbAo2OS44NzU4IDkuNDIyNzMgbAo3NS4zNDc1IDkuNDIyNzMgbAo3NS4zNDc1IDYuMTgzNTkgbAo3Ni45OTkzIDYuMTgzNTkgbAo3Ni45OTkzIDEyLjE1OTggbAo3NS4zNDc1IDEyLjE1OTggbApoCjc2Ljk5OTggMTIuNjg4NSBtCjc1LjM1MzUgMTIuNjg4NSBsCjc1LjM1MzUgMTQuMTUxOCBsCjc2Ljk5OTggMTQuMTUxOCBsCjc2Ljk5OTggMTIuNjg4NSBsCmgKMC4zMDk4MDQgMC44IDAuOTI5NDEyIHJnCi9hMS4wIGdzCjEgdwowIEoKMCBqCjQgTQpmClEKMSB3CjAgSgowIGoKNCBNCm4KUQpRClEKUQpRCnEKcQozNzQuODUwMzk0IDEzMy42OTUzMTIgNDQgNDQgcmUKVwpuCnEKL2ExIGdzCjEgMCAwIDEgMzc0Ljg1MDM5NCAxMzMuNjk1MzEyIGNtCnEKcQoxIDAgMCAxIDAgMCBjbQoxIDAgMCAxIDAgMCBjbQpxCjQzLjIgMjEuNiBtCjQzLjIgMzMuNzg2NDk1IDMzLjc4NjQ5NSA0My4yIDIxLjYgNDMuMiBjCjkuNDEzNTA1IDQzLjIgMCAzMy43ODY0OTUgMCAyMS42IGMKMCA5LjQxMzUwNSA5LjQxMzUwNSAwIDIxLjYgMCBjCjMzLjc4NjQ5NSAwIDQzLjIgOS40MTM1MDUgNDMuMiAyMS42IGMKaAoxIDAuMjUwOTggMC41MDE5NjEgcmcKL2ExLjAgZ3MKMSB3CjAgSgowIGoKNCBNCmYKUQpxCjAgMCBtCjIyLjY5NSAyMC41ODUgbQoyMC41MDUgMjAuNTg1IGwKMTkuMjYwODI4IDIwLjU4NzIxNyAxOC4yNDk1MTEgMTkuNTgyMTYyIDE4LjI0NCAxOC4zMzggYwoxOC4yNTAwNiAxNy4wOTQyMjkgMTkuMjYxMjE2IDE2LjA4OTc4MSAyMC41MDUgMTYuMDkyIGMKMjQuODg0IDE2LjA5MiBsCjI1LjQ0OCAxNi4wOTIgMjUuOTA1IDE1LjYzNyAyNS45MDUgMTUuMDc3IGMKMjUuOTA1IDE0LjUxNyAyNS40NDggMTQuMDYyIDI0Ljg4NCAxNC4wNjIgYwoyMi42MjIgMTQuMDYyIGwKMjIuNjIyIDExLjgxNSBsCjIyLjYyMiAxMS4yNTUgMjIuMTY0IDEwLjggMjEuNiAxMC44IGMKMjEuMDM2IDEwLjggMjAuNTc4IDExLjI1NCAyMC41NzggMTEuODE1IGMKMjAuNTc4IDE0LjA2MiBsCjIwLjUwNiAxNC4wNjIgbAoxOC4xMzEgMTQuMDYyIDE2LjIgMTUuOTggMTYuMiAxOC4zMzggYwoxNi4yIDIwLjY5NiAxOC4xMzEgMjIuNjE1IDIwLjUwNiAyMi42MTUgYwoyMi42OTUgMjIuNjE1IGwKMjMuOTM5MTcyIDIyLjYxMjc4MyAyNC45NTA0ODkgMjMuNjE3ODM4IDI0Ljk1NiAyNC44NjIgYwoyNC45NDk5NCAyNi4xMDU3NzEgMjMuOTM4Nzg0IDI3LjExMDIxOSAyMi42OTUgMjcuMTA4IGMKMTguMzE3IDI3LjEwOCBsCjE3Ljc1MiAyNy4xMDggMTcuMjk1IDI3LjU2MyAxNy4yOTUgMjguMTIzIGMKMTcuMjk1IDI4LjY4MyAxNy43NTIgMjkuMTM4IDE4LjMxNiAyOS4xMzggYwoyMC41NzggMjkuMTM4IGwKMjAuNTc4IDMxLjM4NSBsCjIwLjU3OCAzMS45NDUgMjEuMDM2IDMyLjQgMjEuNiAzMi40IGMKMjIuMTY0IDMyLjQgMjIuNjIyIDMxLjk0NiAyMi42MjIgMzEuMzg1IGMKMjIuNjIyIDI5LjEzOCBsCjIyLjY5NSAyOS4xMzggbAoyNS4wNjkgMjkuMTM4IDI3IDI3LjIyIDI3IDI0Ljg2MiBjCjI3IDIyLjUwNCAyNS4wNjkgMjAuNTg1IDIyLjY5NSAyMC41ODUgYwpoCjEgMSAxIHJnCi9hMS4wIGdzCjEgdwowIEoKMCBqCjQgTQpmClEKMSB3CjAgSgowIGoKNCBNCm4KUQpRClEKUQpRCnEKcQowLjQxMTc2NSAwLjQ0NzA1OSAwLjQ5MDE5NiByZwovYTEuMCBncwpCVAoxIDAgMCAtMSAzMjIuNTM4ODcgMjE0LjYyMzA0NyBUbQovT0NITlVQIDEyIFRmClsgPDAwMzM+IDYzIDwwMDI0PiAxNyA8MDAyYTAwMjQwMDMwMDAyODAwMzEwMDM3MDAzMjAwMDMwMDI3MDAyODAwMDMwMDI1PiAxNyA8MDAzMjAwMmYwMDI4MDAzNzAwMzI+IF0gVEoKRVQKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCkJUCjEgMCAwIC0xIDI2Ni42MDgyMDYgMjYxLjU0Njg3NSBUbQovVkNBVFdTIDMyIFRmClsgPDAwMzUwMDA3MDAwMzAwMTUwMDFhMDAxNzAwMTEwMDFiMDAxMzAwMTMwMDBmMDAxMzAwMTM+IF0gVEoKRVQKUQpRCnEKcQowIDI3Mi40Njg3NSA3OTMuNzAwNzg3IDgyNCByZQpXCm4KcQowLjk0OTAyIDAuOTU2ODYzIDAuOTg4MjM1IHJnCi9hMS4wIGdzCjAgMjcyLjQ2ODc1IDc5My43MDA3ODcgODI0IHJlClcKbgowIDI3Mi40Njg3NSA3OTMuNzAwNzg3IDgyNCByZQpmClEKUQpRCnEKcQowIDI3Mi40Njg3NSA3OTMuNzAwNzg3IDIyOCByZQpXCm4KcQoxIDEgMSByZwovYTEuMCBncwowIDI3Mi40Njg3NSA3OTMuNzAwNzg3IDIyOCByZQpXCm4KMCAyNzIuNDY4NzUgNzkzLjcwMDc4NyAyMjggcmUKZgpRClEKcQo3OTMuNzAwNzg3IDUwMC40Njg3NSBtCjAgNTAwLjQ2ODc1IGwKMCA0OTkuNDY4NzUgbAo3OTMuNzAwNzg3IDQ5OS40Njg3NSBsClcqCm4KMC4wOTgwMzkgMC4xNDExNzYgMC40OTQxMTggcmcKL2ExLjAgZ3MKMCAyNzIuNDY4NzUgNzkzLjcwMDc4NyAyMjcgcmUKMCAyNzIuNDY4NzUgNzkzLjcwMDc4NyAyMjggcmUKZioKUQpRCnEKcQpxCnEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTEuMCBncwpCVAoxIDAgMCAtMSA3NS41OTA1NTEgMzgzLjAwNzgxMiBUbQovVkNBVFdTIDE2IFRmClsgPDAwMTYwMDE1MDAxYzAwMWMwMDE1MDAxNTAwMTkwMDFjMDAxNzAwMWIwMDE4MDAxMzAwMTMwMDEzMDAxMzAwMTMwMDEzMDAxMzAwMTMwMDEzMDAxODAwMTgwMDE3MDAxMzAwMTMwMDFhMDAxYTAwMWMwMDFhMDAxYzAwMTMwMDE1MDAxYTAwMWMwMDFiMDAxMzAwMTYwMDEzMDAxMzAwMTUwMDFhMDAxODAwMTMwMDEzMDAxMzAwMTMwMDEzPiBdIFRKCkVUClEKUQpRClEKcQpxCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2ExLjAgZ3MKQlQKMSAwIDAgLTEgNzUuNTkwNTUxIDQ1OS4wMDc4MTIgVG0KL1ZDQVRXUyAxNiBUZgpbIDwwMDE2MDAxNTAwMWMwMDAzMDAxMDAwMDMwMDM0MDAyYzAwMDMwMDM2MDAzMjAwMjYwMDJjMDAyODAwMjcwMDI0MDAyNzAwMjgwMDAzMDAyNzAwMjgwMDAzMDAyNjAwMzUwMDhiMDAyNzAwMmMwMDM3MDAzMjAwMDMwMDI3MDAyYzAwMzUwMDI4MDAzNzAwMzIwMDAzMDAzNjAwMTEwMDI0PiAtMTggPDAwMTE+IF0gVEoKRVQKUQpRClEKUQpRClEKcQpxCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2ExLjAgZ3MKQlQKMSAwIDAgLTEgMTA5LjU5MDU1MSAzNDkuNjIzMDQ3IFRtCi9PQ0hOVVAgMTIgVGYKWyA8MDAyZjAwNGMwMDUxMDA0YjAwNDQwMDAzMDAyNzAwNGMwMDRhMDA0YzAwNTcwMGEzMDA1OTAwNDgwMDRmPiBdIFRKCkVUClEKUQpRClEKcQpxCjc1LjU5MDU1MSAzMzIuNDY4NzUgMjQgMjQgcmUKVwpuCnEKL2ExIGdzCjEgMCAwIDEgNzUuNTkwNTUxIDMzMi40Njg3NSBjbQpxCnEKMSAwIDAgMSAwIDAgY20KMSAwIDAgMSAwIDAgY20KcQoyNCAxMiBtCjI0IDE4Ljc3MDI3NSAxOC43NzAyNzUgMjQgMTIgMjQgYwo1LjIyOTcyNSAyNCAwIDE4Ljc3MDI3NSAwIDEyIGMKMCA1LjIyOTcyNSA1LjIyOTcyNSAwIDEyIDAgYwoxOC43NzAyNzUgMCAyNCA1LjIyOTcyNSAyNCAxMiBjCmgKMC44NjI3NDUgMC44NzA1ODggMC45NzY0NzEgcmcKL2ExLjAgZ3MKMSB3CjAgSgowIGoKNCBNCmYKUQpxCjAgMCBtCjUuNyA3LjUgbQo0LjggNy41IGwKNC44IDE2LjUgbAo1LjcgMTYuNSBsCjUuNyA3LjUgbApoCjE5LjIgNy41IG0KMTguMyA3LjUgbAoxOC4zIDE2LjUgbAoxOS4yIDE2LjUgbAoxOS4yIDcuNSBsCmgKNy45NSA3LjUgbQo3LjA1IDcuNSBsCjcuMDUgMTQuNyBsCjcuOTUgMTQuNyBsCjcuOTUgNy41IGwKaAo5Ljc1MiA3LjUgbQo4Ljg1MiA3LjUgbAo4Ljg1MiAxNC43IGwKOS43NTIgMTQuNyBsCjkuNzUyIDcuNSBsCmgKMTMuMzUxIDcuNSBtCjEyLjQ1MSA3LjUgbAoxMi40NTEgMTYuNSBsCjEzLjM1MSAxNi41IGwKMTMuMzUxIDcuNSBsCmgKMTUuMTUgNy41IG0KMTQuMjUgNy41IGwKMTQuMjUgMTQuNyBsCjE1LjE1IDE0LjcgbAoxNS4xNSA3LjUgbApoCjcuOTUgMTUuNiBtCjcuMDUgMTUuNiBsCjcuMDUgMTYuNSBsCjcuOTUgMTYuNSBsCjcuOTUgMTUuNiBsCmgKOS43NTIgMTUuNiBtCjguODUyIDE1LjYgbAo4Ljg1MiAxNi41IGwKOS43NTIgMTYuNSBsCjkuNzUyIDE1LjYgbApoCjExLjU1IDcuNSBtCjEwLjY1IDcuNSBsCjEwLjY1IDE0LjcgbAoxMS41NSAxNC43IGwKMTEuNTUgNy41IGwKaAoxMS41NSAxNS42IG0KMTAuNjUgMTUuNiBsCjEwLjY1IDE2LjUgbAoxMS41NSAxNi41IGwKMTEuNTUgMTUuNiBsCmgKMTUuMTUgMTUuNiBtCjE0LjI1IDE1LjYgbAoxNC4yNSAxNi41IGwKMTUuMTUgMTYuNSBsCjE1LjE1IDE1LjYgbApoCjE2Ljk1IDcuNSBtCjE2LjA1IDcuNSBsCjE2LjA1IDE0LjcgbAoxNi45NSAxNC43IGwKMTYuOTUgNy41IGwKaAoxNi45NSAxNS42IG0KMTYuMDUgMTUuNiBsCjE2LjA1IDE2LjUgbAoxNi45NSAxNi41IGwKMTYuOTUgMTUuNiBsCmgKMC4wOTgwMzkgMC4xNDExNzYgMC40OTQxMTggcmcKL2ExLjAgZ3MKMSB3CjAgSgowIGoKNCBNCmYKUQoxIHcKMCBKCjAgago0IE0KbgpRClEKUQpRClEKcQpxCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2ExLjAgZ3MKQlQKMSAwIDAgLTEgMTA5LjU5MDU1MSA0MjUuNjIzMDQ3IFRtCi9PQ0hOVVAgMTIgVGYKWyA8MDAyNTAwNDQwMDUxMDA0NjAwNTIwMDAzMDA0NzAwNDgwMDU2MDA1NzAwNGMwMDUxMDA0NDAwNTcwMGEzMDA1NTAwNGMwMDUyPiBdIFRKCkVUClEKUQpRClEKcQpxCjc1LjU5MDU1MSA0MDguNDY4NzUgMjQgMjQgcmUKVwpuCnEKL2ExIGdzCjEgMCAwIDEgNzUuNTkwNTUxIDQwOC40Njg3NSBjbQpxCnEKMSAwIDAgMSAwIDAgY20KMSAwIDAgMSAwIDAgY20KcQoyNCAxMiBtCjI0IDE4Ljc3MDI3NSAxOC43NzAyNzUgMjQgMTIgMjQgYwo1LjIyOTcyNSAyNCAwIDE4Ljc3MDI3NSAwIDEyIGMKMCA1LjIyOTcyNSA1LjIyOTcyNSAwIDEyIDAgYwoxOC43NzAyNzUgMCAyNCA1LjIyOTcyNSAyNCAxMiBjCmgKMC44NjI3NDUgMC44NzA1ODggMC45NzY0NzEgcmcKL2ExLjAgZ3MKMSB3CjAgSgowIGoKNCBNCmYKUQpxCjAgMCBtCjE4LjEyOSAxMC4yMiBtCjE4LjU4MSAxMC4yMiAxOC45NDkgOS44NTIgMTguOTQ5IDkuNCBjCjE4Ljk0OSA4LjMzNyBsCjE4Ljk0OTkyOCA4LjAwMTkzMiAxOC43NDYxNzQgNy43MDAyNjUgMTguNDM1IDcuNTc2IGMKMTIuMjgyIDUuMDYgbAoxMi4wODU4MzUgNC45ODAzODcgMTEuODY2NDI1IDQuOTgwMDI4IDExLjY3IDUuMDU5IGMKNS41MTQgNy41NzYgbAo1LjIwMjgyNiA3LjcwMDI2NSA0Ljk5OTA3MiA4LjAwMTkzMiA1IDguMzM3IGMKNSA5LjQgbAo1IDkuODUyIDUuMzY4IDEwLjIyIDUuODIgMTAuMjIgYwo2LjMxMyAxMC4yMiBsCjYuMzEzIDE2LjQwMiBsCjUuODIgMTYuNDAyIGwKNS4zNjY5NjQgMTYuNDAyIDQuOTk5NTUyIDE2Ljc2ODk2NSA0Ljk5OSAxNy4yMjIgYwo0Ljk5OSAxOC4xNzkgbAo0Ljk5OSAxOC42MzIgNS4zNjcgMTkgNS44MTkgMTkgYwoxOC4xMyAxOSBsCjE4LjU4MiAxOSAxOC45NSAxOC42MzIgMTguOTUgMTguMTggYwoxOC45NSAxNy4yMjIgbAoxOC45NDk0NDkgMTYuNzY5MzU1IDE4LjU4MjY0NSAxNi40MDI1NTEgMTguMTMgMTYuNDAyIGMKMTcuNjM3IDE2LjQwMiBsCjE3LjYzNyAxMC4yMiBsCjE4LjEzIDEwLjIyIGwKaAoxOC4xMjkgMTcuMjIyIG0KMTguMTI5IDE4LjIwMiAxOC4xMzEgMTguMTc5IDE4LjEyOSAxOC4xNzkgYwo1LjgyIDE4LjE3OSBsCjUuODIgMTcuMjIyIGwKMTguMTI4IDE3LjIyMiBsCmgKNy4xMzMgMTYuNDAyIG0KNy4xMzMgMTAuMjIgbAo4LjA2MyAxMC4yMiBsCjguMDYzIDE2LjQwMiBsCjcuMTMzIDE2LjQwMiBsCmgKOC44ODQgMTYuNDAyIG0KOC44ODQgMTAuMjIgbAoxMC42ODkgMTAuMjIgbAoxMC42ODkgMTYuNDAyIGwKOC44ODQgMTYuNDAyIGwKaAoxMS41MSAxNi40MDIgbQoxMS41MSAxMC4yMiBsCjEyLjQ0IDEwLjIyIGwKMTIuNDQgMTYuNDAyIGwKMTEuNTEgMTYuNDAyIGwKaAoxMy4yNiAxNi40MDIgbQoxMy4yNiAxMC4yMiBsCjE1LjA2NSAxMC4yMiBsCjE1LjA2NSAxNi40MDIgbAoxMy4yNiAxNi40MDIgbApoCjE1Ljg4NiAxNi40MDIgbQoxNS44ODYgMTAuMjIgbAoxNi44MTYgMTAuMjIgbAoxNi44MTYgMTYuNDAyIGwKMTUuODg2IDE2LjQwMiBsCmgKNS44MiA5LjQgbQo1LjgyIDguMjU1IDUuODE4IDguMzM4IDUuODIyIDguMzM2IGMKMTEuOTc0IDUuODIxIGwKMTguMTI0IDguMzM2IGwKMTguMTI5IDguMzM4IDE4LjEyOCA4LjI1OCAxOC4xMjggOS40IGMKNS44MiA5LjQgbApoCjAuMDk4MDM5IDAuMTQxMTc2IDAuNDk0MTE4IHJnCi9hMS4wIGdzCjEgdwowIEoKMCBqCjQgTQpmClEKMSB3CjAgSgowIGoKNCBNCm4KUQpRClEKUQpRCnEKcQpxCnEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTAuNyBncwpCVAoxIDAgMCAtMSA3NS41OTA1NTEgNTg2LjYyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMzEwMDUyMDA1MDAwNDgwMDAzMDA0NzAwNTIwMDAzMDAzMz4gMjYgPDAwNDQwMDRhMDA0NDAwNDcwMDUyMDA1NT4gXSBUSgpFVApRClEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTEuMCBncwpCVAoxIDAgMCAtMSAzOTYuODUwMzk0IDU4OC4xMjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDM0MDAyYzAwMDMwMDM2MDAyNjAwMjcwMDAzMDAzNjAwMTEwMDI0PiAtMTggPDAwMTE+IF0gVEoKRVQKUQpRClEKUQpxCnEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTAuNyBncwpCVAoxIDAgMCAtMSA3NS41OTA1NTEgNjI1LjYyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMjYwMDMzMDAyOTAwMTIwMDI2MDAzMTAwMzMwMDJkPiBdIFRKCkVUClEKUQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMS4wIGdzCkJUCjEgMCAwIC0xIDM5Ni44NTAzOTQgNjI3LjEyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMTYwMDE1MDAxMTAwMTcwMDEzMDAxNTAwMTEwMDE4MDAxMzAwMTUwMDEyMDAxMzAwMTMwMDEzMDAxNDAwMTAwMDE2MDAxOD4gXSBUSgpFVApRClEKUQpRCnEKcQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMC43IGdzCkJUCjEgMCAwIC0xIDc1LjU5MDU1MSA2NjQuNjIzMDQ3IFRtCi9WQ0FUV1MgMTIgVGYKWyA8MDAyNDAwNGEwMGFjMDA1MTAwNDYwMDRjMDA0ND4gXSBUSgpFVApRClEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTEuMCBncwpCVAoxIDAgMCAtMSAzOTYuODUwMzk0IDY2Ni4xMjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDEzMDAxMzAwMTMwMDE0PiBdIFRKCkVUClEKUQpRClEKcQpxCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2EwLjcgZ3MKQlQKMSAwIDAgLTEgNzUuNTkwNTUxIDcwMy42MjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDI2MDA1MjAwNTEwMDU3MDA0ND4gXSBUSgpFVApRClEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTEuMCBncwpCVAoxIDAgMCAtMSAzOTYuODUwMzk0IDcwNS4xMjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDEzMDAxMzAwMTMwMDEzMDAxYTAwMTAwMDE3PiBdIFRKCkVUClEKUQpRClEKcQpxCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2EwLjcgZ3MKQlQKMSAwIDAgLTEgNzUuNTkwNTUxIDc0Mi42MjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDJjMDA1MTAwNTYwMDU3MDA0YzAwNTcwMDU4MDA0YzAwYTkwMGE1MDA1MjAwMDMwMDI5MDA0YzAwNTEwMDQ0MDA1MTAwNDYwMDQ4MDA0YzAwNTUwMDQ0PiBdIFRKCkVUClEKUQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMS4wIGdzCkJUCjEgMCAwIC0xIDM5Ni44NTAzOTQgNzQ0LjEyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMzQwMDJjMDAwMzAwMzYwMDMyMDAyNjAwMmMwMDI4MDAyNzAwMjQwMDI3MDAyODAwMDMwMDI3MDAyODAwMDMwMDI2MDAzNTAwOGIwMDI3MDAyYzAwMzcwMDMyMDAwMzAwMjcwMDJjMDAzNTAwMjgwMDM3MDAzMjAwMDMwMDM2MDAxMTAwMjQ+IC0xOCA8MDAxMT4gXSBUSgpFVApRClEKUQpRCnEKcQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMC43IGdzCkJUCjEgMCAwIC0xIDc1LjU5MDU1MSA3ODEuNjIzMDQ3IFRtCi9WQ0FUV1MgMTIgVGYKWyA8MDAzOT4gNTQgPDAwNDQwMDRmMDA1MjAwNTU+IF0gVEoKRVQKUQpRCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2ExLjAgZ3MKQlQKMSAwIDAgLTEgMzk2Ljg1MDM5NCA3ODMuMTIzMDQ3IFRtCi9WQ0FUV1MgMTIgVGYKWyA8MDAzNTAwMDcwMDAzMDAxNTAwMWEwMDE3MDAxMTAwMWIwMDEzMDAxMzAwMGYwMDEzMDAxMz4gXSBUSgpFVApRClEKUQpRCnEKcQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMC43IGdzCkJUCjEgMCAwIC0xIDc1LjU5MDU1MSA4ODQuNjIzMDQ3IFRtCi9WQ0FUV1MgMTIgVGYKWyA8MDAzMTAwNTIwMDUwMDA0ODAwMDMwMDQ3MDA1MjAwMDMwMDI1MDA0ODAwNTEwMDQ4MTNhZTAwNDYwMDRjMDBhMzAwNTUwMDRjMDA1Mj4gXSBUSgpFVApRClEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTEuMCBncwpCVAoxIDAgMCAtMSAzOTYuODUwMzk0IDg4Ni4xMjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDI1MDA0ODAwNDQwMDU3MDA1NTAwNGMwMDVkMDAwMzAwMjYwMDUyMDA1ODAwNTcwMDUyMDAwMzAwNDcwMDQ4MDAwMzAwMjYwMDQ0MDA1NTAwNTkwMDQ0MDA0ZjAwNGIwMDUyPiBdIFRKCkVUClEKUQpRClEKcQpxCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2EwLjcgZ3MKQlQKMSAwIDAgLTEgNzUuNTkwNTUxIDkyMy42MjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDI2MDAzMzAwMjkwMDEyMDAyNjAwMzEwMDMzMDAyZD4gXSBUSgpFVApRClEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTEuMCBncwpCVAoxIDAgMCAtMSAzOTYuODUwMzk0IDkyNS4xMjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDEzMDAxNjAwMWEwMDExMDAxYjAwMTUwMDE5MDAxMTAwMTQwMDFhMDAxMzAwMTAwMDE2MDAxYT4gXSBUSgpFVApRClEKUQpRCnEKcQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMC43IGdzCkJUCjEgMCAwIC0xIDc1LjU5MDU1MSA5NjIuNjIzMDQ3IFRtCi9WQ0FUV1MgMTIgVGYKWyA8MDAzMTAwNTIwMDUwMDA0ODAwMDMwMDQ3MDA1MjAwMDMwMDM2MDA0NDAwNDYwMDQ0MDA0NzAwNTIwMDU1MDAwMzAwMjQ+IDM1IDwwMDU5MDA0NDAwNGYwMDRjMDA1NjAwNTcwMDQ0PiBdIFRKCkVUClEKUQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMS4wIGdzCkJUCjEgMCAwIC0xIDM5Ni44NTAzOTQgOTY0LjEyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMTA+IF0gVEoKRVQKUQpRClEKUQpxCnEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTAuNyBncwpCVAoxIDAgMCAtMSA3NS41OTA1NTEgMTAwMS42MjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDI2MDAzMTAwMzMwMDJkPiBdIFRKCkVUClEKUQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMS4wIGdzCkJUCjEgMCAwIC0xIDM5Ni44NTAzOTQgMTAwMy4xMjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDEwPiBdIFRKCkVUClEKUQpRClEKcQpxCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2EwLjcgZ3MKQlQKMSAwIDAgLTEgNzUuNTkwNTUxIDEwNDAuNjIzMDQ3IFRtCi9WQ0FUV1MgMTIgVGYKWyA8MDAyNzAwNDQwMDU3MDA0NDAwMDMwMDQ3MDA0ODAwMDMwMDM5PiA1NCA8MDA0ODAwNTEwMDQ2MDA0YzAwNTAwMDQ4MDA1MTAwNTcwMDUyPiBdIFRKCkVUClEKUQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMS4wIGdzCkJUCjEgMCAwIC0xIDM5Ni44NTAzOTQgMTA0Mi4xMjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDEzMDAxYzAwMTIwMDEzMDAxYjAwMTIwMDE1MDAxMzAwMTUwMDE3PiBdIFRKCkVUClEKUQpRClEKcQpxCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2EwLjcgZ3MKQlQKMSAwIDAgLTEgNzUuNTkwNTUxIDEwNzkuNjIzMDQ3IFRtCi9WQ0FUV1MgMTIgVGYKWyA8MDAyNzAwNDQwMDU3MDA0NDAwMDMwMDQ3MDA1MjAwMDMwMDMzPiAyNiA8MDA0NDAwNGEwMDQ0MDA1MDAwNDgwMDUxMDA1NzAwNTI+IF0gVEoKRVQKUQpRCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2ExLjAgZ3MKQlQKMSAwIDAgLTEgMzk2Ljg1MDM5NCAxMDgxLjEyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMTMwMDE5MDAxMjAwMTMwMDFiMDAxMjAwMTUwMDEzMDAxNTAwMTc+IF0gVEoKRVQKUQpRClEKUQpRClEKcQpxCjAgMTAyNS41MTk2ODUgNzkzLjcwMDc4NyA5NyByZQpXCm4KcQowLjk0OTAyIDAuOTU2ODYzIDAuOTg4MjM1IHJnCi9hMS4wIGdzCjAgMTAyNS41MTk2ODUgNzkzLjcwMDc4NyA5NyByZQpXCm4KMCAxMDI1LjUxOTY4NSA3OTMuNzAwNzg3IDk3IHJlCmYKUQpRCnEKNzkzLjcwMDc4NyAxMDI1LjUxOTY4NSBtCjAgMTAyNS41MTk2ODUgbAowIDEwMjYuNTE5Njg1IGwKNzkzLjcwMDc4NyAxMDI2LjUxOTY4NSBsClcqCm4KMCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjUuOTkwMTk1IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMTEuOTgwMzg5IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMTcuOTcwNTg0IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMjMuOTYwNzc4IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMjkuOTUwOTczIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMzUuOTQxMTY4IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNDEuOTMxMzYyIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNDcuOTIxNTU3IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNTMuOTExNzUyIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNTkuOTAxOTQ2IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNjUuODkyMTQxIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNzEuODgyMzM1IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNzcuODcyNTMgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo4My44NjI3MjUgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo4OS44NTI5MTkgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo5NS44NDMxMTQgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoxMDEuODMzMzA5IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMTA3LjgyMzUwMyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjExMy44MTM2OTggMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoxMTkuODAzODkyIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMTI1Ljc5NDA4NyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjEzMS43ODQyODIgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoxMzcuNzc0NDc2IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMTQzLjc2NDY3MSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjE0OS43NTQ4NjYgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoxNTUuNzQ1MDYgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoxNjEuNzM1MjU1IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMTY3LjcyNTQ0OSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjE3My43MTU2NDQgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoxNzkuNzA1ODM5IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMTg1LjY5NjAzMyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjE5MS42ODYyMjggMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoxOTcuNjc2NDIzIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMjAzLjY2NjYxNyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjIwOS42NTY4MTIgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyMTUuNjQ3MDA2IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMjIxLjYzNzIwMSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjIyNy42MjczOTYgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyMzMuNjE3NTkgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyMzkuNjA3Nzg1IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMjQ1LjU5Nzk3OSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjI1MS41ODgxNzQgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyNTcuNTc4MzY5IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMjYzLjU2ODU2MyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjI2OS41NTg3NTggMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyNzUuNTQ4OTUzIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMjgxLjUzOTE0NyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjI4Ny41MjkzNDIgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyOTMuNTE5NTM2IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMjk5LjUwOTczMSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjMwNS40OTk5MjYgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQozMTEuNDkwMTIgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQozMTcuNDgwMzE1IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMzIzLjQ3MDUxIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMzI5LjQ2MDcwNCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjMzNS40NTA4OTkgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQozNDEuNDQxMDkzIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMzQ3LjQzMTI4OCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjM1My40MjE0ODMgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQozNTkuNDExNjc3IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMzY1LjQwMTg3MiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjM3MS4zOTIwNjcgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQozNzcuMzgyMjYxIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMzgzLjM3MjQ1NiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjM4OS4zNjI2NSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjM5NS4zNTI4NDUgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo0MDEuMzQzMDQgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo0MDcuMzMzMjM0IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNDEzLjMyMzQyOSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjQxOS4zMTM2MjQgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo0MjUuMzAzODE4IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNDMxLjI5NDAxMyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjQzNy4yODQyMDcgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo0NDMuMjc0NDAyIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNDQ5LjI2NDU5NyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjQ1NS4yNTQ3OTEgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo0NjEuMjQ0OTg2IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNDY3LjIzNTE4MSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjQ3My4yMjUzNzUgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo0NzkuMjE1NTcgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo0ODUuMjA1NzY0IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNDkxLjE5NTk1OSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjQ5Ny4xODYxNTQgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo1MDMuMTc2MzQ4IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNTA5LjE2NjU0MyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjUxNS4xNTY3MzcgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo1MjEuMTQ2OTMyIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNTI3LjEzNzEyNyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjUzMy4xMjczMjEgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo1MzkuMTE3NTE2IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNTQ1LjEwNzcxMSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjU1MS4wOTc5MDUgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo1NTcuMDg4MSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjU2My4wNzgyOTQgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo1NjkuMDY4NDg5IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNTc1LjA1ODY4NCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjU4MS4wNDg4NzggMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo1ODcuMDM5MDczIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNTkzLjAyOTI2OCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjU5OS4wMTk0NjIgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo2MDUuMDA5NjU3IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNjEwLjk5OTg1MSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjYxNi45OTAwNDYgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo2MjIuOTgwMjQxIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNjI4Ljk3MDQzNSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjYzNC45NjA2MyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjY0MC45NTA4MjUgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo2NDYuOTQxMDE5IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNjUyLjkzMTIxNCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjY1OC45MjE0MDggMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo2NjQuOTExNjAzIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNjcwLjkwMTc5OCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjY3Ni44OTE5OTIgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo2ODIuODgyMTg3IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNjg4Ljg3MjM4MiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjY5NC44NjI1NzYgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo3MDAuODUyNzcxIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNzA2Ljg0Mjk2NSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjcxMi44MzMxNiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjcxOC44MjMzNTUgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo3MjQuODEzNTQ5IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNzMwLjgwMzc0NCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjczNi43OTM5MzggMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo3NDIuNzg0MTMzIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNzQ4Ljc3NDMyOCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjc1NC43NjQ1MjIgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo3NjAuNzU0NzE3IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNzY2Ljc0NDkxMiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjc3Mi43MzUxMDYgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo3NzguNzI1MzAxIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNzg0LjcxNTQ5NSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjc5MC43MDU2OSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlClcqCm4KMC4wOTgwMzkgMC4xNDExNzYgMC40OTQxMTggcmcKL2ExLjAgZ3MKMCAxMDI2LjUxOTY4NSA3OTMuNzAwNzg3IDk2IHJlCjAgMTAyNS41MTk2ODUgNzkzLjcwMDc4NyA5NyByZQpmKgpRClEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTAuNyBncwpCVAoxIDAgMCAtMSAzMjUuNzUyNzM3IDEwNTcuNjczOTgyIFRtCi9PQ0hOVVAgMTIgVGYKWyA8MDAyNjAwYjUwMDQ3MDA0YzAwNGEwMDUyMDAwMzAwNDcwMDQ4MDAwMzAwNDQwMDU4MDA1NzAwNDgwMDUxMDA1NzAwNGMwMDQ2MDA0NDAwYTkwMGE1MDA1MjAwMDM+IF0gVEoKRVQKL2ExLjAgZ3MKQlQKMSAwIDAgLTEgMjY3LjI2NDQ1NiAxMDcxLjY3Mzk4MiBUbQovT0NITlVQIDEyIFRmClsgPDAwMWMwMDE3MDAxMzAwNDYwMDE3MDAxYjAwMWEwMDQ2MDAxMDAwNDcwMDFjMDAxNzAwMTcwMDEwMDAxNzAwMWEwMDE2MDA0NzAwMTAwMDQ1MDA0NTAwNDcwMDE2MDAxMDAwMTMwMDFiMDAxYTAwMTQwMDQ3MDAxYzAwMTUwMDQ0MDAxODAwMTUwMDE1MDAxOD4gXSBUSgpFVAovYTAuNyBncwpCVAoxIDAgMCAtMSAyOTAuNjI4NzE0IDEwOTUuNjczOTgyIFRtCi9PQ0hOVVAgMTIgVGYKWyA8MDAzNDAwNGMwMDAzMDAzNjAwNTIwMDQ2MDA0YzAwNDgwMDQ3MDA0NDAwNDcwMDQ4MDAwMzAwNDcwMDQ4MDAwMzAwMjYwMDU1PiAyMSA8MDA0ODAwNDcwMDRjMDA1NzAwNTIwMDAzMDAyNzAwNGMwMDU1PiAyMSA8MDA0ODAwNTcwMDUyMDAwMzAwMzYwMDExMDAyND4gMTcgPDAwMTE+IF0gVEoKMSAwIDAgLTEgMzE5LjQzMzQwMiAxMTA5LjY3Mzk4MiBUbQpbIDwwMDI2MDAzMTAwMzMwMDJkMDAwMzAwMTYwMDE1MDAxMTAwMTcwMDEzMDAxNTAwMTEwMDE4MDAxMzAwMTUwMDEyMDAxMzAwMTMwMDEzMDAxNDAwMTAwMDE4MDAxYz4gXSBUSgpFVApRClEKcQpxCnEKcQo3NS41OTA1NTEgNTIyLjQ2ODc1IDcwIDkgcmUKVwpuCnEKMSAwLjkwNTg4MiAwLjkzNzI1NSByZwovYTEuMCBncwo3NS41OTA1NTEgNTIyLjQ2ODc1IDcwIDkgcmUKVwpuCjc1LjU5MDU1MSA1MjIuNDY4NzUgNzAgOSByZQpmClEKUQpRCjAuMDk4MDM5IDAuMTQxMTc2IDAuNDk0MTE4IHJnCi9hMS4wIGdzCkJUCjEgMCAwIC0xIDc1LjU5MDU1MSA1MjcuMDA3ODEyIFRtCi9WQ0FUV1MgMTYgVGYKWyA8MDAzMz4gMjYgPDAwNDQwMDRhMDA0NDAwNDcwMDUyPiBdIFRKCjEgMCAwIC0xIDc1LjU5MDU1MSA1NDkuMDA3ODEyIFRtClsgPDAwNTU+IF0gVEoKRVQKUQpRCnEKcQpxCnEKNzUuNTkwNTUxIDgyMC40Njg3NSAxMDAgOSByZQpXCm4KcQoxIDAuOTA1ODgyIDAuOTM3MjU1IHJnCi9hMS4wIGdzCjc1LjU5MDU1MSA4MjAuNDY4NzUgMTAwIDkgcmUKVwpuCjc1LjU5MDU1MSA4MjAuNDY4NzUgMTAwIDkgcmUKZgpRClEKUQowLjA5ODAzOSAwLjE0MTE3NiAwLjQ5NDExOCByZwovYTEuMCBncwpCVAoxIDAgMCAtMSA3NS41OTA1NTEgODI1LjAwNzgxMiBUbQovVkNBVFdTIDE2IFRmClsgPDAwMjUwMDQ4MDA1MTAwNDgxM2FlMDA0NjAwNGMwMGEzMDA1NTAwNGM+IF0gVEoKMSAwIDAgLTEgNzUuNTkwNTUxIDg0Ny4wMDc4MTIgVG0KWyA8MDA1Mj4gXSBUSgpFVApRClEKUQpRClEKUQpRClEKcQowIDAgNTk1LjMwMzkzNzAwNzg3NCA4NDEuODg5NzYzNzc5NTI4IHJlClcKbgowLjEgdwpxCjEwIC0wLjExIDU3NS4zIDgxNCByZQpXKgpuCnEKL0VHUzYgZ3MKL1RyNSBEbwpRClEKUQoKZW5kc3RyZWFtCmVuZG9iago2IDAgb2JqCjw8Ci9DQSAwLjMKL2NhIDAuMwo+PgplbmRvYmoKNyAwIG9iago8PAovVHlwZSAvRm9udAovU3VidHlwZSAvVHlwZTAKL0Jhc2VGb250IC9WQ0FUV1MrRGVqYVZ1LVNhbnMtQm9sZAovVG9Vbmljb2RlIDggMCBSCi9FbmNvZGluZyAvSWRlbnRpdHktSAovRGVzY2VuZGFudEZvbnRzIFsgOSAwIFIgXQo+PgplbmRvYmoKOCAwIG9iago8PAovRmlsdGVyIC9GbGF0ZURlY29kZQovTGVuZ3RoIDQ3Ngo+PgpzdHJlYW0KeNpdlMuK20AQRff6il5OFoPUL8kDxhAmGy/yIE4+oN0qeQSxJGR54b+P1KdxIAIbLvfW41apVL4fvxyHflHlj3mMJ1lU1w/tLLfxPkdRZ7n0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K+Zp8efxZ+nFp148VFKHP48/i4JHwZFZpUz8VckfMUusJTakTNQr1Bs6Ezw0ZAqZmrmUzEXjtiRTc2OGG9PoldRZTvHpTTCzkklo1Mt0t8QcsZJTXFLnHgz3EIQUI9+fc3q3+8Pe9+9za7r7uoaFiUsaN2XfkXGSzz1e5mWv2r9/AZtk9d4KZW5kc3RyZWFtCmVuZG9iagoxNCAwIG9iago8PAovVHlwZSAvRm9udAovU3VidHlwZSAvQ0lERm9udFR5cGUyCi9CYXNlRm9udCAvT0NITlVQK0RlamFWdS1TYW5zCi9DSURTeXN0ZW1JbmZvIDw8Ci9SZWdpc3RyeSAoQWRvYmUpCi9PcmRlcmluZyAoSWRlbnRpdHkpCi9TdXBwbGVtZW50IDAKPj4KL0NJRFRvR0lETWFwIC9JZGVudGl0eQovVyBbIDMgWyAzMTggXSAxNiBbIDM2MSAzMTggMzM3IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiBdIDM2IFsgNjg0IDY4NiA2OTggNzcwIDYzMiBdIDQyIFsgNzc1IF0gNDUgWyAyOTUgXSA0NyBbIDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IF0gNTQgWyA2MzUgNjExIF0gNjggWyA2MTMgNjM1IDU1MCA2MzUgNjE1IF0gNzQgWyA2MzUgNjM0IDI3OCBdIDc5IFsgMjc4IF0gODEgWyA2MzQgNjEyIF0gODUgWyA0MTEgNTIxIDM5MiA2MzQgNTkyIF0gMTYzIFsgNjEzIF0gMTY1IFsgNjEzIF0gMTY5IFsgNTUwIF0gMTgxIFsgNjEyIF0gXQovRm9udERlc2NyaXB0b3IgMTUgMCBSCj4+CmVuZG9iagoxNSAwIG9iago8PAovVHlwZSAvRm9udERlc2NyaXB0b3IKL0ZvbnROYW1lIC9PQ0hOVVArRGVqYVZ1LVNhbnMKL0ZvbnRGYW1pbHkgKERlamFWdVwwNDBTYW5zKQovRmxhZ3MgNAovRm9udEJCb3ggWyAwIC0yMzUgODYzIDkyOCBdCi9JdGFsaWNBbmdsZSAwCi9Bc2NlbnQgOTI4Ci9EZXNjZW50IC0yMzUKL0NhcEhlaWdodCA5MjgKL1N0ZW1WIDgwCi9TdGVtSCA4MAovRm9udEZpbGUyIDE2IDAg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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4GPBEAAEKZW5kc3RyZWFtCmVuZG9iagoxOCAwIG9iago8PAovVHlwZSAvWE9iamVjdAovU3VidHlwZSAvSW1hZ2UKL1dpZHRoIDU5NQovSGVpZ2h0IDg0MgovQml0c1BlckNvbXBvbmVudCA4Ci9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9Db2xvclNwYWNlIC9EZXZpY2VHcmF5Ci9EZWNvZGUgWyAxIDAgXQovTGVuZ3RoIDE5Mjc1Cj4+CnN0cmVhbQp4nO2d/2GjPA/HGYENygbNBmGDZIN0A24DugHvBjwbMAIjMAIjMELeWLZBsmVI79rm1/fzx10CBtxYSLIs2+czAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwz0xD17ZdP926HuA56Ktd5ig++lvXBjw8bZkJivbWNQKPxjixL0MgUCRU/Y1qBh6Li7vUVB+7Isu65WDjpOj91LRtU+3d18+b1RI8AGPf1h/HIl+0UDuf+7RaqZ78gakt6NDHDSoK7p7JKaWI2pcgicobeZkVKsgUWDBKyfw/KdKUZW/vp9YVJIkqxvD6kWTqzy/WGNw5xsRN/sPC7uIuDSMrN+oSdZHFnTnT/UJVwWPwdpGHwXwwkvG2P9VtV2umrEhI1EWmzKl8+tFagjvk82O3G5XjB69i+lkptZdDh6CYOZb1+q0H4XKBJ2Yau4un1NgvRgntprjQ6XK8kYeMiBRBsWLNCa+hpp6ccWib6rhzztHBHjSik5VxYSMOVXC9kRB5qDdXj6kHTjnU1FNilVIZBgJ29myV6T2zVlE/mXfZZ07rkYJaF1fw2PRqFGDWNy7yHUW6+0XqZt4ilVSkPSnDFAsheEzai1Lyn8dQlN4Opvvmx+g6d7gJbjEqjlMZRgUUUxhf0f7d3wDuiVF4OE5m3t5PVRBTMgxe1LrghDkWHDqFAmJU2X6tJlXskYFH5CR69sZctSJxgEO2ybjR+SBPxFaOXKOaH2jWXSk97gDulLFvm9Qp0jqt/7pb93eMOJH1CwKWymWRyx7JWIjmkYE7pdR8agspqaWpI3MloTB5G8uUclkX2rlNkdI8MnA/9Mcin5XESfOpCeePzyWr9Xa3YXIjHDLkqVwWCQhE6sERVoRkIPtPKWaV1OLCbDg8LkxO8akjO65cNoUuuxa8SlcZ3JKLpzTGB/kr39qIwKCWynjJbt1F9mHyo7mIhTy1y/LAZe+2JCYyleBGJNwfriRcPClOAjBO1o7Hi7ShOYbXNDYZZXHPtMtMkYF934xLKcM64IeZxlHp31e6n8T79bMyCq6mYHlv1Ik/Ma23+2ybbNLc/FjtskMo6vl6b5LkW/lDwA8xNsfCmq8yMHMJ94f36+dsyyCNoKBL52wnA5cvpRazNhrzjEuIclkk6qd1LURyP6TPg2+lLzPOx8jOJSKEwh6aFif/R8geuVjjku1keFtv18WcDjl3z5RYZxNKkDG/K+kr7brNBd9JIFDkGk/z2YT7I/r15Nccpf8z5y+JbCchXzFMdER4SrksEvWN9JVi9Sz4Tj6dGOWH0+m0z51bNPrTCbdX2EPya0Kf2ikp6RYH2XQ+bcqf5+aUQhPOPVP6CEbUZQ+PsuzGs06TxYoO/B0Xn3v1/IcVodqX6k+BTOnuj+jXW7/G+tRzeMopKRkwsvIVpU3580J0WMhT6a3Fok5qKpESRb4Z5l39M8znboZEGZKovBWXFUKmFD/mHNhD59eM3P/xSkqGGM3RPI8MrT8vw+SnWdq0OGYWiXoTmt4Zms6gz3QA1xOsNrFrtUJk9faTPDhRW/r3XXd/RL/e+zWUnWJtDzVibT6JqGgfSZO54u3kTsvupTWlJuSpxTEVUS8TMmVv1Cp/P7ievohaTlnBhFr4FF9tZMr3nhKxzpwpidmvWXzqz0UtmGP+qpFXiNKmumFabhqEyUkujYxo43NlLOpuDugUlBzocB3/DeB6pj9eAbwznztO6y6Ut5+uL/J5WYFE1JmHAxa/xvs/Y7E0olAnJEoml7MfzzFh99K7Z9GI3lkXdWezxeHpM4NE/TPjzspTPfgDjVVawTS5Nkt5GCzjMjEeK+xhNqssGvL9OP9hsmEq0/uSumfmicLkFJ66XK1cpqYeWJm6CJUrPPVVDonaxKxcUn18fNTdkCigvKtusQkpQIVu0ySJ4VYRDmAtfiSZytidhToR8hXDzSlBpjmnd2SQRXVRH49eP5fHpU8ZrrwBiGU5pYVCBLo9pKOOU3B0LLPAzPXZNQFlzY85B/awXFSWdYX5NaIbl/DMPHF0nbpxRRlflsosaMUvROzH9BNfmV30SxGxUH2mFD115P7I71o5iebHnAMlwQXF2Z5FAkQ3rlp/ptK9rP1f2sjjCVFflpTyGurQp5/32px0kYp6zdSpqtK36OevRaQSVHT3R4SbhF9jh3yX1hbduMQoNK9hExyr/MsjDydE3Vausl2S/L1qp/TTXh33y7qe93jxqE6F9lsXqbfXdcpnOYh84QQ7VfKEkpB+zSCUlOzGBWGCELV7Wdo/M7wsV0Wd1XDtJDjb9/swymPKqoGmzZK/dM8b23zZX/HghPvDlUTg17TimxDdxCg0uzJWYs4920rCA19Ff7/Je+UOUrlqWcxZHxZPRAciKsUYneMkPN7itejVGXUyuc8bqlGY0xnrnm0m4YEvkni/beSm81/HNSXl1NRgP6uBHYVG9824koj8mp5/Ed04Ll8xCZ/bumfBZb0IvIOvk3q/bbLa5L616mu+UC4q51qR8iN4AcIervo1ohsXhwkECZ97WH9TwN+Rer/J9tXui9ZlCguXy8fqiucOupQKe7jq1wjhU0ehL32N3n5KRde7S59kuqKy4Csk3++SqSnTtv3KTZbhuKt9KXYJR0jkql8junFc5nn0trqu/uA7Ud9vAzlIjf287qqcuYnSMkZUFD/mHEhkwoVXShr5+ogWw58LbETXwbeStmmsH5fwRRYWE5XQPjG6MRJBy1UjKrpxbabjCvTxGkHgx1DDgESzWL5NkSoXy5Kve8ozulUTQysJF94iunF9LE0meut9KfCbpH0f6sP39PErInXIruvyVaosF9wOJ1x4B6/UOEtS/n7QFi4Dv4ceBiTeZpuo+z0MJlKs97f54GiGXC+etG5EheV0i+EnFy4Dv0dy6J3PtE11wmdYl4qmlPSJci2bdpwr6qyQOnNVlBf/DdwXaaNWza7M5igFb/vTipoqmBjVWSR7fzIpu6ui3EEp3SnpZjMmbE+fdL9noc+CMdxEJ7LlUmS3YGmXs9NHFjynzLDvzwOyi3SFp51FSoiMwqLP/Dd1gi4N1O7nr7ab9jHYb9OnsYRyoRbEkx6SdLMtIrXqH53DdPPklMljYNdcNKk4fny46abB1Ijm/VStPBbcJyISJKgXnVKtduPaQFRI/UQyZe2aeFRXZJLT9MXagztExKsFzJz1sSvNKMJbkOcdTCDpd1kcrxhPXKD2ySeAR0JPwjOUTKmUoZvD+AyU1NnPFiiWiIFbGyjexWx0+5nne5i4ZyGZZDtyzURfdNM3hP00Q+MUT/lR13VV5qt2bdxaCAY8FMkkW/KQJv+NZEQzkJSsFyswP0uKgamUr0Ke6SHqQlpEslzlGJbqzOVqyCCYTbmshwCenUQSHimpbvluFzwJJrC7lTfkwZn+9O7k6e3QTN9TW/AA6El4ZLiK6IgRqskfcatNyLXJJNPQ9z0mCLwYehLeLoskbfI9/rKqzWqYzucuhl+p5l0x3roC942WhDeVWjdOW2wiq6bfqOQ98Vnk2Hx2FSUJz652FweRzmMdCNULRicpnjLcuhZ3TZSE58KSiYVN20Pu+3D7l/S5T7FLACQ8CW8c2srpoXD5VsbUd22nrmH4LHQXV3HST9mc5OY3a/N40Fsnlwx/ybCkWTi9sx9NLzgxTG77KNVvVeoxeYt9bnUdvGfF7+aQLR5AlcUOpsXNxcEC+qvsAnnav0acO9rNIVs8ADtEqS2gb/1M7BS6zpxgQguX9dOt6/MbTHJW8oI97ZIDm+g6Pwd1ezXSl6amJcNfa27AFMlSbhdOt6cHd7APrzM67WMRPQBmZiUV7+ZwXqaahlsr2/zVzTlo4MmYhq5t235YLWQcyA99NwfD7FvJAqSksBDMa9F/lrMpO64s/LsxNdEoIur2iUwwl2SPiTsvRLhXaZ6MhqwuNORmENZh384qqa1l1sHzMAYCRVqm0cuuLjTkp6IF4anPzGYbpmeAgOeicy73+6m5+FL1obBf9ZGV1YWG5iVHSUZ9eGreaCs9AwQ8FZ/W1LE4bbT9LWN9oSGfnmFTWZvlAXSv5AwQ8DDQkMnHrrhQVstMLoGVqCDwb/dh1GRqY7U+o4j25zPfWpkCC635lJwBAu6fKR4yuVC2cUk7w7mPbnAKXWyPOT4lHzynZyxbK58W3ZSvXgvumtjftrasC8rZVPlRuQO52NHOptdsC2kj5H42/qKkNpdZB/fCNMXHRJbE29vyNRjSPWWJqV9ucY8+Omw87y5dmXyWOBpCLiampNLLMIM74mOXaxlKpuHF8ptDu3fWb2LFRuZFh5CLHd96I165y8QeJtmOKanNrQXAHWCHcfvouNbwbm2OMiiW7IPpa4S4MAG77aUP8HGs3DceXa+8ueXXVmdw13SRlFiihifaXDpIoy6PHqPqjtE9MhuvNGlTbCvevTstoutlJiVemQECfh/TdG2bysaqgkbzJBrP9u17XmolUESL+IUPNkKcH6O0KX8bEV234am9uCGS8G6GtSdL02kRgFkPRGqqy/QdIwfrM7Orm5U65Io7PWYqPt4ko+skwqO4FrHO29AXSqvF0SMKFuxLRU0lG4/6YY37YkRmWKlGpfg+QRJemDYVRNfHXChLc8XK88B3MrrNgQb7TVcFUVK3sSR1r6ipKdl45dLmm9FsdUCP9KbL5RzjvyO4Zy+CWEjC+3n4jmVEZ4/P9oSarm3cZtz/BZfXpKA0NZWnGo/14zZdG1XX7ZSnMcztJ/Z9CK8VB8D3McY7lmXMJpnXuRZpuI0pG0YlS2o/TU2lGy+frZm5br9WSVXXXZGEN6ZOIgnvBzlFwmSVUmtPK6qARs0Cycmtminjlko3fDXrpk2RUn2fa5LwUic3rgXXMI2jOoWmFqJEO5bxuTba69yFNoVkonL/BwYq3Xj9fJu/E6mrkvASIAnvH+k/3VpS+THKLGm9p6TvWKbm1JahmDReI8RqKt3wZM0G82k7f0kTqeuS8HQ2rgXrtKVQREE294ZrrL7OTdggB++3xGpqpfHesmvzlwatwHVJeOkbIjD1lyiRJREC2Ij6dZpERA2Sz98jNbXS8OWsR/JsvU+vBkyvTMJT2bgWrPDH+9uH0+m0t+ZPbvSi2ZQF9XUOtcqQiW0g5Aqh6cY7zSJ12PCWK1XjRC6dYP1dyVevBUns+orZvhndASWbez3qp9ukQAxbJhGRmko3/CJSxpKu7VRaZFrvbbvm6XcFsc6/ZEfy0/NDoz02iTJD+hba6xyqLiMb/iHRCHC68Q6zSG1kIvS6WJaqoIma6w+2z87TDwQpyOpFm3RQ0sCSWLIR9dMkog3clIJrsiK4X7rhF19KT18RVVQ87UTN/eYjq+/KgIW3/waKD9Tx8ZNQUxtRv4MiEaW8ZBQSFqqptMjmy63Z6ExMlzgpwwTLkNLHUnP9weAvoYQO7dWfCr4y9UbUT5EISiIYl++myavla6CmkvEhsnaD+1JKaxxUV49DUJjALlwmhpT29jQi5N/OZ5aYc3IeevbliohhJY6Q0uBCWEklEqipZHyo5Z4/qSndQz8GEiwqwiRpxj28q5rElEHwl4ROTYKNqF8oEXbXGSGqu8B5lg9OxofKLNxQ+aJz4mIfCfOdyLx525/UwuDfibpeCfTA0egzgo1E2FAlJXmX1G5iJbApC4KZtXhyKj5EAtEu38tIVKmUkdfspNZ8YpIkZuGAn+Fq7zRnSoalTQ32CEncvGCvsywDv74XeuwieI0QllR8aBeI2kTCk4vQvtvVXdlmwtfcKKUXW1PyduQJDyTChAn6Pkqb6uxZrgocwa4zFQnQGNxhkRa9Ip+BkvIylRUfvfvuNuJK78ENpfSrbAwHMw6aS7J0lt7CE6ETXWaql1z780ZShvCh/0mxs9T+2l1ZLispNOG14Dao470qp1gcjDkZ3GmrO1ymcKW0sS6RyywpzQKTbYx111BEt9kPYSFwI1bThazTNCwlnRRoPq6RuGqONRuVJMOOvZAjN7ugYE8/RVI4Hqlwq9TLT2/3AtUrZcBtqHWTwV2e1h6irmHax5URQ8oSFjFJkshwylPL1JTRSBW7wLtIrV7xsTm8W/muVlZ/Bb9PHPXu+ASYbFEjS5hAJYiuk1LiMfkyVFtEvtx/jmxRd9LvVYpB24cjNnxt6KY4QdlIwguj66E7ZURkUh/v1BTFUsNZOKmtzcD9khhI8S6TUWJ7e3w9sSiOru9M+YGfVnTctKgpJcgNF+kRiYfWRh4W5NkD6+loUXRdulOhp+RhakqKU354yb1Kn4CNobuRKZdd9rUkvIZZzeSCckxN2ciW7QwiOvm4kDmbkqd7pqW+nITH3akipeIWNVVXGDJ5CspVQeE5Tl9OwqMMJjt0nFaGk5kaOF1bW/AAGC2RniJwYnKScodY0VYeGmZ3aiPbCjwT1NEaU2e5vboiCa8OjpE7ZfLX49A4eF7KqM+3ICYkJOIAvGx0n6Nzpw6XXuT4b/UED8PaFIGCGzMlCc9uaj7RZzUtc6LRwO+pKHgYjJrSk88/pVM9dw6DTc0HOrsRXQcvBMUktYxII1Hc4zZhglombhIdnZ1MvP0XqntzxltX4AEgJzrWUyRRFTtQZjqNPf3kMaVFNbe3rsoDQIknRSuODSRAIj8lTMKjVJWnD3SHq29jc9qrsOl1TKj6YxarLpeE5/Pnpt+t4+8zVGGejwXr4l2DT9ksq7quq9K9kvtJFOpk/tzT02hW/qKa21tX7DFQlizLm1tX6sbwzLHkwukgTSuFKg/2en1SKCPaUHdTeM7EdrP3F1PN30t38lL1dnrykdxoSwCy+q0spE+wBl9j6i+8wDsZZUNbgl6vOTTdpH7g3hnFIjRnZ9NUoRpZqfU8VvCCsEWlgo6/S3R3OdHjReQaN5uaL+RQZtjbGBA0mi09pTCFwhwbgqtsKJctN7ORxwpegnEZzZYGLSin2jS7Semyl9LGVGzwtNgUmx0pIm19MppwH1yTsGmkqOYkVzUFDDwvQYqNm2TIRGltUamUTTOiNuefqilg4PmYrFLKI200mrPGou23R7OrhE2zUzAm+wUpYM+NUUqd+aAOvZkhk8Gc3cV+t0bSpvVMTW1MsAYPzjybopOiFKTYXNlLS6+rVTJvKo+d+GnosADxkzDPphicUjqc6jxWSRuzDT1pm9ZnixwxlacsjwQehKltPlrl+DziNi3juMrKecGiRMmnZMnxu3wRSnP/P/FgYHPFnwFujRnHHekThQE6pYg5PslDyvTAayehKjaN3dQJZaW7bdUV9we3gtuTjo6QTyxWTHco0UllAvTGuiHibspD3E2L5WPQBzBpU6N6HbgpanJJY8/RCi7KLLAy1l5Kv+3ajBTFZjr6pZ83JyyEK0KC+6KRK92F9mSX6TKlLbqQxaN3eWwfNdJT6tmUflJ5Tz9h4zGZLkqp9V/qSJjs1u6jPe1SAqKZhcqIm9ZvuzIjZWXRkCzj012RhHefiKGNJf/N2JNoyMT7xGG/TYtOLjZqJrU42hV3Yzftl4+TXgr8JlM0ribUiZGvIj1kMvvEf+RxbcRNUUmxfaTBQHloddEQJlJIwrstfBvFXCZyi6GNjaEzWi6GHCqx95B62S6LlgipZ4s28sHAUCOlKzEtvhSS8G6FPo4rErlz9rpvDJ2R/rCpSw0/rl2muOxGIss6SpuKNFKyEgOzdkjC+1WmyX86hO62g2mZXcbCQFy+YqxPbGWq5yeUy5SEgk6vS6SRkjatzRafHEl4v8d4UUqV/yIXS8jfD/u9/djM5UUYSMhXjNUStCqjCHkqlynDL2ESno1OdmP4lF0osfyvObjPSML7PU78t7YOtch4GylSMG9jJUdz02FGwukP6hjy8JRymZJQMDlR2loEJGXTaNlsfwJJeL/GKNwTdVyNtEztv4kw0Ea2QJlZn5gkla0do1ymDb8YiWy3FwFJJeGRJI/uC5LwvpXx0n1rEudOwj3RO+R1UupWwoz+5q2/Awt5KpdpCQUbZpXfTbFplNY5H19JWABfZ4j845ne2hb/VX+XJ+sTLTdb12oLi09Mkju3r3ZZnqnpCW367h7FZhr+cCUVdwl8oGTYfsCrMymHyBsatdKlFan5HJevBd6nEkMbK2FGA/OJ6UE+5KldpiQUbJhVXon4PfgUQryoPBfjKrzT324/4JWZTHSyjo/noX/s8SMqvT+gd8hLXoSrrI2hM+YTkxnywQjtMmX4ZcOselSb9ql1CUplamCz/YBXpk+oo7cs8I89/hdu/YGdaiJ3XNCE1HH5ImzalDvP7agNT/2XuOyfk/Dk3aYj/RJDcH+Fl197awM7Thu7qi6CGW0HQkrK/Pq1P6K6L1KplFydePkK0qbceTl6ky/6UFGGy/DLzIZZnQlt5vRJj8rFHzIPOFrWpgaChdL+XGN43L+hobAZCfgQHSa1Q/4pLhVSZ55YHqO0KX8+57VhOlSIpUWJRW6Y1RlmMy+eUuV+hcDxtjZe3SAcpElIzpLXJIdvbeBGdJi0DnkvxVQMbSTMSeVO74T+WEKeijLsFZVkyk8rfy+rxEcbjAbuR1lohFL6C0yrVEIxOExbHun3bvhhUlKyw6R0yJs8EyZJqJM6E4TmJAiTU2nj0ikjblr8Qu8sRASVIIHqty8D2xgV09eKnjGC4lICOln80mKiwyQ75MaMGIESiZliaGPDnIRhgMrdTLFyWvyizK5OwhOCXffbF4FrMC0wTYqashogGL4lEavPssNE8mWigHKKQhPdzEHyNZ1TRGGAY0bCpEUnFZUU2sdLd5IWw69ksX6WJZqrkK4O+Co5eSOKmnI9L/rp51jNp/8iOkx5bETEVV9PwjuImuzM1Z/aZeZMLw85+xjNwgndeKw7/UMMViVoasppADJ1LjxFffrGfBJBxjddpLii4vcX8qVXSfrc1vz+yeK+nOKyG4kslFk410QWwDfQONFQ1NTOKaJ6aZDTrChEkPEwt5tf/nJo7bH/wpsRivwylDDAOCub4DIlftGpwp2/nZIPBN/KwTWToqZmDXDydsM0tlMKIshoCpShq01iMEflRTdOyFeMecokDw1e6wSXKfGLUYgSZnX+OoVXO7GaWnpepWmcT66k4qhAFd2aZMqXEd24IEwQooUBfActuExx2SerlMzUQHhKN2CcmyRWU0vPyw7fNkxJySCj1r13ZXxmp+jGhWGCgDJTwgBubCS4TMYvXG0Qnbwl7dJKkZpiPS/ry+xY+4nulxbENpSLCIpuXBQmkCg+99nHJoPLRHwM3AOm9Xr7MVJTvOc1+zKdP2u++M+pqEC1yIDoxkVhAokSJvd1jZSh6Q2k7wR+nx0TjFBNiZ6Xiwzu57PC4eHyxWAGUdwsDhOkLosqi1DAnTNyKSE1NbCzoudlfZlxPrnLNpPwSA797fnNlDABVcD5QGL0hp9/35+axF8C7oROeCfGTvH0KCkogRITDo+QrwVu4CKtNs3FlqnmtsBGdB3cM5XoW1GPrl/OBj2vSmgiEWTUHWo67MuIm5F8RYvhi5Xw/u4P+gG6phpvXYcHYie0hQ1Zyq8tK11yB0cEGZUg9tn1EzvtZmWm4wqYWZ1/9fd8H1Pz4ZbEKrHUxheYAn83UFNhz2sa2RcRZFSC2GcRGb0iCc9EJ/voHjfiP+NXZuV4pmBwf+PaPBB9KAlSTaV6XoQIMipB7PP0kXEpisLtnq2p5rfAD+oU/fgnw7JlX6AWlm0aukqoqVTPy5bOkkl4dPqTfKTloLhZe+ebmptX6zQPhmOljesxLs0w8ZWiM66m1nteeRYk4bmL7N3cWz7OxcXNxjsfx93RmILLf9DmMoIE9IPFXk3vTq/3vEyvbfBfjHzF607z2QGTUUo/8Uf8BG9ukvFFW+Xo732BXnGShZoygjKmrjZ2ofNf3pTbBBuaPxJv+dtoP01bRaeureum63+0Pg9DwwXAzS4YuJraZSt5TcbfaPyXQyBO+XvVpy58AKYry/XVopZLbNvg5CCc8sQ7fat5TVESHt3tlTLe2jJ4kT7GW1fp1hi7NoUHeWxqNa9JRAUak/F2X4GAn2YMBcrwuX3dM5PIB2BqajWvyXhih5+p2SNAk18zs+1t2/V9c3IWkKKjL0siksnU1Gpe0/T0Smk0o9mTfu7T9kCa5XRvjf9LhxxEly04btXURl7Ts0MyUqunSKLCNYFsHOuVZcr8AKNyvJ/VVCKv6VUgCVmWRWa0Cdmh0YfXfQnTsfFyVlPPnYY7jX3fT8nTbqCvVs4UKW1Eg5d/lBMvQdpR6g+3Ty75aaZmHjT66PQinQuxTdGZU9q+nViH+eUQocoXo5cBgOJ/WiFjxfaamiLPoNXvTPPTopUDX4Tdy75O058onlT0cbGdmSytqalyrSO8eKIvx2SSS25diZvQO4uXX36A+rRPBSknEhye6+wgH2tM3t4I3PGbqwxuj0mxGfVT/1l5mscgp7ZQZaonx6CP1ZQJAO/Tj1auAI8PWR89c85KVDXxY7UmU5U1YGWkpsq0J0XkL2v5nhkrI6NyhlbIijwnO5laHjWSc9aUTr5q98Qca/A02A6d1vFKRJRIplpxyJu3UE2ZIYXV+O/qMBa4Q/rmoyyKXVmtrK/pXO4+OvGZ0l5NuEB173VNqKb4FGqVjZmtbvrilC4BfpPR7qHg+Oj1UqbV1fgQhb0b9Zoh+G6c8I4+BWpqdZKHQUz0YM+We0CHzwM3IQ4o6UlvJA6al9yuKxBOOauzQE2tTkUjsixK2R+KsObdddUAP8p/s4bK3/xHueeLw4jDVCtqqtjorDHyRfikmtLmLEo0kQoE6u29v64a4Cf5tK2xbygPeepd1puSSJmbdIApVlPxdMMkAxMcqaa2M34UkZr8q3DHkxefjOHiZpRleazjvdI9VqJ4QGlU40m20T9sJEGqKX2evUqTBUs41PNTdVdJPj4S3BdKyb8HpM9dtmohkqhwB1jrovRBUedZx2oqlXSoYIrOD5NqKs/W41Kb/jv4YcZj6LlqEwAp04TvSuMuLhSVcHBtHqmpXXZ1T6sQqkioKfOlWbnUDAtW1z0F/AR+WoAUqjEsVqgSRQpkP8RlScoiNZXHTk6CQWoaoaaayKDGVe2uewz4fuzyLsbnpvTKyc+1zDtZ7lOVM0PdhEfG2bMO1ZTiNydoMxky52qKT0tT6LZ8LfBPmFDxsHJ6RwJUT+yYSwz4TxQssuu3PW9nwxSqqetF6hRIjVBTRr7S6SvmLNZ6+TlWJ5e6bdF2Y3DUduQ6duQLIUohDoGaul6kjKhP/ABXU6tZdjTTYby2ruDLrE4utb240xQdp8g33xS+/IKS4gtvB2oqv7a1jW2zsSc+jCLUlLI1PZUvoKT+mamrPz7KY9X0ysnVUXl620/aGQo2L+qFAoXTtfXhnrVUU0bYhmvuYfyhMlrbSKoprbNgLTl/GcBXmT7L5RfP47kmq6HmIv2yG+22WMzNwX9OxxWjVFNXz+CoMpVZTdUJmbK+4VWPACqTiFEawpDSWqh51es4ZkG3vbq2UkYcuvmbUFNXR893oSy9HU67LIhNxV1QG3m9uqYgYhnGZQS5AebQpF9erDXwsj/p2UpJu1oVtrdVKZ4o1FS/IuCcyf8xfG0j0elzXdXPkV/1ScdOVzwAXH7Pj2P0Tv6xP/u+MqtTTUN7shImB03ekppoWFNSUr0kB1KWDYznhxpx4KZWqCkuXysY6dlFo7slV1PT0aqvDzddeeo+7J9fbd8enF0/ZpDHPqxS6tkhG1LK+aEyJQ2keg7pR05M4spIEka5Yi1TYn2g+4SaqrJ04HsqPnyeqB76CPKmav/ooiznxLpw5Q2Q4lO0GkE6KpwXMJFfmw/LkVPSZpUb1qxc2jXWUpH/3PgzdXhbrqbWIkrtYhVjEZ4P18vXcRdWIkw2fnXGoW1TpwrRagYSMqXPQ101ZiPrLLWejikYXy/v5NRNLJcNa8e3Hbc35aJP2XrZPTub6GQWy/PMFUqJaLJMt+fylD/08qQ/gWm3xJojJ/rJKnZkTEiU68ddscPD5kQTcmjsxyqSy25er3YMnmFu20brZfsKkdev/pX0jozzk/damTKqx9ie9jn1CKuVNWBeFbIl6lqTo20WLhlFlly7hHyM1n9LJg9txppY/CGWy4lvX8zdpz4yRpae1075Kxv2FyZjFpGaAmNbfZRlqQe6rS35TzljlRTvR62GlMi4zI/MEqNz2+HLxfz0qZtYeHCTW0Rnj953XG+WqkwJe22KdOqTios+0s+8JG5XF/c7x/OVOvk6LzglxRt1lzJnc/nWP3URDMlXRCreHV7QMHt0mP/EZfVt0enTVj+0M2/mcZT006ZptcavxXgK396ikyUGJ2xjeKm5shCSsRFSOmVX7PDwFZFSnJjweR17XLRxlohNuZ1hlneqt2MAcz91dRAJeNTcSRno9iHj0EWySkeELE0THdIPI39mcl+MQhuUQkmLOMNEqlktXCyP08VBjvT5zn9eftSXHqH7ZZYI7ZeGf16CS2cn/FFdqDfbN2YCCgt0j7yUl7qgI0dKSi5wZpRGu1IFfv6QKsvlTmNgYkQy0SUKtkzfJTqYMiHhXMcvGJt50z/96ttfJY+aSsmddIsq8aAkjZ2QeRTxZRcdFKGhLFvPO6pZw+qRaPe4fuUmXFLojol4ksj4TAzdhOmd40kK1X6tIi/FpB18iywNSVSYO2mdK+45UXPQUR64KW3L8tDQZkipY+YnaUaqDftyyMIkFT1q9smNYpEQduHe0Q3bQ+Hs34Gth//afBS5+utFL+of88Od4oIUomGvPikiq9GWTrYPF7BY9tfWLjE3OGiF+g3BlIqlkdVa+C9jSirpoI2ZohOnoW/X3P6XY5dwL06BpSGhqLQ71FIj1VSOlsRdblA4UeoyOaF7v1o3cwv3Mdl/IsXTJm/RBtJR6jJFEjVXhtdSctLPXC7YVe2UrMVrEQ98WepAgopUm7qAee+/OdfWdrL75RjpQu4sf0mkWBBceXrKP4qzqWy1/sjyNqC09DLC14ld3vF4+wy9VVmhDhq8HvHAlyXo9KwGunfcxfAeEK0I55ysuWEnJhlfEql0z24M3TbOZ1RtF6NslyNTU0iJ+vrC231d74VWfmkS/WU+3GooEpI3l13iyl4RtXNDMXnMF8n4UkhpJQlPKkkBBVODarsYZX5s+nEcu8ZFlJhEcbm/HnNfzOU0pPwG2eBdFgcvGSVTU8vYiR3xmoT1YR3JKal4HNxKroyYkdumTiexSx2Ej4hHAC7w3c3Gv1sdpVnR4y9FUldwFUHexUoGP3W7Jvdl0SfkYpQ2aG2PiI7kl0JKKZ/PPT1ajeXspwWMyo2LQKC+JaB0yrDOIZHU8sLSFButn7Pzu+WnJX1w5EaTe76nNWN6DtYuqVcKkzqM+nF29KjRLjj3LEiZn3q1zPWcPvpp/Ny04y8D824EOyYlizFLUAVS07rrdq7ZZqPJO5Lths8i5Djl8813DaZqdfbRdeIKs6RwfTqd6rW1Fq5lVnrNv9/rGYjD5BZuaTY7Z7zB+djJ5H7tViuorFkY3lN6c+kqNE5yPzrjcw+Nm2eiLsH5/XiRqn/lafdPYjxLKJ5k7NrDI5Fi7MT12eeCoiMZjW8ICqGXNvqHY+gekYs0rtX5+xjb/dvb+81zxs3csebGdSBScT0+drJqdQzpsZNgwwIhGf2asSDFM85fVds7sc+Rz62tgveM2EX13dyxu/DmwjC5h0cXrhIp7xYFYyed/DuFZBhxFmkM8o7imfkiYbQOiplpcBCXtPtFnvLnzwqYfwXBrWtlSIkLjwp9SaTCsZNGdP5FR5K8KTXeFe/7uzMaLZjKGb6TU1dXF5+7+g6f+87hE1o5460rdo7C5Od5PjeTjC4qEyCikuYvm9jJhpc0t+3nb12my5QYIbQclN/vhaPVb9FvYWePTbeu2Jl7N24OJBf/aSmzOVtu77+kx07OUciSuv9Rx8yGlGpxrIoE6m1/Wv/TngG3/VARWrQd+xXcfIv7wdQrtsmWwZXJN1SqkYyD/1JmK2vhhsPUNqRU9uyQ24W6Ftct86CWyZzPTLD9UPTz03jGvf4KkQr1TcckwzRys3KPkuuelbETZXEmK1NZUZklTi7vpFsMOHpce4+v4w/QW6WUfLsd1UaL3JSdrPqsBHh0wQhCOoJku2eD/7Y2dqIMU/t9pwXKkN1TQ0ppNJ92yq+hbEAUvZr3hBuYj5QAjy6QzPTJW3xm3H1f7R8KR94y1ZGCFOtNPzGzp0S05pDohtgNiDTVvBl9viVGhdoXRCIko1xTU9Q/a+evq2Mn6jD1KOKU++efGGCUUtAT8jahskrptOEvKq/m/ZBSoSK6QIHuLnGHP5mIBKyPnZifcYoPD2112O8v7+TKxrAPzzSYf9XBo8zbBDGelWazE35LYu/GIiXDqKnEssnhuMp63kJqmPr5MUqJPkSyxBfz3AwrOxKv5l2QVKFCMuw29qNSLN4myhTVShKpYernZ47X+T52/mZ+uuMoSgXjWdt3u0OuS8KLFqbzUO6k1F+7NUXUPf8mhWPfaYfNz9KbD6dZKSkqaSPlYuauX82UCp1/Agv5jdHwvo1AduKY+WvDci/EW6aHjJR4nTbSlV1n0Vajf7fmmiQ8/z1Y/Lff0bFWXHffYbifh8IAfXw8HDg46yrpSouWyiC5C65JwiN8oLumQPelj5ZblyC8uH07/HM+9yMwNNWH4knTq6fk7Chda60ns7vOooU206VNHbev/AWuScKzRGluhtddUrnU1ZH1BWK3U+taKyrpSovmbWYwGHgfsaprkvAcyip47c9X8E4hFaMEgFv3y0zBca1rrfRkFPuoQYEpZTDw+vr/INck4c2MNfsr8n3389W7W/pMcySX5YjD1be1rrWikq4MTE2KwcjuZcu1OAnPkoou+EB388xrdF9cxWZYL+Jdy/D46Js3FAxjnCZ5SOnJqKHnaezDQzKD5L7yNJKREOUneBlSDiajNGZPU1OmiY/mn2D1D6VrrQy/iOZgnlL4lB1J0uZg4G1ImeB7DtD+AOOl6WZtfcVQW25mvmuvI4kOtbicAa10rZWEAjIOIkPBMgZPufvA1Kgcb+9Hk/4GYiR226PpSeg0NWWkqbeDw//x44rm04Zfct1LGoJidx39o5/g1pX4VS72ZIyPZszQbw+1NaRzNDVl9QeNiorfVelaawkFb5E0UdpUWOErUxZuw0kJVz41pm3r+DDX1ttDbQcrgIqacmEAvmgboWk+xV9dkvB4hkLEXSfhPfMS3eOYSIlUrFrJfZ2UgzmTWzWmqCkfI6YAFQt5al3rRKxzV0fbjYZcm7IAvo+psbvoZXnZjOKM6afv4wuEw7vVNxm8WMZqag4DUJhhCXlqmk+IseVKi6bZTPCTuKlbHjGtK2HVhD3ccjBbL0mxmlpixCRTS8hT0Xx/H+u8NmUBfA+jFCgD2+smEcQVbbnVRzcez0CfIjXFbk8DWPM9Fc2nuHXXWrQXi/H8JmPfhof8/kn5++l02lvzx72aXG0NYQ+3htqKWWxiNcV8bqPs5vCUovkUlbTdM7AoNhN8C8rL+mnlqe7d98GOdi8JJ7tMSxETbamkooRl9+5zpKZYmNwu2uZkStF8mlun2EeNu451PjTxq/9pBWpih6whnGXqoLaGyF5Sh9oWOqbEIjXFw+Q85KloPk0lXWnR9FDINA7blwJiaPU13qKXtQmsnEX0vhIjeNweqnkY8qm9/xKqKXF7Ck9ZpaVoPiHGDsU+akibuUwNRGRhnWXT1kPCEoWvPkWtlW3djUzlvf2c6Kdze5jKw2BF52d0gfjJMHlPCnI865pPceuutGhkM93KTc5dtD7j9qX3yVB/ND94+8n80+7ypWlO3NFlhK/+UdNRhjL7mNzHRD9d2MM8W+mjT9IFKqTWC24/q01N8ylu3VbPwDFmCbYvvSem5qO0s92bn1vmoSkL20CiachyKeYqePVJJ4zabVnKUaKfLkZimY8d00k1Zyo67yUQh8m90dU0n+LWbfQMPJMiTTQaOG1eeke4BYL7MymN6oeeMr+4omla+6P9F5YOXv3ymvZI9NOFPeQ+dkQVnCyEYolub4qblGJF8wkxtij2kZaT08YHHaujgXeNN9mf/efaD/5vLO+yaJrevYdDsri/5IruUqZatZa3ZcKFt5TBUwI1FZkfU/4i6UpfTnHrlpck8JSCSuzcyi5bo4H3DL0+c/L5v7mBXXXc/dHPZLOfwn9H7zpEfpJ49a80Gno/XdjDOm7rhfDPp4Vs6/Tt3TaqiuYTYuwKG/kM17hUXpVnSGar7V9fWXXR/9O90j4PMwWiafwPG8qUKFRepz13arExuzIJr/dyIKY8LWrK3L6Xt6YX0ZRr5a00ty4UJc+w/Yc9Gif3JrbvWX4Y/vFmZarJyqU9RNMY0aFuXxAhEK++UFlpEv30jF0d+tgco8HKeP3DeuX2o5eTKjiebSfh3ddchW/l9PbeXVl07Jr6QjckS/TivWaYH9E/kDcNyZd3dHmtWKFxRQ44iX46V3gJF54odS0y/zna7QcnU+FrxMXYcXC3e4mFbq+j92u4mlYRiyhwSr1Zjajt3WfRNFZ0SE8JJ4w7PfziNRJWrcyuS8LLMwF5yQWrq+rRuS7rFUl49dMqpb8kyFRKzkhOqKkm1TRWvpyjyy7g4jE7ORtocezz1Ul4vTdItus+ztXwf45+extZuyIJDwimo2IRylErqqspo/V791k0jZMv6+g2ywUde/XXfGpOwqrV2VVJeKYmx6jrztSUFiY/e5kKDp4untJwRZVflsGZvH3V9hca5xYUnVJWV1PmBv6gaBovX1amlhty8bjW8Glx7PPVSXh6FJSpqcTtrdUer6jfizGZRWd6/dx/5GXwxJLJLfeijM6pamrgQiGaZpYvO/Vk4IUyVuaqkfhcbVuhFRMu/DnZrWRqKlFiMtHJ+LEvT0emTD01kPRUkzxq9X00kqKrKXP3av7Gm2aRL6rBEp5iTo/WJVcx1wxqhfb+SzJqmpLbZvlz9NubCl5TuedmSS6ZsZHOXilMJknZ/bUj3TXEFyhq6iSMimiaRb4aIVO77Prdbjy67RIilXDh0w4bC6Hrtwfnblcoqn+XpdRUkSljcAYyVdGCS6qa2gmTIZqGyRcpPh/y5E5PmXSAJCxEz2i4FCV87BUnq57/nNOlM9hfUY2XQ1X9k3W4FTVFgZdGvROZKmVIL1JTkzQqJ35HLl/k6Lq6cfGosusyJFr1rTjwx2k+9jSe7ZszaDed8vzt0F/x9FdgVPMiVNVvNMtRaxDK3E/14MlajtHhSE318h48jCnlq1yElEt+MiYfMGr1GaV9Zo7cvFfhAXMyr4JHdjiq6jetTNHMPjjRZol0SgPJWxUfD9VULZ0Q4bYI+WJTT1ou+XlSU5og7LIMWanI/0n+vcbQNkEa7m5jjxxgGTLl9z0nwiumLUgZhGqqCI2YgAeXGaFWKaXy6LMgCY/l7xfezgrJr3WvjThlcgvwQPY+M+kkHbKYnBTuW3sGq5DC1yJHTPXP2Hc0VlODbto81B1q4+OBmsqlXhRRbiFf52W1HWGJ6Dl6ItYoRKYM/ubpTxaon1MkT2+H0+UPTf+RYCZLyJQSXumt9YnVlOgtKVS6JpRqaghvYurlP4ejKD018xBIfp1F0u4oxPVWIv1aCVNDSk8Y7tqLkhnLwzju13izP10UjVTCK407FKkp0VtS6DO9T37iaqoJVRkLY8a5Aa2TAlGIwhDawrqhXXPZJsXx44P2mw8l6ty9H05ILvlLSvc6DsHxUywmpdMIkZrapZSDg4IPU3x85GrqEFZC3FWKznmeeiIl327KFf4pVqKEmvTjkTOvuyvA9+O9hvDlFn0sS+79mVBNCeujkRqk4GqqCPsDIqwYSy3FJnYHqX5axYzbGexBh1TuDPDCuwL8AEZ0dspvHg89DPORMFgYWqWIMraiBFNT5uNBnKyy9fxbEoo8k33N1onI/Mf0drubOMQxtnsrT+9Vv1p58EVIdJwV4ceDPtZZODuF1BmbIpUcx1jUVBcZWhHAr7IoTDE5L0hKfudM2u5Y13V1zFft2nhhteLgL7BhcpIp4R+FfSzh7ARqalOkDimRWtRUFVk2EcBvQtE5LzsF7+XRKACQ5fVq7cD34kSHD5xZIjnhzk4hZCTynUPKSF48s5oqo9CqCGOqA0ROpsLOpLdoHrYIHvgFfJicrAj3a0M5Gbk+aEVL7hKukijQq2dmNRVpm0QSnsAFA+Lj1btXUPtmWqsZ+AFyKzp24KxZjodi0ApvRqgpxdERpIIIBqemeuUWeaYl4QmsNz5qNx76/pmX4L5nfAc/3KYidKlPQsQarjXCHmCIsVqpHF6nphpFj4nQQ65LpbnuGafiPjSz6xzkdYeqZyfaVIzbrWkhw0nxrcXJmmqh1azzX1KhrRoZb3fHEia3A2ejOx70saYsXjhpVlPlquWjmHa/djY3ErpP1+yM/NtHwohOtXycg4JBH6vLZDRdqKkmW8t++1Rd6xkjnMdMSakSAfxkaOspGW9dgX+Ch8kpPOXyuoM+VhVqiT/s/EpaiXPS2nQFJttti3WQCOA3h1M9rP4hT8CyqNR466r8CwO3aDRwZj3toI9Vup7VJLYgbN3ZRrr2guO6kpozSabweJ/d8YZO38qcjDzT37pK/4IMkxvJcfpG9LHIA2c7yDvmC3fCted8ctFTsWoq7hJOLxADaIM1gT3trSv2TwgNwZayEH2sXvmz+Z9OLrgmUyRRG2sVkJqq/u2veFDi0aOMFpXqb12xf0KGyZe8btHHqoO/2iyAdMyC2FScHTqR1kslhM+lisvdhn/9Ox6SKvhNnyPvb5cJ19hm0f6nTXRyyyn5xFmZU26FbtezO0+fdK/k3JnXwHqfF6qmj05SX/npVroLu+c+5Cn68GTkwhdIxKasi34RKje7aexsptLLJkxOfDFPz7GThdTh8IcnGqFrrWrhfXjjSu2jK4OpLz7Z5HJxsfReqh+r+J3DbRpDZpDqw+GPTpy/aTPyzHHfDWt02aiDHyT0uC5y2P9Qre+fRhepbNl85Pys85cV3WtlislLYjiE1FTDDozz0uiG/DUEajRxujE6bDss3vscx6GvXSIXL2x+wem3avpbaLp37tu676k/3MheMBLTN4f929vbpffSa1c8IWTh4jgJxZBHecylnDKZ2kxffES0VKQ5r3ukryLCLsoZWat/tn53z479UgzdpvWkxpf1259zOFxTQZMzYD19i90tT529vVc/Wbn7Z3IeUnQiU1W77cTMA6LPORyupiK57ltLXw5P+XdfgR3HLcvyWHVjoowfWIjOJ2ya/WV7902Eap4GXffavO6aPhea0D0zUzSOa6zVMjuQY1wp43cfwxNlwqYZN2LOgk0bgEdGhMkXulmdX7yCPJXo+1RM/kOX6ShL3Nh5/XkWZw8kbVrN1NRaEvXjktK9c17n9IgbCH6Zi1ISE3JUlGCBUVJ2t6LgRJ3qupAAVvazTARxx4a2+es/4y5I6t5H3kDw6/BeinW5TUzJjONOZnDlZK1gHmaF9SQemppa69TMnUF6kvtIg4HO3I7f80fdiP4pde+XiSbkjPL8aNehCjMNG+sxKWqqy1LLMA7M8pnHhms4Klb0sRgvr+Pp1pX4JfpL01X6qe0JOeOR9NQoDpZWuSlqSrNp7PaN/bjTLWx7zV9zv0y3rsDvsdLBumZCjh2pmvih3Kn4WE0xm6Y962P5KLBpU+NVfw74VS5O7hQdTI4DrK2KzSABqIMb2j5MrKYU6+lolmrMCQtPvEHoc9CHbW9ZMUZCgaV6wTSqwEc1m9lIxWpqp1nP+VnFcoP9U+RyPh2m5z0tX8lEKXMLsyw18i96KelecCCqh1lsYjWVHnToF5tonnRQC4HbEuZTlJmuptIj/0KBpXvB5sZsNLhYvkVqqkpYTyFSK6YY3JQw68u5ulNYbqf73f4S/zltIEkael5u7z5HaiqRuHgWIvWcSXgPxDR2k3oi8KdNm+WamloZ+RcKLN1by/mTWv4lVFNpm9YzOUqbYvDzkHNcq6cCV5gCkLmipqrkHTZWxRZ3OPgvJ35NqKbSNo31+J4zCe9+CSccs5GMoGBwwng8kzbIthGYav2XXZaKYLPemi0mq8fUVNqmnZhYlmlTDL4bM6VQNn9qO5poCk9utMCkqKnQ52IIBZY2kAOzVJN8bKimkjatYPbyOZPw7pRT3Px1wm2upSs1WMdYUVMrgak588KQNpAUFB/t5y5wwAM1lbJpwsVPJiyAb8e0ftj8a7tm9ctXN5arqKnQQjKEAhPyJWHyUAVGK1BTKZt2yoKp/8+XhHc7xupjp+W1GcpMaf6EmsplB+3g1IOiAfKkNyxCWysGkolUGdyMBpYXNZWwafSuzMfTCQvgamg5pdF+zLLVcGDki+hqagiapXDCoagpNcfA3ppLcBg6ZSwiNblCy1JjGTdpKZtmyi25fJEp9kt46U8HjFH88B0dI8dEX+zMlRuCw43W1kFQcZxVTNyo6VGSa1bFNixSQ+GlMEWdqSndpv2RrxH9BFTroW0+2CIKo/54IJMVFxp79o2s2xBf1mZc9BiFIhMH4cKwACRJxsSLBjFRjlBgXL4ErMdXZzq+KqpNI4ni4SrzpKOycFkfXgksVeJnr+zpHX1RUrr9T9yEJ0RciBWelq8sAHkKFUV6lCROwotr5Z7v9Fcp/yTaYtQ80KsppXs57KK/d6f/QG/dGUyjku0TvckyL+iU6TJFSupDbX4jP604MgbvvWkkdkqIxkass/FfhHyFpfb2o627T1G3x3inb7Zpnv6k/LUH8fPYRRReK+1fZ2rKnH6RY5CQ6A1YYo03r8SWKd0WIzcfevPHaioID4kAZKim0qMkV66KnWd8ofhd9Bbx2FS+yPOlT1IV7m8dxQXVrOKa7iXmIl2F3cPcI7aWMs1dpJMVm/kicZgEcez15i+ywNEIwkNCwkI1tRLrFBIs5Cuq2Vz3uAhXU0ZdRnMVqkle0EEpxYRbBfNluVaa0GBa6HA0F/HwFE3yrlLXtlmQmFRKqZESFqqp0BgtCAlOGEgauXbHE7axWqonbRrxqosCfg071z3fV3Vd7e0Pt8hH5E8E1xqpYesYWz4z63Akrg3VVKDMjIRN4glc4JJ+91VJeKSOB/s5z5K7gLvqhX2Tfa2UBxGkUnL/Y7lVyxb5SDchFTfXhtts0dc6fW2gpnqpUCZFwtjpXZbsn3MJ1jWkkXV/s6RXtnT6ZrNOncFXWXDr3zllsg8z7jLeartsdY0O+6rLddPnMbBU80s1ZRquXU4GEmbD8Ev9kn63lGBVu5JE+b812Xdc1FT3NOtO/yqkZ0Z+hOzY/IavNKHBNSOZJ3cbapJ27Vqppg5Sl9XhRVJNVdlqEt4QVIwxlhkX/HQc/vS2P3X6I8AV1PHLanzY/eS+mCZs0pd7H7ddFMCspNLNL9RUHs9kGNxnGuTYCTXVpJSLkoQ3sJO9XcV9ifQX6+oX/DWlYpw6tvDrSrjaMDcjxURNeGpRUunm75maMgruwM6RuuvC3Vnm23TZahJeE1XMDCk1PqZUDP689QLBD7CLDISkTTehoZ4VUeVaflFSK83PBLmNXSkNX8chS0Y1hASb6nyEi+Efp7lwl+XvdfrvAn/Peo9uc6Iac3KPptH+MCW10vxMTZ2yaCZDQJ4zWZnS2kVIv3Ifsej2NKX/KPBPpL1Uy4aBMIpobz/a8FTBRHCl+Rc1tZNlWHhxHuQQIXQjX5N6TyHBbShP9aheBL4dFizWyWQTGo/Z+DmD+8qacd4ypPeF080/q6kpk8bRXBKNvJZMTb1JrUbJN/VcF5GERyqOxnEx+PaL9EIGFKxl9LmKs2fS2bMi/mO32WIeedD8HK+mzPOb5bBuZ3lsyvUxbcabq48TJC7Bo1FxiCndBKNagnW8BKbto8zHRQxyZpOcalhulhhGM3g1VWdR+p3SSSwz4XsVRVCbiU69rf8l4JcgDZCnJiUkdsbM3lp3eicUUSARpywd1HJqqoxdqS5RyZ4+1lp1Rjo1wL7dB3ZwNP9IDGKJJozTpgL3vo4i4VXisU5N5dFMBrUDuqgp4Xcj4+0+WQbcd8e6G4KzLbVcco23MLpecbOVHEczkJoyglUvx/TR3jNXU/QJGW93Titck1zujcnCBBpRdH1in03zJ4NapKaaTLhS68FR20WEUnoExvZduCZfTcJL3nf1WiMlRpin5VDa+RpaKKUHY+qbA5OrZW9MNU1kYT26vnqtG3vZs0O7DLOVnoyhq/e5davmY3nCY7asR9fXh3tKelK1HFgJt4NHxrpWtf9qNMeQLp1lK8vArWsdq6a65cBgupNX1xM8DpTYOc/y3RgFXFVEGwl85ao8gidC7FC7kYRXZivLwK3kYBoGDJm8DDXrx12bhKexkoMJXgueJ3J1Ep7CSg4meDFY7//6JLyY4YW24QIz46mOD7LevB4mmLcNWo+uj/9aO/BwTCctI0RoJt4tm9hMg4GObETXwetRanbtxK3ZG43vsow3R0dnN6Lr4PWgeGPgDFEq3ei/lZlOY08juQQEUEJUObIjfS6kTEnCo+SS4bdrCh4FEpmiGd3XnrQSWyZhScJDxhu4DpeDV5rlgI7WXeILb7QvkvE2XvzFW9fhaXAb3i+IlbmmG9Xql6EZhP2ta/E0jMJf4hl4rwO9VqtTGsGXGNsDmbz8vepvXZefxkTWxvDgaF+n/ver89Roy1Q/IeqM1c45lDeoD3h41AwwmnIKNQVW+SwLbTMSfdLE7mL0e6gpsMopiIZ4tAwwu9xHCTUFLHb9lnC+dB1G2BxaPk5Hmgtq6uWhpYn4Sndly87aue7hZiR6BliV+SUaoKZekcn+p664wbSS68RFCYJaPo6RpfMZaurV8ItKuYzARhMptmiwCzVlf8L7mINTdGhv/oeaegmCnWJneei8ENnR7L49UZE5o3DyxcOljuKJYr332FuoqedG27A0m+XB+ES5HM0mWzj7SeZKurqRt91Fqshc19GnAmrq+bBKaTQf31TL9nYYbMEszopvuQQZ0elIc/WiUDxRrJxVH9TUE0Fbu89KqTeHdlyU4hSbPPaJqOvm1RSFyWknLxnyjGes5stFUFMPT+wpEa05d8pW8/60wTqaKe0O2onS5HKJ8FQUmOrZAaiph2UySsmvQhxTmzIbE+DVlT3LxfK5MDn1DItpKRLNWG24JYSaelTsLJwpFCWxffXGBHh1sI4Nt/iJ0tZpn+YiUWDqwNVdAzX1mNDC+6P1h8hT2hvHKdiXc2MCfJ0pyzUwqzaHySnDcJHNyK8v+He+vTG4P6aL8BhPqQlPfLpGPsxrFCujuUOoTiTq5Hl2cJkobawhC08Ffr15zH75Wq8/FdwEv5sD2SXSEb0s4JUUQ1nPY2NZvD5TprVyycy86NA+2YtMBX59K102UlNt+rHgN4nGcY2+sPuQjqJgm0VLKWijuYE6CZ+mqZMDc7CWMLncfznw60+ByENN3QOjVUoRBzpZZGFGgNKt0tbzUHN6F8wTwopkTP2Vi+jYrqV7ZODXF4HgQk3dA20sTUZC3k90dpDusaqk1NFcNUywEA/W0baAs67jYXKaqe/G/6RfPy6XOIOdQ03dnkFIEkUn+W4OjXSP9diPIiBqmGBhF93mT8aFsOZOEkm9tb/Srzf9ymMbbjEKNXVjyN68pXcsq0RTq0pKW/ZTDRMshIN1vZExdoEUHZvlOZ1Dv75SNSzU1K1RrJagzFjaSaEqgXg0Vw8TjH3nPs3RdWuwrJJhTlsQ1yLZMaIk/fpdJE1v7znU1M1RrJaAuvFuVKTVdYAwUxauTthgoL/Y2NNdYLBO03J52CWcQ57m/7lm86XMYKPTd3sUqyWhLpcd6NCVlKaSSCb6OG1qsqe7LCQX9w3jWnb/5U/5AhixLUKDjU7f7VGsVgC1v0naTSgpddnPSGYsoz07RCeCpOA80J02PPUp/HqbrxACNXVzFKulFTGNl1BSauQyTsIzfYB2tGcnYbCMogw6gFFcy4U8+QtQRlfRraGmbo3qSAeQKzOklJS67Odutmg8Q2HGtPucSsXdNcchkgvKyMtK9gIoTzVATd0azWqF2JGZXfL1D83U2UrhUd+w1CC1EEUzRV6KEteag7Ify0VaxaGmbo063hYVKmxrJgruQjP11SS8KgtESMlumOdqHdJFCKipG6NZrRhrdlIvf2ymvpqEF7pTqjmuhVyXWaKrSmpKPQN+B8VqKZCKSOWrKH2vIFgZEkbXKVLB3Cktu8GvkZwv9Z6iIoYeC93eFsVqmaD2GBwiNfXfWeUbkvAoUnGcvybMsXX6J/+AlS1ywA3hVoulTTWyVG8VxKDe4juS8AJ3KlN1kM3Io0psWFZwQ8iR7qK0qUqWKp0fM2q3+I4kPBsgH/zXxDgR9RM686l7/tW3H5YmUzmIQjT4UaRszbck4Ul3apdwsYdoNSpwd8RJeBTU7kQho6RaMn7RcioGxUx9PQmPZNvbsu1xInC3LONt6c0cnLPdSH9n4TuS8FyHzl2zEdcC9wxZrY0dZk6ugcmH7uPzZaySvpiEZyDn2+VmjcnAO7h/9M4VZ5wd8zLLlJ0lr0vCs91Jd0zVQoNJVVmvCngEtpLwFiXlelxyhNewloQ3Tw10fUZ7GjGAZybVuZpZlJQbmTmGJRJJeHk402BRiF2Wv9ffUHlwj2x2rk5cYKiDGK54+IUkPK8Qp3+tNrhftjpXIxOEsxu8/S8uspGE9/Z+SM3CAc/GVhLeKTh/zKKRGW34ZUeSFE8NBM/PRtJAoKR8EuYoCuWxi99CKb0sG0l4oZJyQydyZMaopOEH6gYekvWkgUhJnV1aghiZOb2fquEH6gYeE8VqLcRK6rzMmQFAJU4asOtOd2d1iTJDZUYDf6Fq4DGZk/CCdaeb87KOIgBfgCZIKTt0VEklBcAqiSQ8E1kYmvUUBQA0wiQ8mmqO6CT4e1wSXo4hE/BNjBgyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK7i/zCa56YKZW5kc3RyZWFtCmVuZG9iagoxOSAwIG9iago8PAovVHlwZSAvWE9iamVjdAovU3VidHlwZSAvRm9ybQovQkJveCBbIDEwLjEgLTAuMDYxIDU4NS4yNSA4MTMuODQgXQovUmVzb3VyY2VzIDIwIDAgUgovR3JvdXAgPDwKL1MgL1RyYW5zcGFyZW5jeQovQ1MgL0RldmljZVJHQgovSyB0cnVlCj4+Ci9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9MZW5ndGggNDcKPj4Kc3RyZWFtCnicK1QwNTfVM1QwAEILQ2M9C1MFQwMQX8/A2FIhOZdL3zPXRMElXyGQCwC9AgjkCmVuZHN0cmVhbQplbmRvYmoKMjAgMCBvYmoKPDwKL0ZvbnQgMjEgMCBSCi9YT2JqZWN0IDw8Ci9JbTQgMTcgMCBSCi9UcjUgMTkgMCBSCj4+Ci9FeHRHU3RhdGUgPDwKL0VHUzYgNiAwIFIKPj4KL1Byb2NTZXQgWyAvUERGIC9UZXh0IC9JbWFnZUMgL0ltYWdlSSAvSW1hZ2VCIF0KPj4KZW5kb2JqCjIxIDAgb2JqCjw8Cj4+CmVuZG9iagp4cmVmCjAgMjIKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDE1IDAwMDAwIG4gCjAwMDAwMDAwNzQgMDAwMDAgbiAKMDAwMDAwMDExNCAwMDAwMCBuIAowMDAwMDAwMTYzIDAwMDAwIG4gCjAwMDAwMDA1ODUgMDAwMDAgbiAKMDAwMDAyNjY3OCAwMDAwMCBuIAowMDAwMDI2NzE1IDAwMDAwIG4gCjAwMDAwMjY4NjUgMDAwMDAgbiAKMDAwMDAyNzQxMyAwMDAwMCBuIAowMDAwMDI3OTk0IDAwMDAwIG4gCjAwMDAwMjgyMzUgMDAwMDAgbiAKMDAwMDAzMjc4NCAwMDAwMCBuIAowMDAwMDMyOTMyIDAwMDAwIG4gCjAwMDAwMzM0NTIgMDAwMDAgbiAKMDAwMDAzMzk3NyAwMDAwMCBuIAowMDAwMDM0MjEyIDAwMDAwIG4gCjAwMDAwMzgxMzMgMDAwMDAgbiAKMDAwMDAzOTc5NyAwMDAwMCBuIAowMDAwMDU5MjYxIDAwMDAwIG4gCjAwMDAwNTk1MTcgMDAwMDAgbiAKMDAwMDA1OTY2OCAwMDAwMCBuIAp0cmFpbGVyCjw8Ci9TaXplIDIyCi9Sb290IDMgMCBSCi9JbmZvIDIgMCBSCj4+CnN0YXJ0eHJlZgo1OTY5MAolJUVPRgo=",
    "source_account": {
        "account_branch": "0001",
        "account_digit": "4",
        "account_number": "00007",
        "financial_institution_compe_number": 329,
        "financial_institution_name": "QI SOCIEDADE DE CRÉDITO DIRETO S.A.",
        "owner_document_number": "32402502000135",
        "owner_document_number_formatted": "32.402.502/0001-35",
        "owner_name": "QI SCD S.A."
    },
    "source_subtype": "bank_slip_payment",
    "source_subtype_translation_ptbr": "Pagamento de Boleto",
    "transacted_at": "2024-08-07 00:36:03",
    "transacted_at_br": "2024-08-06 21:36:03",
    "transacted_at_br_formatted": "06/08/2024, 21:36:03",
    "transacted_at_formatted": "07/08/2024, 00:36:03",
    "transaction_amount": 274800.0,
    "transaction_amount_formatted": "R$ 274.800,00",
    "transaction_key": "940c487c-d944-473d-bbd3-0871d92a5225"
}
```

**Response Body: Comprovantes de pagamento de fatura de recolhimento**

```json
{
    "bank_slip": {
        "beneficiary": {
            "document_number": null,
            "name": "CPFL CIA PAULISTA FO"
        },
        "digitable_line": "836100000014389700403378033892445033101190122156",
        "expiration_date": null,
        "financial_institution_compe_number": null,
        "financial_institution_name": null,
        "payer": {
            "document_number": "03782617037",
            "document_number_formatted": "037.826.170-37",
            "name": "Beatriz Couto de Carvalho"
        },
        "payment_date": "2024-06-20",
        "payment_date_formatted": "20/06/2024",
        "payment_key": "c5a5aade-aba8-42aa-8dc4-566dfb6493d2",
        "tax_collection_info": null
    },
    "origin_key": "c5a5aade-aba8-42aa-8dc4-566dfb6493d2",
    "pdf_encoded_string": "JVBERi0xLjcKJeLjz9MKMSAwIG9iago8PAovVHlwZSAvUGFnZXMKL0NvdW50IDEKL0tpZHMgWyA0IDAgUiBdCj4+CmVuZG9iagoyIDAgb2JqCjw8Ci9Qcm9kdWNlciAoUHlQREYyKQo+PgplbmRvYmoKMyAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMSAwIFIKPj4KZW5kb2JqCjQgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL01lZGlhQm94IFsgMCAwIDU5NS4yNzU1OTEgODQxLjg4OTc2NCBdCi9Db250ZW50cyA1IDAgUgovUmVzb3VyY2VzIDw8Ci9FeHRHU3RhdGUgPDwKL2ExLjAgPDwKL2NhIDEKPj4KL2ExIDw8Ci9jYSAxCj4+Ci9hMC43IDw8Ci9jYSAwLjcKPj4KL0VHUzYgNiAwIFIKPj4KL0ZvbnQgPDwKL1ZDQVRXUyA3IDAgUgovT0NITlVQIDEyIDAgUgo+PgovWE9iamVjdCA8PAovSW00IDE3IDAgUgovVHI1IDE5IDAgUgo+PgovUHJvY1NldCBbIC9JbWFnZUIgL1BERiAvSW1hZ2VJIC9UZXh0IC9JbWFnZUMgXQo+PgovVHJpbUJveCBbIDAgMCA1OTUuMjc1NTkxIDg0MS44ODk3NjQgXQovQmxlZWRCb3ggWyAwIDAgNTk1LjI3NTU5MSA4NDEuODg5NzY0IF0KL0Fubm90cyBbIF0KL1BhcmVudCAxIDAgUgo+PgplbmRvYmoKNSAwIG9iago8PAovTGVuZ3RoIDI1NjU1Cj4+CnN0cmVhbQpxCjEgMCAwIC0xIDAgODQxLjg4OTc2NCBjbQpxCjAuNzUgMCAwIDAuNzUgMCAwIGNtCnEKcQpxCnEKcQpxCjAgMCBtCjc5My43MDA3ODcgMCBsCjc5My43MDA3ODcgMCA3OTMuNzAwNzg3IDAgNzkzLjcwMDc4NyAwIGMKNzkzLjcwMDc4NyAxNDYuNDY4NzUgbAo3OTMuNzAwNzg3IDE1MS45Njg3NSA3ODkuMjAwNzg3IDE1Ni40Njg3NSA3ODMuNzAwNzg3IDE1Ni40Njg3NSBjCjEwIDE1Ni40Njg3NSBsCjQuNSAxNTYuNDY4NzUgMCAxNTEuOTY4NzUgMCAxNDYuNDY4NzUgYwowIDAgbAowIDAgMCAwIDAgMCBjClcKbgpxCjAuMDk4MDM5IDAuMTQxMTc2IDAuNDk0MTE4IHJnCi9hMS4wIGdzCjAgMCA3OTMuNzAwNzg3IDE1Ni40Njg3NSByZQpXCm4KMCAwIDc5My43MDA3ODcgMTU2LjQ2ODc1IHJlCmYKUQpRCnEKNzkzLjcwMDc4NyAwIG0KMCAwIGwKMCA1IGwKNzkzLjcwMDc4NyA1IGwKVyoKbgoxIDAuMjUwOTggMC41MDE5NjEgcmcKL2ExLjAgZ3MKMCA1IG0KNzkzLjcwMDc4NyA1IGwKNzkzLjcwMDc4NyA1IDc5My43MDA3ODcgNSA3OTMuNzAwNzg3IDUgYwo3OTMuNzAwNzg3IDE0Ni40Njg3NSBsCjc5My43MDA3ODcgMTUxLjk2ODc1IDc4OS4yMDA3ODcgMTU2LjQ2ODc1IDc4My43MDA3ODcgMTU2LjQ2ODc1IGMKMTAgMTU2LjQ2ODc1IGwKNC41IDE1Ni40Njg3NSAwIDE1MS45Njg3NSAwIDE0Ni40Njg3NSBjCjAgNSBsCjAgNSAwIDUgMCA1IGMKMCAwIG0KNzkzLjcwMDc4NyAwIGwKNzkzLjcwMDc4NyAwIDc5My43MDA3ODcgMCA3OTMuNzAwNzg3IDAgYwo3OTMuNzAwNzg3IDE0Ni40Njg3NSBsCjc5My43MDA3ODcgMTUxLjk2ODc1IDc4OS4yMDA3ODcgMTU2LjQ2ODc1IDc4My43MDA3ODcgMTU2LjQ2ODc1IGMKMTAgMTU2LjQ2ODc1IGwKNC41IDE1Ni40Njg3NSAwIDE1MS45Njg3NSAwIDE0Ni40Njg3NSBjCjAgMCBsCjAgMCAwIDAgMCAwIGMKZioKUQpRCnEKcQowIDAgMCByZwovYTEuMCBncwpCVApFVAoxIDEgMSByZwpCVAoxIDAgMCAtMSAyNTIuNjQ4MjQ1IDgxLjQ4MTQ0NSBUbQovVkNBVFdTIDE4IFRmClsgPDAwMjYwMDUyMDA1MDAwNTMwMDU1MDA1MjAwNTkwMDQ0MDA1MTAwNTcwMDQ4MDAwMzAwNDcwMDQ4MDAwMzAwNTMwMDQ0MDA0YTAwNDQwMDUwMDA0ODAwNTEwMDU3MDA1Mj4gXSBUSgoxIDAgMCAtMSAzNjIuMjY4MzYyIDEwNS44NjUyMzQgVG0KL09DSE5VUCAxMiBUZgpbIDwwMDE1MDAxMzAwMTIwMDEzMDAxOTAwMTIwMDE1MDAxMzAwMTUwMDE3PiBdIFRKCkVUClEKUQpxCnEKMzU4LjM1MDM5NCAyNSA3NyAyMiByZQpXCm4KcQovYTEgZ3MKMSAwIDAgMSAzNTguMzUwMzk0IDI1IGNtCnEKcQoxIDAgMCAxIDAgMCBjbQoxIDAgMCAxIDAgMCBjbQpxCjAgMCBtCjMuNTYzNzIgNi4yNTAwMSBtCjMuODgyODcgNi4yNTA4OSA0LjE5NDYxIDYuMzUyNDMgNC40NTk1NSA2LjU0MTgyIGMKNC43MjQ0OSA2LjczMTIgNC45MzA3NCA2Ljk5OTkyIDUuMDUyMjMgNy4zMTQwMSBjCjUuMTczNzMgNy42MjgxMSA1LjIwNTAyIDcuOTczNDkgNS4xNDIxNSA4LjMwNjUxIGMKNS4wNzkyOCA4LjYzOTUzIDQuOTI1MDcgOC45NDUyMyA0LjY5OTAxIDkuMTg1MDEgYwo0LjQ3Mjk2IDkuNDI0NzggNC4xODUxOSA5LjU4Nzg1IDMuODcyMDggOS42NTM2MSBjCjMuNTU4OTcgOS43MTkzOCAzLjIzNDU4IDkuNjg0ODkgMi45Mzk4OCA5LjU1NDQ5IGMKMi42NDUxOSA5LjQyNDEgMi4zOTM0MiA5LjIwMzY2IDIuMjE2NCA4LjkyMTAzIGMKMi4wMzkzNyA4LjYzODQgMS45NDUwNCA4LjMwNjI2IDEuOTQ1MzEgNy45NjY1OSBjCjEuOTQ1MzEgNy43NDA2NiAxLjk4NzIxIDcuNTE2OTYgMi4wNjg2MSA3LjMwODMxIGMKMi4xNTAwMSA3LjA5OTY2IDIuMjY5MzEgNi45MTAxNiAyLjQxOTY3IDYuNzUwNjkgYwoyLjU3MDAzIDYuNTkxMjEgMi43NDg0OCA2LjQ2NDg5IDIuOTQ0OCA2LjM3ODk3IGMKMy4xNDExMyA2LjI5MzA2IDMuMzUxNDUgNi4yNDkyMyAzLjU2MzcyIDYuMjUwMDEgYwpoCjE2LjkgMTQuOTMxMSBtCjE0Ljk5MzYgMTMuMjI0OSAxMy4xNzM0IDEwLjYwNzkgMTEuNTc0NCAxMi40Mjk2IGMKMTAuMzY5MyAxMy44MDQgMTEuNjAzNyAxNC44NTcxIDEyLjI0MSAxNS41MDczIGMKMTMuOTAxMiAxNy4yMzcyIDE2LjA3NjIgMTkuNTY4NCAxNy44NjAyIDIxLjE0NTggYwoxOC40NTU4IDIxLjY3MTYgMTguNzcwMyAyMS44MDYzIDE5LjIwNTkgMjEuOTEgYwoyMC41MjM3IDIyLjIxOTYgMjEuMjY2OCAyMS4wMjE0IDIxLjAxNDkgMTkuODM2NSBjCjIwLjc3ODQgMTguNzAzNSAxOS41ODcyIDE3LjU4MDggMTkuMzMzOSAxNy40NDE2IGMKMjAuMjU3OSAxNi4wNzUgMjAuODUxOSAxNC40ODc2IDIxLjA2MzYgMTIuODE5MSBjCjIxLjM2MzggMTAuNjA3NSAyMS4wMDQxIDguMzUxNCAyMC4wMzUzIDYuMzY4OTkgYwoxOC42NDM3IDMuNTU0OTIgMTYuMTM4OCAxLjc1MjQ0IDE0LjIxOTggMS4xMzc3OSBjCjEzLjE4MTcgMC44MDQ1NDYgMTIuMjI0MyAwLjkyMzAzMyAxMS43NTEyIDEuMjg1OSBjCjExLjE4NDggMS43MTM5MyAxMC44OTk1IDIuNzMyOTIgMTEuMzY1NyAzLjU1Nzg5IGMKMTEuNDQ1OSAzLjcwNTE5IDExLjU1MzQgMy44MzM2MyAxMS42ODE2IDMuOTM1NDYgYwoxMS44MDk4IDQuMDM3MjkgMTEuOTU2MSA0LjExMDM4IDEyLjExMTYgNC4xNTAzMiBjCjEyLjc4MjMgNC4zMjA2NSAxNC4wOTE4IDQuNjgyMDMgMTUuMjE0OCA1LjYzMTQxIGMKMTYuNDU1OCA2LjY0NzEyIDE3LjMyNDEgOC4wOTI2IDE3LjY2OTYgOS43MTc3MiBjCjE4LjA1NSAxMS40NjM5IDE3LjcyOCAxMy42MTQ1IDE2LjkwMTQgMTQuOTMxMSBjCjIuMzMzMTcgMTEuODMwOCBtCjEuMzg5NjggMTIuMjQ5OSAxLjI0NDk2IDEzLjE0NDUgMS40MzY5OSAxNC4wODIgYwoxLjc0NTkyIDE1LjU5MTIgMi45NTI0MyAxNy42OTI5IDMuODgyIDE4LjY5MTEgYwo1LjI3MzU4IDIwLjE3MjIgNi45NDM0OCAyMS4yNzg2IDguOTA3IDIxLjcyMTQgYwoxMC41MTE1IDIyLjA4MjggMTIuMjcwNSAyMi4wOTE3IDEzLjIzMDYgMjEuNzUyNiBjCjE0LjYyMjIgMjEuMjYwOCAxNC44NjAyIDE4LjQ2OSAxMi41NTQzIDE4LjQyOSBjCjEyLjE4MjggMTguNDI5IDExLjc2NjcgMTguNDU1NyAxMS4zMjU2IDE4LjQ3NDkgYwoxMC40MzM2IDE4LjUxMDYgOS41NDM4NiAxOC4zNTc2IDguNzA3ODMgMTguMDI0OCBjCjcuODcxNzkgMTcuNjkyIDcuMTA2MDkgMTcuMTg2MSA2LjQ1NTAzIDE2LjUzNjIgYwo1LjkxNCAxNi4wMTQgNS40NzEwNSAxNS4zODczIDUuMTQ5NzMgMTQuNjg5MyBjCjQuOTQ2MjEgMTQuMjQ5NCA0Ljc2NTUgMTMuNzk4IDQuNjA4NDEgMTMuMzM3IGMKNC41MjYzIDEzLjA3MzQgNC41Mzg4MyAxMi44MTg2IDQuMzgwMTkgMTIuNTQwMiBjCjQuMTcyNDMgMTIuMTg0IDMuODUzMDIgMTEuOTE3NCAzLjQ3ODQzIDExLjc4NzUgYwozLjEwMzg0IDExLjY1NzcgMi42OTgxOCAxMS42NzMgMi4zMzMxNyAxMS44MzA4IGMKaAowLjMwOTgwNCAwLjggMC45Mjk0MTIgcmcKL2ExLjAgZ3MKMSB3CjAgSgowIGoKNCBNCmYqClEKcQowIDAgbQo4Ljk4NDczIDcuMDM3MTEgbQo5LjQ4MjY4IDcuMDM2ODIgOS45Njk1MiA3LjE5MzcxIDEwLjM4MzcgNy40ODc5MyBjCjEwLjc5NzggNy43ODIxNiAxMS4xMjA3IDguMjAwNSAxMS4zMTE1IDguNjkwMDUgYwoxMS41MDIyIDkuMTc5NiAxMS41NTIzIDkuNzE4MzYgMTEuNDU1MyAxMC4yMzgyIGMKMTEuMzU4MyAxMC43NTggMTEuMTE4NyAxMS4yMzU2IDEwLjc2NjcgMTEuNjEwNCBjCjEwLjQxNDcgMTEuOTg1MyA5Ljk2NjExIDEyLjI0MDYgOS40Nzc3NSAxMi4zNDQxIGMKOC45ODkzOSAxMi40NDc2IDguNDgzMTYgMTIuMzk0NiA4LjAyMzA5IDEyLjE5MTkgYwo3LjU2MzAxIDExLjk4OTEgNy4xNjk3NyAxMS42NDU3IDYuODkzMSAxMS4yMDUxIGMKNi42MTY0MyAxMC43NjQ0IDYuNDY4NzUgMTAuMjQ2NCA2LjQ2ODc1IDkuNzE2MzkgYwo2LjQ2ODc1IDkuMDA2MDYgNi43MzM3OCA4LjMyNDggNy4yMDU1OCA3LjgyMjM4IGMKNy42NzczOCA3LjMxOTk2IDguMzE3MzIgNy4wMzc1IDguOTg0NzMgNy4wMzcxMSBjCmgKNi41MTA5NiAwIG0KNi44OTkwMyAwIDcuMjc4MzkgMC4xMjI0NzkgNy42MDEwNiAwLjM1MTk0OCBjCjcuOTIzNzMgMC41ODE0MTYgOC4xNzUyMiAwLjkwNzU2OCA4LjMyMzczIDEuMjg5MTYgYwo4LjQ3MjI0IDEuNjcwNzUgOC41MTEwOSAyLjA5MDY1IDguNDM1MzkgMi40OTU3NCBjCjguMzU5NjggMi45MDA4NCA4LjE3MjggMy4yNzI5NSA3Ljg5ODM5IDMuNTY1IGMKNy42MjM5OCAzLjg1NzA2IDcuMjc0MzcgNC4wNTU5NiA2Ljg5Mzc1IDQuMTM2NTQgYwo2LjUxMzEzIDQuMjE3MTEgNi4xMTg2MiA0LjE3NTc2IDUuNzYwMDggNC4wMTc3IGMKNS40MDE1NSAzLjg1OTY0IDUuMDk1MTEgMy41OTE5NyA0Ljg3OTUxIDMuMjQ4NTQgYwo0LjY2MzkxIDIuOTA1MTIgNC41NDg4MyAyLjUwMTM2IDQuNTQ4ODMgMi4wODgzMyBjCjQuNTQ4ODMgMS41MzQ0NyA0Ljc1NTU1IDEuMDAzMyA1LjEyMzUyIDAuNjExNjU3IGMKNS40OTE0OSAwLjIyMDAxOSA1Ljk5MDU3IDAgNi41MTA5NiAwIGMKaAoxLjIyNTk4IDIuMzM4OSBtCjEuNDcwNTIgMi4zMzcxNCAxLjcxMDA0IDIuNDEyNzMgMS45MTQxNSAyLjU1NjA3IGMKMi4xMTgyNiAyLjY5OTQyIDIuMjc3NzYgMi45MDQwNiAyLjM3MjQzIDMuMTQ0MDMgYwoyLjQ2NzA5IDMuMzg0MDEgMi40OTI2NSAzLjY0ODUxIDIuNDQ1ODYgMy45MDM5NyBjCjIuMzk5MDYgNC4xNTk0MyAyLjI4MjAzIDQuMzk0MzQgMi4xMDk2IDQuNTc4OSBjCjEuOTM3MTggNC43NjM0NiAxLjcxNzEzIDQuODg5MzUgMS40NzczNyA0Ljk0MDYgYwoxLjIzNzYyIDQuOTkxODQgMC45ODg5NjUgNC45NjYxNCAwLjc2Mjk1NyA0Ljg2Njc0IGMKMC41MzY5NSA0Ljc2NzM1IDAuMzQzNzc1IDQuNTk4NzUgMC4yMDc5MzkgNC4zODIzMiBjCjAuMDcyMTA0IDQuMTY1OSAtMC4wMDAyNjkgMy45MTE0MSAwLjAwMDAwMSAzLjY1MTE0IGMKMC4wMDAwMDEgMy4zMDMxMSAwLjEyOTg5OSAyLjk2OTM0IDAuMzYxMTIxIDIuNzIzMjUgYwowLjU5MjM0MiAyLjQ3NzE1IDAuOTA1OTQ1IDIuMzM4OSAxLjIzMjk0IDIuMzM4OSBjCjAuMzA5ODA0IDAuOCAwLjkyOTQxMiByZwovYTEuMCBncwoxIHcKMCBKCjAgago0IE0KZioKUQpxCjAgMCBtCjYxLjg4ODkgMTQuMTA4NCBtCjYxLjQyOSAxNC4xMTc3IDYwLjk2OTcgMTQuMDY4IDYwLjUyMSAxMy45NjAzIGMKNjAuMTk3MiAxMy44ODU5IDU5Ljg5NjIgMTMuNzI2IDU5LjY0NTcgMTMuNDk1MiBjCjU5LjQxOTIgMTMuMjY3OCA1OS4yNTggMTIuOTc2NiA1OS4xODA5IDEyLjY1NTQgYwo1OS4wODA2IDEyLjIzOSA1OS4wMzM3IDExLjgxIDU5LjA0MTggMTEuMzgwMiBjCjU5LjA0MTggOC44ODYwOCBsCjU5LjAzNDUgOC40NTgyNSA1OS4wODEzIDguMDMxMzMgNTkuMTgwOSA3LjYxNjc5IGMKNTkuMjU3IDcuMjkzOTYgNTkuNDE4MyA3LjAwMTAzIDU5LjY0NTcgNi43NzI1NyBjCjU5Ljg5NjIgNi41NDE4MSA2MC4xOTcyIDYuMzgxODcgNjAuNTIxIDYuMzA3NTEgYwo2MC45Njk3IDYuMTk5NzQgNjEuNDI5IDYuMTUwMDEgNjEuODg4OSA2LjE1OTQgYwo2Ny4wNjU2IDYuMTU5NCBsCjY3LjA2NTYgNy42ODY0IGwKNjEuOTY1NSA3LjY4NjQgbAo2MS43NTQyIDcuNjgxNDYgNjEuNTQzMSA3LjcwMjgzIDYxLjMzNjUgNy43NTAwOCBjCjYxLjE5MDkgNy43ODIyNiA2MS4wNTY2IDcuODU2NTcgNjAuOTQ4MiA3Ljk2NDg0IGMKNjAuODQ3OCA4LjA3NjQ2IDYwLjc3OTIgOC4yMTYxOCA2MC43NTA2IDguMzY3NyBjCjYwLjcxMTIgOC41NjgzMSA2MC42OTMgOC43NzI5OSA2MC42OTY0IDguOTc3OSBjCjYwLjY5NjQgMTEuMzA3NyBsCjYwLjY5MjUgMTEuNTE1IDYwLjcxMDcgMTEuNzIyMiA2MC43NTA2IDExLjkyNTMgYwo2MC43ODAyIDEyLjA3NDMgNjAuODQ4NyAxMi4yMTEzIDYwLjk0ODIgMTIuMzIwNyBjCjYxLjA1NzUgMTIuNDMwMSA2MS4xOTQzIDEyLjUwMzIgNjEuMzQyIDEyLjUzMSBjCjYxLjU1MTEgMTIuNTczNSA2MS43NjM4IDEyLjU5MjggNjEuOTc2NiAxMi41ODg4IGMKNjcuMDY1NiAxMi41ODg4IGwKNjcuMDY1NiAxNC4xMDI1IGwKNjEuODg4OSAxNC4xMDg0IGwKaAo1Mi44MTcyIDE0LjEwODQgbQo1Mi4zNTczIDE0LjExNzcgNTEuODk4IDE0LjA2OCA1MS40NDkzIDEzLjk2MDMgYwo1MS4xMjU1IDEzLjg4NTkgNTAuODI0NCAxMy43MjYgNTAuNTc0IDEzLjQ5NTIgYwo1MC4zNDc1IDEzLjI2NzggNTAuMTg2MyAxMi45NzY2IDUwLjEwOTIgMTIuNjU1NCBjCjUwLjAwODggMTIuMjM5IDQ5Ljk2MiAxMS44MSA0OS45NyAxMS4zODAyIGMKNDkuOTcgOC44ODYwOCBsCjQ5Ljk2MjggOC40NTgyNSA1MC4wMDk2IDguMDMxMzMgNTAuMTA5MiA3LjYxNjc5IGMKNTAuMTg1MyA3LjI5Mzk2IDUwLjM0NjYgNy4wMDEwMyA1MC41NzQgNi43NzI1NyBjCjUwLjgyNDQgNi41NDE4MSA1MS4xMjU1IDYuMzgxODcgNTEuNDQ5MyA2LjMwNzUxIGMKNTEuODk4IDYuMTk5NzQgNTIuMzU3MyA2LjE1MDAxIDUyLjgxNzIgNi4xNTk0IGMKNTQuNjU1NSA2LjE1OTQgbAo1NC42NTU1IDcuNjYyNyBsCjUyLjgxNzIgNy42NjI3IGwKNTIuNjE4OCA3LjY1NzYxIDUyLjQyMDYgNy42NzkwMSA1Mi4yMjcyIDcuNzI2MzkgYwo1Mi4wOTAzIDcuNzU5ODIgNTEuOTYzOCA3LjgzMDIxIDUxLjg1OTggNy45MzA3OCBjCjUxLjc2NDYgOC4wMzI0NCA1MS42OTk3IDguMTYxNzcgNTEuNjczMyA4LjMwMjUzIGMKNTEuNjM4NyA4LjQ5NDc4IDUxLjYyMzMgOC42OTAzOCA1MS42Mjc0IDguODg2MDggYwo1MS42Mjc0IDkuNDIyMjMgbAo1Ny45ODU1IDkuNDIyMjMgbAo1Ny45ODU1IDEwLjgzMjIgbAo1MS42Mjc0IDEwLjgzMjIgbAo1MS42Mjc0IDExLjM5MDYgbAo1MS42MjQxIDExLjU4OTMgNTEuNjQwNCAxMS43ODc5IDUxLjY3NjEgMTEuOTgzIGMKNTEuNzAxOCAxMi4xMjMyIDUxLjc2NDUgMTIuMjUyNyA1MS44NTcgMTIuMzU2MyBjCjUxLjk1OTIgMTIuNDU3MiA1Mi4wODY5IDEyLjUyNDEgNTIuMjI0NCAxMi41NDg4IGMKNTIuNDIwOSAxMi41ODY4IDUyLjYyMDMgMTIuNjA0MiA1Mi44MiAxMi42MDA2IGMKNTguMDI4NyAxMi42MDA2IGwKNTguMDI4NyAxNC4xMDI1IGwKNTIuODE3MiAxNC4xMDg0IGwKaAo0NC4zNTkyIDE0LjEwODQgbQo0NC4zNTkyIDcuNjkyMzIgbAo0MS4yMjk1IDcuNjkyMzIgbAo0MS4yMjk1IDYuMTY1MzIgbAo0OS4xNjE1IDYuMTY1MzIgbAo0OS4xNjE1IDcuNjkyMzIgbAo0Ni4wMzMzIDcuNjkyMzIgbAo0Ni4wMzMzIDE0LjEwODQgbAo0NC4zNTkyIDE0LjEwODQgbApoCjM0LjMzOTggNi4xNjUzMiBtCjM2LjAwOTcgNi4xNjUzMiBsCjM2LjAwOTcgMTQuMTA4NCBsCjM0LjMzOTggMTQuMTA4NCBsCjM0LjMzOTggNi4xNjUzMiBsCmgKMzEuNDMgOC45NzkzOSBtCjMxLjQzNCA4Ljc3MjA5IDMxLjQxMzQgOC41NjUwOCAzMS4zNjg4IDguMzYzMjUgYwozMS4zMzYzIDguMjE0MDQgMzEuMjY2NiA4LjA3NjkxIDMxLjE2NyA3Ljk2NjMyIGMKMzEuMDU5MiA3Ljg1ODM1IDMwLjkyNDQgNy43ODU4MyAzMC43Nzg3IDcuNzU3NDkgYwozMC41Nzg1IDcuNzE1NCAzMC4zNzQ3IDcuNjk2MDMgMzAuMTcwNiA3LjY5OTczIGMKMjcuNDg0OSA3LjY5OTczIGwKMjcuMjcwMiA3LjY5NTA5IDI3LjA1NTYgNy43MTQ0NSAyNi44NDQ3IDcuNzU3NDkgYwoyNi42OTkxIDcuNzg1ODMgMjYuNTY0MyA3Ljg1ODM1IDI2LjQ1NjUgNy45NjYzMiBjCjI2LjM1NzkgOC4wNzYyMSAyNi4yOTEyIDguMjE0MDMgMjYuMjY0NSA4LjM2MzI1IGMKMjYuMjI4OSA4LjU2NjM4IDI2LjIxMjUgOC43NzI3OSAyNi4yMTU3IDguOTc5MzkgYwoyNi4yMTU3IDExLjAwNyBsCjI2LjIxMjggMTEuMjY3OCAyNi4yMjU0IDExLjUyODQgMjYuMjUzMyAxMS43ODc1IGMKMjYuMjY4NyAxMS45NTk4IDI2LjMyNzQgMTIuMTI0NSAyNi40MjMxIDEyLjI2NDQgYwoyNi41MjE2IDEyLjM4NzcgMjYuNjU2NSAxMi40NzE4IDI2LjgwNTggMTIuNTAyOSBjCjI3LjAyOTEgMTIuNTUxOCAyNy4yNTY5IDEyLjU3MzYgMjcuNDg0OSAxMi41NjgxIGMKMzAuMTc2MiAxMi41NjgxIGwKMzAuMzggMTIuNTcxNSAzMC41ODM3IDEyLjU1MzYgMzAuNzg0MyAxMi41MTQ3IGMKMzAuOTI4NSAxMi40OTQxIDMxLjA2MyAxMi40MjU4IDMxLjE2ODggMTIuMzE5NSBjCjMxLjI3NDcgMTIuMjEzMiAzMS4zNDY1IDEyLjA3NDMgMzEuMzc0MyAxMS45MjIzIGMKMzEuNDE5MSAxMS43MTQ1IDMxLjQzOTcgMTEuNTAxNiAzMS40MzU2IDExLjI4ODQgYwozMS40MyA4Ljk3OTM5IGwKaAozMS42MTA5IDE1LjI1NDcgbQozMC41MzggMTQuMDMxNCBsCjI3LjQxMzkgMTQuMDMxNCBsCjI2Ljk1MSAxNC4wNDA3IDI2LjQ4ODYgMTMuOTk2IDI2LjAzNDggMTMuODk4MSBjCjI1LjcxMjEgMTMuODMyMyAyNS40MTA3IDEzLjY3OTMgMjUuMTU5NSAxMy40NTM3IGMKMjQuOTMzMyAxMy4yMzE0IDI0Ljc3MiAxMi45NDQ1IDI0LjY5NDggMTIuNjI3MyBjCjI0LjU5NDMgMTIuMjEyOSAyNC41NDc0IDExLjc4NTkgMjQuNTU1NiAxMS4zNTggYwoyNC41NTU2IDguODg2MDggbAoyNC41NDgzIDguNDU4MjUgMjQuNTk1MSA4LjAzMTMzIDI0LjY5NDggNy42MTY3OSBjCjI0Ljc3MDkgNy4yOTM5NiAyNC45MzIxIDcuMDAxMDMgMjUuMTU5NSA2Ljc3MjU3IGMKMjUuNDEgNi41NDE4MSAyNS43MTEgNi4zODE4NyAyNi4wMzQ4IDYuMzA3NTEgYwoyNi40ODczIDYuMTk5NDEgMjYuOTUwMyA2LjE0OTY4IDI3LjQxMzkgNi4xNTk0IGMKMzAuMjQ4NiA2LjE1OTQgbAozMC43MTE3IDYuMTQ5NjcgMzEuMTc0MyA2LjE5OTQgMzEuNjI2MiA2LjMwNzUxIGMKMzEuOTUwMSA2LjM4MTU3IDMyLjI1MTIgNi41NDE1NCAzMi41MDE1IDYuNzcyNTcgYwozMi43Mjk0IDcuMDAwODkgMzIuODkxMSA3LjI5MzgyIDMyLjk2NzcgNy42MTY3OSBjCjMzLjA2NjYgOC4wMzE0NyAzMy4xMTM0IDguNDU4MjkgMzMuMTA2OSA4Ljg4NjA4IGMKMzMuMTA2OSAxMS4zNDQ3IGwKMzMuMTIwMyAxMS44Mjc5IDMzLjA1NzMgMTIuMzEgMzIuOTIwNCAxMi43NzEgYwozMi44MDIyIDEzLjEzMjQgMzIuNTY1NSAxMy40MzYzIDMyLjI1MzggMTMuNjI3IGMKMzMuNjU2NSAxNS4yNTQ3IGwKMzEuNjEwOSAxNS4yNTQ3IGwKaAo3NS4zNDc1IDEyLjE1OTggbQo3NS4zNDc1IDEwLjk2MDEgbAo2OS44NzU4IDEwLjk2MDEgbAo2OS44NzU4IDE0LjEyODEgbAo2OC4yMTI5IDE0LjEyODEgbAo2OC4yMTI5IDYuMTgzNTkgbAo2OS44NzU4IDYuMTgzNTkgbAo2OS44NzU4IDkuNDIyNzMgbAo3NS4zNDc1IDkuNDIyNzMgbAo3NS4zNDc1IDYuMTgzNTkgbAo3Ni45OTkzIDYuMTgzNTkgbAo3Ni45OTkzIDEyLjE1OTggbAo3NS4zNDc1IDEyLjE1OTggbApoCjc2Ljk5OTggMTIuNjg4NSBtCjc1LjM1MzUgMTIuNjg4NSBsCjc1LjM1MzUgMTQuMTUxOCBsCjc2Ljk5OTggMTQuMTUxOCBsCjc2Ljk5OTggMTIuNjg4NSBsCmgKMC4zMDk4MDQgMC44IDAuOTI5NDEyIHJnCi9hMS4wIGdzCjEgdwowIEoKMCBqCjQgTQpmClEKMSB3CjAgSgowIGoKNCBNCm4KUQpRClEKUQpRCnEKcQozNzQuODUwMzk0IDEzMy42OTUzMTIgNDQgNDQgcmUKVwpuCnEKL2ExIGdzCjEgMCAwIDEgMzc0Ljg1MDM5NCAxMzMuNjk1MzEyIGNtCnEKcQoxIDAgMCAxIDAgMCBjbQoxIDAgMCAxIDAgMCBjbQpxCjQzLjIgMjEuNiBtCjQzLjIgMzMuNzg2NDk1IDMzLjc4NjQ5NSA0My4yIDIxLjYgNDMuMiBjCjkuNDEzNTA1IDQzLjIgMCAzMy43ODY0OTUgMCAyMS42IGMKMCA5LjQxMzUwNSA5LjQxMzUwNSAwIDIxLjYgMCBjCjMzLjc4NjQ5NSAwIDQzLjIgOS40MTM1MDUgNDMuMiAyMS42IGMKaAoxIDAuMjUwOTggMC41MDE5NjEgcmcKL2ExLjAgZ3MKMSB3CjAgSgowIGoKNCBNCmYKUQpxCjAgMCBtCjIyLjY5NSAyMC41ODUgbQoyMC41MDUgMjAuNTg1IGwKMTkuMjYwODI4IDIwLjU4NzIxNyAxOC4yNDk1MTEgMTkuNTgyMTYyIDE4LjI0NCAxOC4zMzggYwoxOC4yNTAwNiAxNy4wOTQyMjkgMTkuMjYxMjE2IDE2LjA4OTc4MSAyMC41MDUgMTYuMDkyIGMKMjQuODg0IDE2LjA5MiBsCjI1LjQ0OCAxNi4wOTIgMjUuOTA1IDE1LjYzNyAyNS45MDUgMTUuMDc3IGMKMjUuOTA1IDE0LjUxNyAyNS40NDggMTQuMDYyIDI0Ljg4NCAxNC4wNjIgYwoyMi42MjIgMTQuMDYyIGwKMjIuNjIyIDExLjgxNSBsCjIyLjYyMiAxMS4yNTUgMjIuMTY0IDEwLjggMjEuNiAxMC44IGMKMjEuMDM2IDEwLjggMjAuNTc4IDExLjI1NCAyMC41NzggMTEuODE1IGMKMjAuNTc4IDE0LjA2MiBsCjIwLjUwNiAxNC4wNjIgbAoxOC4xMzEgMTQuMDYyIDE2LjIgMTUuOTggMTYuMiAxOC4zMzggYwoxNi4yIDIwLjY5NiAxOC4xMzEgMjIuNjE1IDIwLjUwNiAyMi42MTUgYwoyMi42OTUgMjIuNjE1IGwKMjMuOTM5MTcyIDIyLjYxMjc4MyAyNC45NTA0ODkgMjMuNjE3ODM4IDI0Ljk1NiAyNC44NjIgYwoyNC45NDk5NCAyNi4xMDU3NzEgMjMuOTM4Nzg0IDI3LjExMDIxOSAyMi42OTUgMjcuMTA4IGMKMTguMzE3IDI3LjEwOCBsCjE3Ljc1MiAyNy4xMDggMTcuMjk1IDI3LjU2MyAxNy4yOTUgMjguMTIzIGMKMTcuMjk1IDI4LjY4MyAxNy43NTIgMjkuMTM4IDE4LjMxNiAyOS4xMzggYwoyMC41NzggMjkuMTM4IGwKMjAuNTc4IDMxLjM4NSBsCjIwLjU3OCAzMS45NDUgMjEuMDM2IDMyLjQgMjEuNiAzMi40IGMKMjIuMTY0IDMyLjQgMjIuNjIyIDMxLjk0NiAyMi42MjIgMzEuMzg1IGMKMjIuNjIyIDI5LjEzOCBsCjIyLjY5NSAyOS4xMzggbAoyNS4wNjkgMjkuMTM4IDI3IDI3LjIyIDI3IDI0Ljg2MiBjCjI3IDIyLjUwNCAyNS4wNjkgMjAuNTg1IDIyLjY5NSAyMC41ODUgYwpoCjEgMSAxIHJnCi9hMS4wIGdzCjEgdwowIEoKMCBqCjQgTQpmClEKMSB3CjAgSgowIGoKNCBNCm4KUQpRClEKUQpRCnEKcQowLjQxMTc2NSAwLjQ0NzA1OSAwLjQ5MDE5NiByZwovYTEuMCBncwpCVAoxIDAgMCAtMSAyNzguMDM2OTE3IDIxNC42MjMwNDcgVG0KL09DSE5VUCAxMiBUZgpbIDwwMDMzPiA2MyA8MDAyND4gMTcgPDAwMmEwMDI0MDAzMDAwMjgwMDMxMDAzNzAwMzIwMDAzMDAyNzAwMjgwMDAzMDAyNT4gMTcgPDAwMzIwMDJmMDAyODAwMzcwMDMyMDAwMzAwMjcwMDI4MDAwMzAwMjYwMDMyMDAzMTAwMzkwMDhjMDAzMTAwMmMwMDMyPiBdIFRKCkVUCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwpCVAoxIDAgMCAtMSAzMDYuMDg0NzY5IDI2MS41NDY4NzUgVG0KL1ZDQVRXUyAzMiBUZgpbIDwwMDM1MDAwNzAwMDMwMDE0MDAxNjAwMWIwMDBmMDAxYzAwMWE+IF0gVEoKRVQKUQpRCnEKcQowIDI3Mi40Njg3NSA3OTMuNzAwNzg3IDgxOCByZQpXCm4KcQowLjk0OTAyIDAuOTU2ODYzIDAuOTg4MjM1IHJnCi9hMS4wIGdzCjAgMjcyLjQ2ODc1IDc5My43MDA3ODcgODE4IHJlClcKbgowIDI3Mi40Njg3NSA3OTMuNzAwNzg3IDgxOCByZQpmClEKUQpRCnEKcQowIDI3Mi40Njg3NSA3OTMuNzAwNzg3IDIyOCByZQpXCm4KcQoxIDEgMSByZwovYTEuMCBncwowIDI3Mi40Njg3NSA3OTMuNzAwNzg3IDIyOCByZQpXCm4KMCAyNzIuNDY4NzUgNzkzLjcwMDc4NyAyMjggcmUKZgpRClEKcQo3OTMuNzAwNzg3IDUwMC40Njg3NSBtCjAgNTAwLjQ2ODc1IGwKMCA0OTkuNDY4NzUgbAo3OTMuNzAwNzg3IDQ5OS40Njg3NSBsClcqCm4KMC4wOTgwMzkgMC4xNDExNzYgMC40OTQxMTggcmcKL2ExLjAgZ3MKMCAyNzIuNDY4NzUgNzkzLjcwMDc4NyAyMjcgcmUKMCAyNzIuNDY4NzUgNzkzLjcwMDc4NyAyMjggcmUKZioKUQpRCnEKcQpxCnEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTEuMCBncwpCVAoxIDAgMCAtMSA3NS41OTA1NTEgMzgzLjAwNzgxMiBUbQovVkNBVFdTIDE2IFRmClsgPDAwMWIwMDE2MDAxOTAwMTQwMDEzMDAxMzAwMTMwMDEzMDAxMzAwMTMwMDE0MDAxNzAwMTYwMDFiMDAxYzAwMWEwMDEzMDAxMzAwMTcwMDEzMDAxNjAwMTYwMDFhMDAxYjAwMTMwMDE2MDAxNjAwMWIwMDFjMDAxNTAwMTcwMDE3MDAxODAwMTMwMDE2MDAxNjAwMTQwMDEzMDAxNDAwMTQwMDFjMDAxMzAwMTQwMDE1MDAxNTAwMTQwMDE4MDAxOT4gXSBUSgpFVApRClEKUQpRCnEKcQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMS4wIGdzCkJUCjEgMCAwIC0xIDc1LjU5MDU1MSA0NTkuMDA3ODEyIFRtCi9WQ0FUV1MgMTYgVGYKWyA8MDAzMTAwNTIwMDUxMDA0ODAwMDMwMDEwMDAwMzAwMzEwMDUyMDA1MTAwNDg+IF0gVEoKRVQKUQpRClEKUQpRClEKcQpxCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2ExLjAgZ3MKQlQKMSAwIDAgLTEgMTA5LjU5MDU1MSAzNDkuNjIzMDQ3IFRtCi9PQ0hOVVAgMTIgVGYKWyA8MDAyZjAwNGMwMDUxMDA0YjAwNDQwMDAzMDAyNzAwNGMwMDRhMDA0YzAwNTcwMGEzMDA1OTAwNDgwMDRmPiBdIFRKCkVUClEKUQpRClEKcQpxCjc1LjU5MDU1MSAzMzIuNDY4NzUgMjQgMjQgcmUKVwpuCnEKL2ExIGdzCjEgMCAwIDEgNzUuNTkwNTUxIDMzMi40Njg3NSBjbQpxCnEKMSAwIDAgMSAwIDAgY20KMSAwIDAgMSAwIDAgY20KcQoyNCAxMiBtCjI0IDE4Ljc3MDI3NSAxOC43NzAyNzUgMjQgMTIgMjQgYwo1LjIyOTcyNSAyNCAwIDE4Ljc3MDI3NSAwIDEyIGMKMCA1LjIyOTcyNSA1LjIyOTcyNSAwIDEyIDAgYwoxOC43NzAyNzUgMCAyNCA1LjIyOTcyNSAyNCAxMiBjCmgKMC44NjI3NDUgMC44NzA1ODggMC45NzY0NzEgcmcKL2ExLjAgZ3MKMSB3CjAgSgowIGoKNCBNCmYKUQpxCjAgMCBtCjUuNyA3LjUgbQo0LjggNy41IGwKNC44IDE2LjUgbAo1LjcgMTYuNSBsCjUuNyA3LjUgbApoCjE5LjIgNy41IG0KMTguMyA3LjUgbAoxOC4zIDE2LjUgbAoxOS4yIDE2LjUgbAoxOS4yIDcuNSBsCmgKNy45NSA3LjUgbQo3LjA1IDcuNSBsCjcuMDUgMTQuNyBsCjcuOTUgMTQuNyBsCjcuOTUgNy41IGwKaAo5Ljc1MiA3LjUgbQo4Ljg1MiA3LjUgbAo4Ljg1MiAxNC43IGwKOS43NTIgMTQuNyBsCjkuNzUyIDcuNSBsCmgKMTMuMzUxIDcuNSBtCjEyLjQ1MSA3LjUgbAoxMi40NTEgMTYuNSBsCjEzLjM1MSAxNi41IGwKMTMuMzUxIDcuNSBsCmgKMTUuMTUgNy41IG0KMTQuMjUgNy41IGwKMTQuMjUgMTQuNyBsCjE1LjE1IDE0LjcgbAoxNS4xNSA3LjUgbApoCjcuOTUgMTUuNiBtCjcuMDUgMTUuNiBsCjcuMDUgMTYuNSBsCjcuOTUgMTYuNSBsCjcuOTUgMTUuNiBsCmgKOS43NTIgMTUuNiBtCjguODUyIDE1LjYgbAo4Ljg1MiAxNi41IGwKOS43NTIgMTYuNSBsCjkuNzUyIDE1LjYgbApoCjExLjU1IDcuNSBtCjEwLjY1IDcuNSBsCjEwLjY1IDE0LjcgbAoxMS41NSAxNC43IGwKMTEuNTUgNy41IGwKaAoxMS41NSAxNS42IG0KMTAuNjUgMTUuNiBsCjEwLjY1IDE2LjUgbAoxMS41NSAxNi41IGwKMTEuNTUgMTUuNiBsCmgKMTUuMTUgMTUuNiBtCjE0LjI1IDE1LjYgbAoxNC4yNSAxNi41IGwKMTUuMTUgMTYuNSBsCjE1LjE1IDE1LjYgbApoCjE2Ljk1IDcuNSBtCjE2LjA1IDcuNSBsCjE2LjA1IDE0LjcgbAoxNi45NSAxNC43IGwKMTYuOTUgNy41IGwKaAoxNi45NSAxNS42IG0KMTYuMDUgMTUuNiBsCjE2LjA1IDE2LjUgbAoxNi45NSAxNi41IGwKMTYuOTUgMTUuNiBsCmgKMC4wOTgwMzkgMC4xNDExNzYgMC40OTQxMTggcmcKL2ExLjAgZ3MKMSB3CjAgSgowIGoKNCBNCmYKUQoxIHcKMCBKCjAgago0IE0KbgpRClEKUQpRClEKcQpxCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2ExLjAgZ3MKQlQKMSAwIDAgLTEgMTA5LjU5MDU1MSA0MjUuNjIzMDQ3IFRtCi9PQ0hOVVAgMTIgVGYKWyA8MDAyNTAwNDQwMDUxMDA0NjAwNTIwMDAzMDA0NzAwNDgwMDU2MDA1NzAwNGMwMDUxMDA0NDAwNTcwMGEzMDA1NTAwNGMwMDUyPiBdIFRKCkVUClEKUQpRClEKcQpxCjc1LjU5MDU1MSA0MDguNDY4NzUgMjQgMjQgcmUKVwpuCnEKL2ExIGdzCjEgMCAwIDEgNzUuNTkwNTUxIDQwOC40Njg3NSBjbQpxCnEKMSAwIDAgMSAwIDAgY20KMSAwIDAgMSAwIDAgY20KcQoyNCAxMiBtCjI0IDE4Ljc3MDI3NSAxOC43NzAyNzUgMjQgMTIgMjQgYwo1LjIyOTcyNSAyNCAwIDE4Ljc3MDI3NSAwIDEyIGMKMCA1LjIyOTcyNSA1LjIyOTcyNSAwIDEyIDAgYwoxOC43NzAyNzUgMCAyNCA1LjIyOTcyNSAyNCAxMiBjCmgKMC44NjI3NDUgMC44NzA1ODggMC45NzY0NzEgcmcKL2ExLjAgZ3MKMSB3CjAgSgowIGoKNCBNCmYKUQpxCjAgMCBtCjE4LjEyOSAxMC4yMiBtCjE4LjU4MSAxMC4yMiAxOC45NDkgOS44NTIgMTguOTQ5IDkuNCBjCjE4Ljk0OSA4LjMzNyBsCjE4Ljk0OTkyOCA4LjAwMTkzMiAxOC43NDYxNzQgNy43MDAyNjUgMTguNDM1IDcuNTc2IGMKMTIuMjgyIDUuMDYgbAoxMi4wODU4MzUgNC45ODAzODcgMTEuODY2NDI1IDQuOTgwMDI4IDExLjY3IDUuMDU5IGMKNS41MTQgNy41NzYgbAo1LjIwMjgyNiA3LjcwMDI2NSA0Ljk5OTA3MiA4LjAwMTkzMiA1IDguMzM3IGMKNSA5LjQgbAo1IDkuODUyIDUuMzY4IDEwLjIyIDUuODIgMTAuMjIgYwo2LjMxMyAxMC4yMiBsCjYuMzEzIDE2LjQwMiBsCjUuODIgMTYuNDAyIGwKNS4zNjY5NjQgMTYuNDAyIDQuOTk5NTUyIDE2Ljc2ODk2NSA0Ljk5OSAxNy4yMjIgYwo0Ljk5OSAxOC4xNzkgbAo0Ljk5OSAxOC42MzIgNS4zNjcgMTkgNS44MTkgMTkgYwoxOC4xMyAxOSBsCjE4LjU4MiAxOSAxOC45NSAxOC42MzIgMTguOTUgMTguMTggYwoxOC45NSAxNy4yMjIgbAoxOC45NDk0NDkgMTYuNzY5MzU1IDE4LjU4MjY0NSAxNi40MDI1NTEgMTguMTMgMTYuNDAyIGMKMTcuNjM3IDE2LjQwMiBsCjE3LjYzNyAxMC4yMiBsCjE4LjEzIDEwLjIyIGwKaAoxOC4xMjkgMTcuMjIyIG0KMTguMTI5IDE4LjIwMiAxOC4xMzEgMTguMTc5IDE4LjEyOSAxOC4xNzkgYwo1LjgyIDE4LjE3OSBsCjUuODIgMTcuMjIyIGwKMTguMTI4IDE3LjIyMiBsCmgKNy4xMzMgMTYuNDAyIG0KNy4xMzMgMTAuMjIgbAo4LjA2MyAxMC4yMiBsCjguMDYzIDE2LjQwMiBsCjcuMTMzIDE2LjQwMiBsCmgKOC44ODQgMTYuNDAyIG0KOC44ODQgMTAuMjIgbAoxMC42ODkgMTAuMjIgbAoxMC42ODkgMTYuNDAyIGwKOC44ODQgMTYuNDAyIGwKaAoxMS41MSAxNi40MDIgbQoxMS41MSAxMC4yMiBsCjEyLjQ0IDEwLjIyIGwKMTIuNDQgMTYuNDAyIGwKMTEuNTEgMTYuNDAyIGwKaAoxMy4yNiAxNi40MDIgbQoxMy4yNiAxMC4yMiBsCjE1LjA2NSAxMC4yMiBsCjE1LjA2NSAxNi40MDIgbAoxMy4yNiAxNi40MDIgbApoCjE1Ljg4NiAxNi40MDIgbQoxNS44ODYgMTAuMjIgbAoxNi44MTYgMTAuMjIgbAoxNi44MTYgMTYuNDAyIGwKMTUuODg2IDE2LjQwMiBsCmgKNS44MiA5LjQgbQo1LjgyIDguMjU1IDUuODE4IDguMzM4IDUuODIyIDguMzM2IGMKMTEuOTc0IDUuODIxIGwKMTguMTI0IDguMzM2IGwKMTguMTI5IDguMzM4IDE4LjEyOCA4LjI1OCAxOC4xMjggOS40IGMKNS44MiA5LjQgbApoCjAuMDk4MDM5IDAuMTQxMTc2IDAuNDk0MTE4IHJnCi9hMS4wIGdzCjEgdwowIEoKMCBqCjQgTQpmClEKMSB3CjAgSgowIGoKNCBNCm4KUQpRClEKUQpRCnEKcQpxCnEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTAuNyBncwpCVAoxIDAgMCAtMSA3NS41OTA1NTEgNTg2LjYyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMzEwMDUyMDA1MDAwNDgwMDAzMDA0NzAwNTIwMDAzMDAzMz4gMjYgPDAwNDQwMDRhMDA0NDAwNDcwMDUyMDA1NT4gXSBUSgpFVApRClEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTEuMCBncwpCVAoxIDAgMCAtMSAzOTYuODUwMzk0IDU4OC4xMjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDI1MDA0ODAwNDQwMDU3MDA1NTAwNGMwMDVkMDAwMzAwMjYwMDUyMDA1ODAwNTcwMDUyMDAwMzAwNDcwMDQ4MDAwMzAwMjYwMDQ0MDA1NTAwNTkwMDQ0MDA0ZjAwNGIwMDUyPiBdIFRKCkVUClEKUQpRClEKcQpxCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2EwLjcgZ3MKQlQKMSAwIDAgLTEgNzUuNTkwNTUxIDYyNS42MjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDI2MDAzMzAwMjkwMDEyMDAyNjAwMzEwMDMzMDAyZD4gXSBUSgpFVApRClEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTEuMCBncwpCVAoxIDAgMCAtMSAzOTYuODUwMzk0IDYyNy4xMjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDEzMDAxNjAwMWEwMDExMDAxYjAwMTUwMDE5MDAxMTAwMTQwMDFhMDAxMzAwMTAwMDE2MDAxYT4gXSBUSgpFVApRClEKUQpRCnEKcQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMC43IGdzCkJUCjEgMCAwIC0xIDc1LjU5MDU1MSA2NjQuNjIzMDQ3IFRtCi9WQ0FUV1MgMTIgVGYKWyA8MDAyNDAwNGEwMGFjMDA1MTAwNDYwMDRjMDA0ND4gXSBUSgpFVApRClEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTEuMCBncwpCVAoxIDAgMCAtMSAzOTYuODUwMzk0IDY2Ni4xMjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDEzMDAxMzAwMTMwMDE0PiBdIFRKCkVUClEKUQpRClEKcQpxCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2EwLjcgZ3MKQlQKMSAwIDAgLTEgNzUuNTkwNTUxIDcwMy42MjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDI2MDA1MjAwNTEwMDU3MDA0ND4gXSBUSgpFVApRClEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTEuMCBncwpCVAoxIDAgMCAtMSAzOTYuODUwMzk0IDcwNS4xMjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDFhMDAxYTAwMWMwMDFhMDAxYzAwMTAwMDE1PiBdIFRKCkVUClEKUQpRClEKcQpxCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2EwLjcgZ3MKQlQKMSAwIDAgLTEgNzUuNTkwNTUxIDc0Mi42MjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDJjMDA1MTAwNTYwMDU3MDA0YzAwNTcwMDU4MDA0YzAwYTkwMGE1MDA1MjAwMDMwMDI5MDA0YzAwNTEwMDQ0MDA1MTAwNDYwMDQ4MDA0YzAwNTUwMDQ0PiBdIFRKCkVUClEKUQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMS4wIGdzCkJUCjEgMCAwIC0xIDM5Ni44NTAzOTQgNzQ0LjEyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMzQwMDJjMDAwMzAwMzYwMDMyMDAyNjAwMmMwMDI4MDAyNzAwMjQwMDI3MDAyODAwMDMwMDI3MDAyODAwMDMwMDI2MDAzNTAwOGIwMDI3MDAyYzAwMzcwMDMyMDAwMzAwMjcwMDJjMDAzNTAwMjgwMDM3MDAzMjAwMDMwMDM2MDAxMTAwMjQ+IC0xOCA8MDAxMT4gXSBUSgpFVApRClEKUQpRCnEKcQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMC43IGdzCkJUCjEgMCAwIC0xIDc1LjU5MDU1MSA3ODEuNjIzMDQ3IFRtCi9WQ0FUV1MgMTIgVGYKWyA8MDAzOT4gNTQgPDAwNDQwMDRmMDA1MjAwNTU+IF0gVEoKRVQKUQpRCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2ExLjAgZ3MKQlQKMSAwIDAgLTEgMzk2Ljg1MDM5NCA3ODMuMTIzMDQ3IFRtCi9WQ0FUV1MgMTIgVGYKWyA8MDAzNTAwMDcwMDAzMDAxNDAwMTYwMDFiMDAwZjAwMWMwMDFhPiBdIFRKCkVUClEKUQpRClEKcQpxCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2EwLjcgZ3MKQlQKMSAwIDAgLTEgNzUuNTkwNTUxIDg4NC42MjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDMxMDA1MjAwNTAwMDQ4MDAwMzAwNDcwMDUyMDAwMzAwMjUwMDQ4MDA1MTAwNDgxM2FlMDA0NjAwNGMwMGEzMDA1NTAwNGMwMDUyPiBdIFRKCkVUClEKUQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMS4wIGdzCkJUCjEgMCAwIC0xIDM5Ni44NTAzOTQgODg2LjEyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMjYwMDMzMDAyOTAwMmYwMDAzMDAyNjAwMmMwMDI0MDAwMzAwMzM+IDkxIDwwMDI0PiAzMCA8MDAzODAwMmYwMDJjMDAzNjAwMzc+IDc3IDwwMDI0MDAwMzAwMjkwMDMyPiBdIFRKCkVUClEKUQpRClEKcQpxCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2EwLjcgZ3MKQlQKMSAwIDAgLTEgNzUuNTkwNTUxIDkyMy42MjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDI2MDAzMzAwMjkwMDEyMDAyNjAwMzEwMDMzMDAyZD4gXSBUSgpFVApRClEKUQpRCnEKcQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMC43IGdzCkJUCjEgMCAwIC0xIDc1LjU5MDU1MSA5NTkuNjIzMDQ3IFRtCi9WQ0FUV1MgMTIgVGYKWyA8MDAzMTAwNTIwMDUwMDA0ODAwMDMwMDQ3MDA1MjAwMDMwMDM2MDA0NDAwNDYwMDQ0MDA0NzAwNTIwMDU1MDAwMzAwMjQ+IDM1IDwwMDU5MDA0NDAwNGYwMDRjMDA1NjAwNTcwMDQ0PiBdIFRKCkVUClEKUQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMS4wIGdzCkJUCjEgMCAwIC0xIDM5Ni44NTAzOTQgOTYxLjEyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMTA+IF0gVEoKRVQKUQpRClEKUQpxCnEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTAuNyBncwpCVAoxIDAgMCAtMSA3NS41OTA1NTEgOTk4LjYyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMjYwMDMxMDAzMzAwMmQ+IF0gVEoKRVQKUQpRCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2ExLjAgZ3MKQlQKMSAwIDAgLTEgMzk2Ljg1MDM5NCAxMDAwLjEyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMTA+IF0gVEoKRVQKUQpRClEKUQpxCnEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTAuNyBncwpCVAoxIDAgMCAtMSA3NS41OTA1NTEgMTAzNy42MjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDI3MDA0NDAwNTcwMDQ0MDAwMzAwNDcwMDQ4MDAwMzAwMzk+IDU0IDwwMDQ4MDA1MTAwNDYwMDRjMDA1MDAwNDgwMDUxMDA1NzAwNTI+IF0gVEoKRVQKUQpRClEKUQpxCnEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTAuNyBncwpCVAoxIDAgMCAtMSA3NS41OTA1NTEgMTA3My42MjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDI3MDA0NDAwNTcwMDQ0MDAwMzAwNDcwMDUyMDAwMzAwMzM+IDI2IDwwMDQ0MDA0YTAwNDQwMDUwMDA0ODAwNTEwMDU3MDA1Mj4gXSBUSgpFVApRClEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTEuMCBncwpCVAoxIDAgMCAtMSAzOTYuODUwMzk0IDEwNzUuMTIzMDQ3IFRtCi9WQ0FUV1MgMTIgVGYKWyA8MDAxNTAwMTMwMDEyMDAxMzAwMTkwMDEyMDAxNTAwMTMwMDE1MDAxNz4gXSBUSgpFVApRClEKUQpRClEKUQpxCnEKMCAxMDI1LjUxOTY4NSA3OTMuNzAwNzg3IDk3IHJlClcKbgpxCjAuOTQ5MDIgMC45NTY4NjMgMC45ODgyMzUgcmcKL2ExLjAgZ3MKMCAxMDI1LjUxOTY4NSA3OTMuNzAwNzg3IDk3IHJlClcKbgowIDEwMjUuNTE5Njg1IDc5My43MDA3ODcgOTcgcmUKZgpRClEKcQo3OTMuNzAwNzg3IDEwMjUuNTE5Njg1IG0KMCAxMDI1LjUxOTY4NSBsCjAgMTAyNi41MTk2ODUgbAo3OTMuNzAwNzg3IDEwMjYuNTE5Njg1IGwKVyoKbgowIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNS45OTAxOTUgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoxMS45ODAzODkgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoxNy45NzA1ODQgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyMy45NjA3NzggMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyOS45NTA5NzMgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQozNS45NDExNjggMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo0MS45MzEzNjIgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo0Ny45MjE1NTcgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo1My45MTE3NTIgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo1OS45MDE5NDYgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo2NS44OTIxNDEgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo3MS44ODIzMzUgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo3Ny44NzI1MyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjgzLjg2MjcyNSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjg5Ljg1MjkxOSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjk1Ljg0MzExNCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjEwMS44MzMzMDkgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoxMDcuODIzNTAzIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMTEzLjgxMzY5OCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjExOS44MDM4OTIgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoxMjUuNzk0MDg3IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMTMxLjc4NDI4MiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjEzNy43NzQ0NzYgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoxNDMuNzY0NjcxIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMTQ5Ljc1NDg2NiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjE1NS43NDUwNiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjE2MS43MzUyNTUgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoxNjcuNzI1NDQ5IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMTczLjcxNTY0NCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjE3OS43MDU4MzkgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoxODUuNjk2MDMzIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMTkxLjY4NjIyOCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjE5Ny42NzY0MjMgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyMDMuNjY2NjE3IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMjA5LjY1NjgxMiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjIxNS42NDcwMDYgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyMjEuNjM3MjAxIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMjI3LjYyNzM5NiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjIzMy42MTc1OSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjIzOS42MDc3ODUgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyNDUuNTk3OTc5IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMjUxLjU4ODE3NCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjI1Ny41NzgzNjkgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyNjMuNTY4NTYzIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMjY5LjU1ODc1OCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjI3NS41NDg5NTMgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyODEuNTM5MTQ3IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMjg3LjUyOTM0MiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjI5My41MTk1MzYgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyOTkuNTA5NzMxIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMzA1LjQ5OTkyNiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjMxMS40OTAxMiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjMxNy40ODAzMTUgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQozMjMuNDcwNTEgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQozMjkuNDYwNzA0IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMzM1LjQ1MDg5OSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjM0MS40NDEwOTMgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQozNDcuNDMxMjg4IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMzUzLjQyMTQ4MyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjM1OS40MTE2NzcgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQozNjUuNDAxODcyIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMzcxLjM5MjA2NyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjM3Ny4zODIyNjEgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQozODMuMzcyNDU2IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMzg5LjM2MjY1IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMzk1LjM1Mjg0NSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjQwMS4zNDMwNCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjQwNy4zMzMyMzQgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo0MTMuMzIzNDI5IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNDE5LjMxMzYyNCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjQyNS4zMDM4MTggMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo0MzEuMjk0MDEzIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNDM3LjI4NDIwNyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjQ0My4yNzQ0MDIgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo0NDkuMjY0NTk3IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNDU1LjI1NDc5MSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjQ2MS4yNDQ5ODYgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo0NjcuMjM1MTgxIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNDczLjIyNTM3NSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjQ3OS4yMTU1NyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjQ4NS4yMDU3NjQgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo0OTEuMTk1OTU5IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNDk3LjE4NjE1NCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjUwMy4xNzYzNDggMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo1MDkuMTY2NTQzIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNTE1LjE1NjczNyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjUyMS4xNDY5MzIgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo1MjcuMTM3MTI3IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNTMzLjEyNzMyMSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjUzOS4xMTc1MTYgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo1NDUuMTA3NzExIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNTUxLjA5NzkwNSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjU1Ny4wODgxIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNTYzLjA3ODI5NCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjU2OS4wNjg0ODkgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo1NzUuMDU4Njg0IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNTgxLjA0ODg3OCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjU4Ny4wMzkwNzMgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo1OTMuMDI5MjY4IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNTk5LjAxOTQ2MiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjYwNS4wMDk2NTcgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo2MTAuOTk5ODUxIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNjE2Ljk5MDA0NiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjYyMi45ODAyNDEgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo2MjguOTcwNDM1IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNjM0Ljk2MDYzIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNjQwLjk1MDgyNSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjY0Ni45NDEwMTkgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo2NTIuOTMxMjE0IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNjU4LjkyMTQwOCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjY2NC45MTE2MDMgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo2NzAuOTAxNzk4IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNjc2Ljg5MTk5MiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjY4Mi44ODIxODcgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo2ODguODcyMzgyIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNjk0Ljg2MjU3NiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjcwMC44NTI3NzEgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo3MDYuODQyOTY1IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNzEyLjgzMzE2IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNzE4LjgyMzM1NSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjcyNC44MTM1NDkgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo3MzAuODAzNzQ0IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNzM2Ljc5MzkzOCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjc0Mi43ODQxMzMgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo3NDguNzc0MzI4IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNzU0Ljc2NDUyMiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjc2MC43NTQ3MTcgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo3NjYuNzQ0OTEyIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNzcyLjczNTEwNiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjc3OC43MjUzMDEgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo3ODQuNzE1NDk1IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNzkwLjcwNTY5IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKVyoKbgowLjA5ODAzOSAwLjE0MTE3NiAwLjQ5NDExOCByZwovYTEuMCBncwowIDEwMjYuNTE5Njg1IDc5My43MDA3ODcgOTYgcmUKMCAxMDI1LjUxOTY4NSA3OTMuNzAwNzg3IDk3IHJlCmYqClEKUQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMC43IGdzCkJUCjEgMCAwIC0xIDMyNS43NTI3MzcgMTA1Ny42NzM5ODIgVG0KL09DSE5VUCAxMiBUZgpbIDwwMDI2MDBiNTAwNDcwMDRjMDA0YTAwNTIwMDAzMDA0NzAwNDgwMDAzMDA0NDAwNTgwMDU3MDA0ODAwNTEwMDU3MDA0YzAwNDYwMDQ0MDBhOTAwYTUwMDUyMDAwMz4gXSBUSgpFVAovYTEuMCBncwpCVAoxIDAgMCAtMSAyNjkuNjAyMzQ3IDEwNzEuNjczOTgyIFRtCi9PQ0hOVVAgMTIgVGYKWyA8MDAxYjAwMWMwMDFiMDAxNTAwMTMwMDEzMDAxNTAwMTkwMDEwMDA0NTAwNDUwMDE2MDA0ODAwMTAwMDE3MDAxNzAwNDkwMDQ2MDAxMDAwMWIwMDE0MDAxNjAwMTMwMDEwMDA0NjAwNDgwMDQ0MDA0NDAwMTYwMDEzMDAxMzAwNDgwMDE0MDA0NzAwMWIwMDQ0PiBdIFRKCkVUCi9hMC43IGdzCkJUCjEgMCAwIC0xIDI5MC42Mjg3MTQgMTA5NS42NzM5ODIgVG0KL09DSE5VUCAxMiBUZgpbIDwwMDM0MDA0YzAwMDMwMDM2MDA1MjAwNDYwMDRjMDA0ODAwNDcwMDQ0MDA0NzAwNDgwMDAzMDA0NzAwNDgwMDAzMDAyNjAwNTU+IDIxIDwwMDQ4MDA0NzAwNGMwMDU3MDA1MjAwMDMwMDI3MDA0YzAwNTU+IDIxIDwwMDQ4MDA1NzAwNTIwMDAzMDAzNjAwMTEwMDI0PiAxNyA8MDAxMT4gXSBUSgoxIDAgMCAtMSAzMTkuNDMzNDAyIDExMDkuNjczOTgyIFRtClsgPDAwMjYwMDMxMDAzMzAwMmQwMDAzMDAxNjAwMTUwMDExMDAxNzAwMTMwMDE1MDAxMTAwMTgwMDEzMDAxNTAwMTIwMDEzMDAxMzAwMTMwMDE0MDAxMDAwMTgwMDFjPiBdIFRKCkVUClEKUQpxCnEKcQpxCjc1LjU5MDU1MSA1MjIuNDY4NzUgNzAgOSByZQpXCm4KcQoxIDAuOTA1ODgyIDAuOTM3MjU1IHJnCi9hMS4wIGdzCjc1LjU5MDU1MSA1MjIuNDY4NzUgNzAgOSByZQpXCm4KNzUuNTkwNTUxIDUyMi40Njg3NSA3MCA5IHJlCmYKUQpRClEKMC4wOTgwMzkgMC4xNDExNzYgMC40OTQxMTggcmcKL2ExLjAgZ3MKQlQKMSAwIDAgLTEgNzUuNTkwNTUxIDUyNy4wMDc4MTIgVG0KL1ZDQVRXUyAxNiBUZgpbIDwwMDMzPiAyNiA8MDA0NDAwNGEwMDQ0MDA0NzAwNTI+IF0gVEoKMSAwIDAgLTEgNzUuNTkwNTUxIDU0OS4wMDc4MTIgVG0KWyA8MDA1NT4gXSBUSgpFVApRClEKcQpxCnEKcQo3NS41OTA1NTEgODIwLjQ2ODc1IDEwMCA5IHJlClcKbgpxCjEgMC45MDU4ODIgMC45MzcyNTUgcmcKL2ExLjAgZ3MKNzUuNTkwNTUxIDgyMC40Njg3NSAxMDAgOSByZQpXCm4KNzUuNTkwNTUxIDgyMC40Njg3NSAxMDAgOSByZQpmClEKUQpRCjAuMDk4MDM5IDAuMTQxMTc2IDAuNDk0MTE4IHJnCi9hMS4wIGdzCkJUCjEgMCAwIC0xIDc1LjU5MDU1MSA4MjUuMDA3ODEyIFRtCi9WQ0FUV1MgMTYgVGYKWyA8MDAyNTAwNDgwMDUxMDA0ODEzYWUwMDQ2MDA0YzAwYTMwMDU1MDA0Yz4gXSBUSgoxIDAgMCAtMSA3NS41OTA1NTEgODQ3LjAwNzgxMiBUbQpbIDwwMDUyPiBdIFRKCkVUClEKUQpRClEKUQpRClEKUQpxCjAgMCA1OTUuMzAzOTM3MDA3ODc0IDg0MS44ODk3NjM3Nzk1MjggcmUKVwpuCjAuMSB3CnEKMTAgLTAuMTEgNTc1LjMgODE0IHJlClcqCm4KcQovRUdTNiBncwovVHI1IERvClEKUQpRCgplbmRzdHJlYW0KZW5kb2JqCjYgMCBvYmoKPDwKL0NBIDAuMwovY2EgMC4zCj4+CmVuZG9iago3IDAgb2JqCjw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMAovQmFzZUZvbnQgL1ZDQVRXUytEZWphVnUtU2Fucy1Cb2xkCi9Ub1VuaWNvZGUgOCAwIFIKL0VuY29kaW5nIC9JZGVudGl0eS1ICi9EZXNjZW5kYW50Rm9udHMgWyA5IDAgUiBdCj4+CmVuZG9iago4IDAgb2JqCjw8Ci9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9MZW5ndGggNDg0Cj4+CnN0cmVhbQp42l2UyYrbQBRF9/qKWnYWjVST7AYjCJ2NFxmIkw8oVz25BbEkZHnhv09JRzgQgw2XN9xBfirfj1+OfTer8sc0xJPMqu36NMltuE9R1FkuXV9oo1IX5w2tv/EaxqLMw6fHbZbrsW+H4nBQ5c9cvM3TQ718TsNZPhXl9ynJ1PUX9fL7/ZTx6T6Of+Qq/ayqomlUkjYv+hrGb+EqqlzHXo8p17v58Zpn/nX8eoyizIo1YuKQ5DaGKFPoL1Icqvxp1KHNn6aQPv1X93vGzm38CNPSburcXlXONgvyZkV1C6pACWRXtKtAHmRAb6B6Rc4xp6lpkIB2dDo699T8iioYDAyOznrrDKDdiizsHvaKTkOnht3CrvFn8afPoD1zLXORWqT2BoLPwqfxZ/Gn0WnRqWG3GzvKLMo0/iz+LEk4ktCka0jXstOz07DFscWhrEaZTyQYQDDsYHA4qnHkcFvj1uDBbR540oYnbdjp2KnRadBpyNORZ0CL0OlItyZdQ81tOqntqAXYhTwD/oSahcHDYJnzWw2dbtOJW4dbQ/KO5Pe4jbBbap6ahd0v3rUNgur6mWkgfUGBIUVHihbO/IdfDmq7nOW0ljfA827jfZryya6vifVWlyvtenm+ScZhXKaW718jUhDPCmVuZHN0cmVhbQplbmRvYmoKOSAwIG9iago8PAovVHlwZSAvRm9udAovU3VidHlwZSAvQ0lERm9udFR5cGUyCi9CYXNlRm9udCAvVkNBVFdTK0RlamFWdS1TYW5zLUJvbGQKL0NJRFN5c3RlbUluZm8gPDwKL1JlZ2lzdHJ5IChBZG9iZSkKL09yZGVyaW5nIChJZGVudGl0eSkKL1N1cHBsZW1lbnQgMAo+PgovQ0lEVG9HSURNYXAgL0lkZW50aXR5Ci9XIFsgMyBbIDM0OCBdIDcgWyA2OTYgXSAxNSBbIDM4MCA0MTUgMzgwIDM2NSA2OTYgNjk2IDY5NiA2OTYgNjk2IDY5NiA2OTYgNjk2IDY5NiA2OTYgXSAzNiBbIDc3NCA3NjIgNzM0IDgzMCA2ODMgNjgzIF0gNDQgWyAzNzIgMzcyIF0gNDcgWyA2MzcgXSA0OSBbIDgzNyA4NTAgNzMzIDg1MCA3NzAgNzIwIDY4MiA4MTIgNzc0IF0gNjggWyA2NzUgXSA3MCBbIDU5MyA3MTYgNjc4IF0gNzQgWyA3MTYgNzEyIDM0MyBdIDc5IFsgMzQzIDEwNDIgNzEyIDY4NyA3MTYgXSA4NSBbIDQ5MyA1OTUgNDc4IDcxMiA2NTIgXSA5MyBbIDU4MiBdIDEzOSBbIDY4MyBdIDE2MyBbIDY3NSBdIDE2NSBbIDY3NSBdIDE2OSBbIDU5MyBdIDE3MiBbIDY3OCBdIDUwMzggWyA3NDEgXSBdCi9Gb250RGVzY3JpcHRvciAxMCAwIFIKPj4KZW5kb2JqCjEwIDAgb2JqCjw8Ci9UeXBlIC9Gb250RGVzY3JpcHRvcgovRm9udE5hbWUgL1ZDQVRXUytEZWphVnUtU2Fucy1Cb2xkCi9Gb250RmFtaWx5IChEZWphVnVcMDQwU2FucykKL0ZsYWdzIDQKL0ZvbnRCQm94IFsgMCAtMjM1IDEwNDIgOTI4IF0KL0l0YWxpY0FuZ2xlIDAKL0FzY2VudCA5MjgKL0Rlc2NlbnQgLTIzNQovQ2FwSGVpZ2h0IDkyOAovU3RlbVYgODAKL1N0ZW1IIDgwCi9Gb250RmlsZTIgMTEgMCBSCj4+CmVuZG9iagoxMSAwIG9iago8PAovTGVuZ3RoMSAzOTUyMAovRmlsdGVy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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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dWUKPj4KL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbmd0aCA0Nwo+PgpzdHJlYW0KeJwrVDA1N9UzVDAAQgtDYz0LUwVDAxBfz8DYUiE5l0vfM9dEwSVfIZALAL0CCOQKZW5kc3RyZWFtCmVuZG9iagoyMCAwIG9iago8PAovRm9udCAyMSAwIFIKL1hPYmplY3QgPDwKL0ltNCAxNyAwIFIKL1RyNSAxOSAwIFIKPj4KL0V4dEdTdGF0ZSA8PAovRUdTNiA2IDAgUgo+PgovUHJvY1NldCBbIC9QREYgL1RleHQgL0ltYWdlQyAvSW1hZ2VJIC9JbWFnZUIgXQo+PgplbmRvYmoKMjEgMCBvYmoKPDwKPj4KZW5kb2JqCnhyZWYKMCAyMgowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDAwMDA3NCAwMDAwMCBuIAowMDAwMDAwMTE0IDAwMDAwIG4gCjAwMDAwMDAxNjMgMDAwMDAgbiAKMDAwMDAwMDU4NSAwMDAwMCBuIAowMDAwMDI2MjkzIDAwMDAwIG4gCjAwMDAwMjYzMzAgMDAwMDAgbiAKMDAwMDAyNjQ4MCAwMDAwMCBuIAowMDAwMDI3MDM2IDAwMDAwIG4gCjAwMDAwMjc2MjUgMDAwMDAgbiAKMDAwMDAyNzg2NiAwMDAwMCBuIAowMDAwMDMyNDgyIDAwMDAwIG4gCjAwMDAwMzI2MzAgMDAwMDAgbiAKMDAwMDAzMzE1OCAwMDAwMCBuIAowMDAwMDMzNzEwIDAwMDAwIG4gCjAwMDAwMzM5NDUgMDAwMDAgbiAKMDAwMDAzODEyOSAwMDAwMCBuIAowMDAwMDM5NzkzIDAwMDAwIG4gCjAwMDAwNTkyNTcgMDAwMDAgbiAKMDAwMDA1OTUxMyAwMDAwMCBuIAowMDAwMDU5NjY0IDAwMDAwIG4gCnRyYWlsZXIKPDwKL1NpemUgMjIKL1Jvb3QgMyAwIFIKL0luZm8gMiAwIFIKPj4Kc3RhcnR4cmVmCjU5Njg2CiUlRU9GCg==",
    "source_account": {
        "account_branch": "0001",
        "account_digit": "2",
        "account_number": "77979",
        "financial_institution_compe_number": 329,
        "financial_institution_name": "QI SOCIEDADE DE CRÉDITO DIRETO S.A.",
        "owner_document_number": "03782617037",
        "owner_document_number_formatted": "037.826.170-37",
        "owner_name": "Beatriz Couto de Carvalho"
    },
    "source_subtype": "bank_slip_covenant_payment",
    "source_subtype_translation_ptbr": "Pagamento de boleto de convênio",
    "transacted_at": "2024-06-20 19:58:21",
    "transacted_at_br": "2024-06-20 16:58:21",
    "transacted_at_br_formatted": "20/06/2024, 16:58:21",
    "transacted_at_formatted": "20/06/2024, 19:58:21",
    "transaction_amount": 138.97,
    "transaction_amount_formatted": "R$ 138,97",
    "transaction_key": "89820026-bb3e-44fc-8130-ceaa300e1d8a"
}
```

**Response Body: Comprovantes TED**

```json
{
    "origin_key": "6dcb9a84-f545-42ec-a5d0-7312436b4318",
    "pdf_encoded_string": "JVBERi0xLjcKJeLjz9MKMSAwIG9iago8PAovVHlwZSAvUGFnZXMKL0NvdW50IDEKL0tpZHMgWyA0IDAgUiBdCj4+CmVuZG9iagoyIDAgb2JqCjw8Ci9Qcm9kdWNlciAoUHlQREYyKQo+PgplbmRvYmoKMyAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMSAwIFIKPj4KZW5kb2JqCjQgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL01lZGlhQm94IFsgMCAwIDU5NS4yNzU1OTEgODQxLjg4OTc2NCBdCi9Db250ZW50cyA1IDAgUgovUmVzb3VyY2VzIDw8Ci9FeHRHU3RhdGUgPDwKL2ExLjAgPDwKL2NhIDEKPj4KL2ExIDw8Ci9jYSAxCj4+Ci9hMC43IDw8Ci9jYSAwLjcKPj4KL0VHUzYgNiAwIFIKPj4KL0ZvbnQgPDwKL1ZDQVRXUyA3IDAgUgovT0NITlVQIDEyIDAgUgo+PgovWE9iamVjdCA8PAovSW00IDE3IDAgUgovVHI1IDE5IDAgUgo+PgovUHJvY1NldCBbIC9JbWFnZUIgL1BERiAvSW1hZ2VJIC9UZXh0IC9JbWFnZUMgXQo+PgovVHJpbUJveCBbIDAgMCA1OTUuMjc1NTkxIDg0MS44ODk3NjQgXQovQmxlZWRCb3ggWyAwIDAgNTk1LjI3NTU5MSA4NDEuODg5NzY0IF0KL0Fubm90cyBbIF0KL1BhcmVudCAxIDAgUgo+PgplbmRvYmoKNSAwIG9iago8PAovTGVuZ3RoIDIxNTAxCj4+CnN0cmVhbQpxCjEgMCAwIC0xIDAgODQxLjg4OTc2NCBjbQpxCjAuNzUgMCAwIDAuNzUgMCAwIGNtCnEKcQpxCnEKcQpxCjAgMCBtCjc5My43MDA3ODcgMCBsCjc5My43MDA3ODcgMCA3OTMuNzAwNzg3IDAgNzkzLjcwMDc4NyAwIGMKNzkzLjcwMDc4NyAxNDYuNDY4NzUgbAo3OTMuNzAwNzg3IDE1MS45Njg3NSA3ODkuMjAwNzg3IDE1Ni40Njg3NSA3ODMuNzAwNzg3IDE1Ni40Njg3NSBjCjEwIDE1Ni40Njg3NSBsCjQuNSAxNTYuNDY4NzUgMCAxNTEuOTY4NzUgMCAxNDYuNDY4NzUgYwowIDAgbAowIDAgMCAwIDAgMCBjClcKbgpxCjAuMDk4MDM5IDAuMTQxMTc2IDAuNDk0MTE4IHJnCi9hMS4wIGdzCjAgMCA3OTMuNzAwNzg3IDE1Ni40Njg3NSByZQpXCm4KMCAwIDc5My43MDA3ODcgMTU2LjQ2ODc1IHJlCmYKUQpRCnEKNzkzLjcwMDc4NyAwIG0KMCAwIGwKMCA1IGwKNzkzLjcwMDc4NyA1IGwKVyoKbgoxIDAuMjUwOTggMC41MDE5NjEgcmcKL2ExLjAgZ3MKMCA1IG0KNzkzLjcwMDc4NyA1IGwKNzkzLjcwMDc4NyA1IDc5My43MDA3ODcgNSA3OTMuNzAwNzg3IDUgYwo3OTMuNzAwNzg3IDE0Ni40Njg3NSBsCjc5My43MDA3ODcgMTUxLjk2ODc1IDc4OS4yMDA3ODcgMTU2LjQ2ODc1IDc4My43MDA3ODcgMTU2LjQ2ODc1IGMKMTAgMTU2LjQ2ODc1IGwKNC41IDE1Ni40Njg3NSAwIDE1MS45Njg3NSAwIDE0Ni40Njg3NSBjCjAgNSBsCjAgNSAwIDUgMCA1IGMKMCAwIG0KNzkzLjcwMDc4NyAwIGwKNzkzLjcwMDc4NyAwIDc5My43MDA3ODcgMCA3OTMuNzAwNzg3IDAgYwo3OTMuNzAwNzg3IDE0Ni40Njg3NSBsCjc5My43MDA3ODcgMTUxLjk2ODc1IDc4OS4yMDA3ODcgMTU2LjQ2ODc1IDc4My43MDA3ODcgMTU2LjQ2ODc1IGMKMTAgMTU2LjQ2ODc1IGwKNC41IDE1Ni40Njg3NSAwIDE1MS45Njg3NSAwIDE0Ni40Njg3NSBjCjAgMCBsCjAgMCAwIDAgMCAwIGMKZioKUQpRCnEKcQowIDAgMCByZwovYTEuMCBncwpCVApFVAoxIDEgMSByZwpCVAoxIDAgMCAtMSAyNTguOTYzMTg3IDgxLjQ4MTQ0NSBUbQovVkNBVFdTIDE4IFRmClsgPDAwMjYwMDUyMDA1MDAwNTMwMDU1MDA1MjAwNTkwMDQ0MDA1MTAwNTcwMDQ4MDAwMzAwNDcwMDQ4MDAwMzAwMzc+IDEwOSA8MDA1NTAwNDQwMDUxMDA1NjAwNDQwMGE5MDBhNTAwNTI+IF0gVEoKMSAwIDAgLTEgMzMxLjUwNjY0NCAxMDUuODY1MjM0IFRtCi9PQ0hOVVAgMTIgVGYKWyA8MDAxMzAwMWIwMDEyMDAxMzAwMWIwMDEyMDAxNTAwMTMwMDE1MDAxNzAwMGYwMDAzMDAxNDAwMTgwMDFkMDAxODAwMTgwMDFkMDAxNDAwMTk+IF0gVEoKRVQKUQpRCnEKcQozNTguMzUwMzk0IDI1IDc3IDIyIHJlClcKbgpxCi9hMSBncwoxIDAgMCAxIDM1OC4zNTAzOTQgMjUgY20KcQpxCjEgMCAwIDEgMCAwIGNtCjEgMCAwIDEgMCAwIGNtCnEKMCAwIG0KMy41NjM3MiA2LjI1MDAxIG0KMy44ODI4NyA2LjI1MDg5IDQuMTk0NjEgNi4zNTI0MyA0LjQ1OTU1IDYuNTQxODIgYwo0LjcyNDQ5IDYuNzMxMiA0LjkzMDc0IDYuOTk5OTIgNS4wNTIyMyA3LjMxNDAxIGMKNS4xNzM3MyA3LjYyODExIDUuMjA1MDIgNy45NzM0OSA1LjE0MjE1IDguMzA2NTEgYwo1LjA3OTI4IDguNjM5NTMgNC45MjUwNyA4Ljk0NTIzIDQuNjk5MDEgOS4xODUwMSBjCjQuNDcyOTYgOS40MjQ3OCA0LjE4NTE5IDkuNTg3ODUgMy44NzIwOCA5LjY1MzYxIGMKMy41NTg5NyA5LjcxOTM4IDMuMjM0NTggOS42ODQ4OSAyLjkzOTg4IDkuNTU0NDkgYwoyLjY0NTE5IDkuNDI0MSAyLjM5MzQyIDkuMjAzNjYgMi4yMTY0IDguOTIxMDMgYwoyLjAzOTM3IDguNjM4NCAxLjk0NTA0IDguMzA2MjYgMS45NDUzMSA3Ljk2NjU5IGMKMS45NDUzMSA3Ljc0MDY2IDEuOTg3MjEgNy41MTY5NiAyLjA2ODYxIDcuMzA4MzEgYwoyLjE1MDAxIDcuMDk5NjYgMi4yNjkzMSA2LjkxMDE2IDIuNDE5NjcgNi43NTA2OSBjCjIuNTcwMDMgNi41OTEyMSAyLjc0ODQ4IDYuNDY0ODkgMi45NDQ4IDYuMzc4OTcgYwozLjE0MTEzIDYuMjkzMDYgMy4zNTE0NSA2LjI0OTIzIDMuNTYzNzIgNi4yNTAwMSBjCmgKMTYuOSAxNC45MzExIG0KMTQuOTkzNiAxMy4yMjQ5IDEzLjE3MzQgMTAuNjA3OSAxMS41NzQ0IDEyLjQyOTYgYwoxMC4zNjkzIDEzLjgwNCAxMS42MDM3IDE0Ljg1NzEgMTIuMjQxIDE1LjUwNzMgYwoxMy45MDEyIDE3LjIzNzIgMTYuMDc2MiAxOS41Njg0IDE3Ljg2MDIgMjEuMTQ1OCBjCjE4LjQ1NTggMjEuNjcxNiAxOC43NzAzIDIxLjgwNjMgMTkuMjA1OSAyMS45MSBjCjIwLjUyMzcgMjIuMjE5NiAyMS4yNjY4IDIxLjAyMTQgMjEuMDE0OSAxOS44MzY1IGMKMjAuNzc4NCAxOC43MDM1IDE5LjU4NzIgMTcuNTgwOCAxOS4zMzM5IDE3LjQ0MTYgYwoyMC4yNTc5IDE2LjA3NSAyMC44NTE5IDE0LjQ4NzYgMjEuMDYzNiAxMi44MTkxIGMKMjEuMzYzOCAxMC42MDc1IDIxLjAwNDEgOC4zNTE0IDIwLjAzNTMgNi4zNjg5OSBjCjE4LjY0MzcgMy41NTQ5MiAxNi4xMzg4IDEuNzUyNDQgMTQuMjE5OCAxLjEzNzc5IGMKMTMuMTgxNyAwLjgwNDU0NiAxMi4yMjQzIDAuOTIzMDMzIDExLjc1MTIgMS4yODU5IGMKMTEuMTg0OCAxLjcxMzkzIDEwLjg5OTUgMi43MzI5MiAxMS4zNjU3IDMuNTU3ODkgYwoxMS40NDU5IDMuNzA1MTkgMTEuNTUzNCAzLjgzMzYzIDExLjY4MTYgMy45MzU0NiBjCjExLjgwOTggNC4wMzcyOSAxMS45NTYxIDQuMTEwMzggMTIuMTExNiA0LjE1MDMyIGMKMTIuNzgyMyA0LjMyMDY1IDE0LjA5MTggNC42ODIwMyAxNS4yMTQ4IDUuNjMxNDEgYwoxNi40NTU4IDYuNjQ3MTIgMTcuMzI0MSA4LjA5MjYgMTcuNjY5NiA5LjcxNzcyIGMKMTguMDU1IDExLjQ2MzkgMTcuNzI4IDEzLjYxNDUgMTYuOTAxNCAxNC45MzExIGMKMi4zMzMxNyAxMS44MzA4IG0KMS4zODk2OCAxMi4yNDk5IDEuMjQ0OTYgMTMuMTQ0NSAxLjQzNjk5IDE0LjA4MiBjCjEuNzQ1OTIgMTUuNTkxMiAyLjk1MjQzIDE3LjY5MjkgMy44ODIgMTguNjkxMSBjCjUuMjczNTggMjAuMTcyMiA2Ljk0MzQ4IDIxLjI3ODYgOC45MDcgMjEuNzIxNCBjCjEwLjUxMTUgMjIuMDgyOCAxMi4yNzA1IDIyLjA5MTcgMTMuMjMwNiAyMS43NTI2IGMKMTQuNjIyMiAyMS4yNjA4IDE0Ljg2MDIgMTguNDY5IDEyLjU1NDMgMTguNDI5IGMKMTIuMTgyOCAxOC40MjkgMTEuNzY2NyAxOC40NTU3IDExLjMyNTYgMTguNDc0OSBjCjEwLjQzMzYgMTguNTEwNiA5LjU0Mzg2IDE4LjM1NzYgOC43MDc4MyAxOC4wMjQ4IGMKNy44NzE3OSAxNy42OTIgNy4xMDYwOSAxNy4xODYxIDYuNDU1MDMgMTYuNTM2MiBjCjUuOTE0IDE2LjAxNCA1LjQ3MTA1IDE1LjM4NzMgNS4xNDk3MyAxNC42ODkzIGMKNC45NDYyMSAxNC4yNDk0IDQuNzY1NSAxMy43OTggNC42MDg0MSAxMy4zMzcgYwo0LjUyNjMgMTMuMDczNCA0LjUzODgzIDEyLjgxODYgNC4zODAxOSAxMi41NDAyIGMKNC4xNzI0MyAxMi4xODQgMy44NTMwMiAxMS45MTc0IDMuNDc4NDMgMTEuNzg3NSBjCjMuMTAzODQgMTEuNjU3NyAyLjY5ODE4IDExLjY3MyAyLjMzMzE3IDExLjgzMDggYwpoCjAuMzA5ODA0IDAuOCAwLjkyOTQxMiByZwovYTEuMCBncwoxIHcKMCBKCjAgago0IE0KZioKUQpxCjAgMCBtCjguOTg0NzMgNy4wMzcxMSBtCjkuNDgyNjggNy4wMzY4MiA5Ljk2OTUyIDcuMTkzNzEgMTAuMzgzNyA3LjQ4NzkzIGMKMTAuNzk3OCA3Ljc4MjE2IDExLjEyMDcgOC4yMDA1IDExLjMxMTUgOC42OTAwNSBjCjExLjUwMjIgOS4xNzk2IDExLjU1MjMgOS43MTgzNiAxMS40NTUzIDEwLjIzODIgYwoxMS4zNTgzIDEwLjc1OCAxMS4xMTg3IDExLjIzNTYgMTAuNzY2NyAxMS42MTA0IGMKMTAuNDE0NyAxMS45ODUzIDkuOTY2MTEgMTIuMjQwNiA5LjQ3Nzc1IDEyLjM0NDEgYwo4Ljk4OTM5IDEyLjQ0NzYgOC40ODMxNiAxMi4zOTQ2IDguMDIzMDkgMTIuMTkxOSBjCjcuNTYzMDEgMTEuOTg5MSA3LjE2OTc3IDExLjY0NTcgNi44OTMxIDExLjIwNTEgYwo2LjYxNjQzIDEwLjc2NDQgNi40Njg3NSAxMC4yNDY0IDYuNDY4NzUgOS43MTYzOSBjCjYuNDY4NzUgOS4wMDYwNiA2LjczMzc4IDguMzI0OCA3LjIwNTU4IDcuODIyMzggYwo3LjY3NzM4IDcuMzE5OTYgOC4zMTczMiA3LjAzNzUgOC45ODQ3MyA3LjAzNzExIGMKaAo2LjUxMDk2IDAgbQo2Ljg5OTAzIDAgNy4yNzgzOSAwLjEyMjQ3OSA3LjYwMTA2IDAuMzUxOTQ4IGMKNy45MjM3MyAwLjU4MTQxNiA4LjE3NTIyIDAuOTA3NTY4IDguMzIzNzMgMS4yODkxNiBjCjguNDcyMjQgMS42NzA3NSA4LjUxMTA5IDIuMDkwNjUgOC40MzUzOSAyLjQ5NTc0IGMKOC4zNTk2OCAyLjkwMDg0IDguMTcyOCAzLjI3Mjk1IDcuODk4MzkgMy41NjUgYwo3LjYyMzk4IDMuODU3MDYgNy4yNzQzNyA0LjA1NTk2IDYuODkzNzUgNC4xMzY1NCBjCjYuNTEzMTMgNC4yMTcxMSA2LjExODYyIDQuMTc1NzYgNS43NjAwOCA0LjAxNzcgYwo1LjQwMTU1IDMuODU5NjQgNS4wOTUxMSAzLjU5MTk3IDQuODc5NTEgMy4yNDg1NCBjCjQuNjYzOTEgMi45MDUxMiA0LjU0ODgzIDIuNTAxMzYgNC41NDg4MyAyLjA4ODMzIGMKNC41NDg4MyAxLjUzNDQ3IDQuNzU1NTUgMS4wMDMzIDUuMTIzNTIgMC42MTE2NTcgYwo1LjQ5MTQ5IDAuMjIwMDE5IDUuOTkwNTcgMCA2LjUxMDk2IDAgYwpoCjEuMjI1OTggMi4zMzg5IG0KMS40NzA1MiAyLjMzNzE0IDEuNzEwMDQgMi40MTI3MyAxLjkxNDE1IDIuNTU2MDcgYwoyLjExODI2IDIuNjk5NDIgMi4yNzc3NiAyLjkwNDA2IDIuMzcyNDMgMy4xNDQwMyBjCjIuNDY3MDkgMy4zODQwMSAyLjQ5MjY1IDMuNjQ4NTEgMi40NDU4NiAzLjkwMzk3IGMKMi4zOTkwNiA0LjE1OTQzIDIuMjgyMDMgNC4zOTQzNCAyLjEwOTYgNC41Nzg5IGMKMS45MzcxOCA0Ljc2MzQ2IDEuNzE3MTMgNC44ODkzNSAxLjQ3NzM3IDQuOTQwNiBjCjEuMjM3NjIgNC45OTE4NCAwLjk4ODk2NSA0Ljk2NjE0IDAuNzYyOTU3IDQuODY2NzQgYwowLjUzNjk1IDQuNzY3MzUgMC4zNDM3NzUgNC41OTg3NSAwLjIwNzkzOSA0LjM4MjMyIGMKMC4wNzIxMDQgNC4xNjU5IC0wLjAwMDI2OSAzLjkxMTQxIDAuMDAwMDAxIDMuNjUxMTQgYwowLjAwMDAwMSAzLjMwMzExIDAuMTI5ODk5IDIuOTY5MzQgMC4zNjExMjEgMi43MjMyNSBjCjAuNTkyMzQyIDIuNDc3MTUgMC45MDU5NDUgMi4zMzg5IDEuMjMyOTQgMi4zMzg5IGMKMC4zMDk4MDQgMC44IDAuOTI5NDEyIHJnCi9hMS4wIGdzCjEgdwowIEoKMCBqCjQgTQpmKgpRCnEKMCAwIG0KNjEuODg4OSAxNC4xMDg0IG0KNjEuNDI5IDE0LjExNzcgNjAuOTY5NyAxNC4wNjggNjAuNTIxIDEzLjk2MDMgYwo2MC4xOTcyIDEzLjg4NTkgNTkuODk2MiAxMy43MjYgNTkuNjQ1NyAxMy40OTUyIGMKNTkuNDE5MiAxMy4yNjc4IDU5LjI1OCAxMi45NzY2IDU5LjE4MDkgMTIuNjU1NCBjCjU5LjA4MDYgMTIuMjM5IDU5LjAzMzcgMTEuODEgNTkuMDQxOCAxMS4zODAyIGMKNTkuMDQxOCA4Ljg4NjA4IGwKNTkuMDM0NSA4LjQ1ODI1IDU5LjA4MTMgOC4wMzEzMyA1OS4xODA5IDcuNjE2NzkgYwo1OS4yNTcgNy4yOTM5NiA1OS40MTgzIDcuMDAxMDMgNTkuNjQ1NyA2Ljc3MjU3IGMKNTkuODk2MiA2LjU0MTgxIDYwLjE5NzIgNi4zODE4NyA2MC41MjEgNi4zMDc1MSBjCjYwLjk2OTcgNi4xOTk3NCA2MS40MjkgNi4xNTAwMSA2MS44ODg5IDYuMTU5NCBjCjY3LjA2NTYgNi4xNTk0IGwKNjcuMDY1NiA3LjY4NjQgbAo2MS45NjU1IDcuNjg2NCBsCjYxLjc1NDIgNy42ODE0NiA2MS41NDMxIDcuNzAyODMgNjEuMzM2NSA3Ljc1MDA4IGMKNjEuMTkwOSA3Ljc4MjI2IDYxLjA1NjYgNy44NTY1NyA2MC45NDgyIDcuOTY0ODQgYwo2MC44NDc4IDguMDc2NDYgNjAuNzc5MiA4LjIxNjE4IDYwLjc1MDYgOC4zNjc3IGMKNjAuNzExMiA4LjU2ODMxIDYwLjY5MyA4Ljc3Mjk5IDYwLjY5NjQgOC45Nzc5IGMKNjAuNjk2NCAxMS4zMDc3IGwKNjAuNjkyNSAxMS41MTUgNjAuNzEwNyAxMS43MjIyIDYwLjc1MDYgMTEuOTI1MyBjCjYwLjc4MDIgMTIuMDc0MyA2MC44NDg3IDEyLjIxMTMgNjAuOTQ4MiAxMi4zMjA3IGMKNjEuMDU3NSAxMi40MzAxIDYxLjE5NDMgMTIuNTAzMiA2MS4zNDIgMTIuNTMxIGMKNjEuNTUxMSAxMi41NzM1IDYxLjc2MzggMTIuNTkyOCA2MS45NzY2IDEyLjU4ODggYwo2Ny4wNjU2IDEyLjU4ODggbAo2Ny4wNjU2IDE0LjEwMjUgbAo2MS44ODg5IDE0LjEwODQgbApoCjUyLjgxNzIgMTQuMTA4NCBtCjUyLjM1NzMgMTQuMTE3NyA1MS44OTggMTQuMDY4IDUxLjQ0OTMgMTMuOTYwMyBjCjUxLjEyNTUgMTMuODg1OSA1MC44MjQ0IDEzLjcyNiA1MC41NzQgMTMuNDk1MiBjCjUwLjM0NzUgMTMuMjY3OCA1MC4xODYzIDEyLjk3NjYgNTAuMTA5MiAxMi42NTU0IGMKNTAuMDA4OCAxMi4yMzkgNDkuOTYyIDExLjgxIDQ5Ljk3IDExLjM4MDIgYwo0OS45NyA4Ljg4NjA4IGwKNDkuOTYyOCA4LjQ1ODI1IDUwLjAwOTYgOC4wMzEzMyA1MC4xMDkyIDcuNjE2NzkgYwo1MC4xODUzIDcuMjkzOTYgNTAuMzQ2NiA3LjAwMTAzIDUwLjU3NCA2Ljc3MjU3IGMKNTAuODI0NCA2LjU0MTgxIDUxLjEyNTUgNi4zODE4NyA1MS40NDkzIDYuMzA3NTEgYwo1MS44OTggNi4xOTk3NCA1Mi4zNTczIDYuMTUwMDEgNTIuODE3MiA2LjE1OTQgYwo1NC42NTU1IDYuMTU5NCBsCjU0LjY1NTUgNy42NjI3IGwKNTIuODE3MiA3LjY2MjcgbAo1Mi42MTg4IDcuNjU3NjEgNTIuNDIwNiA3LjY3OTAxIDUyLjIyNzIgNy43MjYzOSBjCjUyLjA5MDMgNy43NTk4MiA1MS45NjM4IDcuODMwMjEgNTEuODU5OCA3LjkzMDc4IGMKNTEuNzY0NiA4LjAzMjQ0IDUxLjY5OTcgOC4xNjE3NyA1MS42NzMzIDguMzAyNTMgYwo1MS42Mzg3IDguNDk0NzggNTEuNjIzMyA4LjY5MDM4IDUxLjYyNzQgOC44ODYwOCBjCjUxLjYyNzQgOS40MjIyMyBsCjU3Ljk4NTUgOS40MjIyMyBsCjU3Ljk4NTUgMTAuODMyMiBsCjUxLjYyNzQgMTAuODMyMiBsCjUxLjYyNzQgMTEuMzkwNiBsCjUxLjYyNDEgMTEuNTg5MyA1MS42NDA0IDExLjc4NzkgNTEuNjc2MSAxMS45ODMgYwo1MS43MDE4IDEyLjEyMzIgNTEuNzY0NSAxMi4yNTI3IDUxLjg1NyAxMi4zNTYzIGMKNTEuOTU5MiAxMi40NTcyIDUyLjA4NjkgMTIuNTI0MSA1Mi4yMjQ0IDEyLjU0ODggYwo1Mi40MjA5IDEyLjU4NjggNTIuNjIwMyAxMi42MDQyIDUyLjgyIDEyLjYwMDYgYwo1OC4wMjg3IDEyLjYwMDYgbAo1OC4wMjg3IDE0LjEwMjUgbAo1Mi44MTcyIDE0LjEwODQgbApoCjQ0LjM1OTIgMTQuMTA4NCBtCjQ0LjM1OTIgNy42OTIzMiBsCjQxLjIyOTUgNy42OTIzMiBsCjQxLjIyOTUgNi4xNjUzMiBsCjQ5LjE2MTUgNi4xNjUzMiBsCjQ5LjE2MTUgNy42OTIzMiBsCjQ2LjAzMzMgNy42OTIzMiBsCjQ2LjAzMzMgMTQuMTA4NCBsCjQ0LjM1OTIgMTQuMTA4NCBsCmgKMzQuMzM5OCA2LjE2NTMyIG0KMzYuMDA5NyA2LjE2NTMyIGwKMzYuMDA5NyAxNC4xMDg0IGwKMzQuMzM5OCAxNC4xMDg0IGwKMzQuMzM5OCA2LjE2NTMyIGwKaAozMS40MyA4Ljk3OTM5IG0KMzEuNDM0IDguNzcyMDkgMzEuNDEzNCA4LjU2NTA4IDMxLjM2ODggOC4zNjMyNSBjCjMxLjMzNjMgOC4yMTQwNCAzMS4yNjY2IDguMDc2OTEgMzEuMTY3IDcuOTY2MzIgYwozMS4wNTkyIDcuODU4MzUgMzAuOTI0NCA3Ljc4NTgzIDMwLjc3ODcgNy43NTc0OSBjCjMwLjU3ODUgNy43MTU0IDMwLjM3NDcgNy42OTYwMyAzMC4xNzA2IDcuNjk5NzMgYwoyNy40ODQ5IDcuNjk5NzMgbAoyNy4yNzAyIDcuNjk1MDkgMjcuMDU1NiA3LjcxNDQ1IDI2Ljg0NDcgNy43NTc0OSBjCjI2LjY5OTEgNy43ODU4MyAyNi41NjQzIDcuODU4MzUgMjYuNDU2NSA3Ljk2NjMyIGMKMjYuMzU3OSA4LjA3NjIxIDI2LjI5MTIgOC4yMTQwMyAyNi4yNjQ1IDguMzYzMjUgYwoyNi4yMjg5IDguNTY2MzggMjYuMjEyNSA4Ljc3Mjc5IDI2LjIxNTcgOC45NzkzOSBjCjI2LjIxNTcgMTEuMDA3IGwKMjYuMjEyOCAxMS4yNjc4IDI2LjIyNTQgMTEuNTI4NCAyNi4yNTMzIDExLjc4NzUgYwoyNi4yNjg3IDExLjk1OTggMjYuMzI3NCAxMi4xMjQ1IDI2LjQyMzEgMTIuMjY0NCBjCjI2LjUyMTYgMTIuMzg3NyAyNi42NTY1IDEyLjQ3MTggMjYuODA1OCAxMi41MDI5IGMKMjcuMDI5MSAxMi41NTE4IDI3LjI1NjkgMTIuNTczNiAyNy40ODQ5IDEyLjU2ODEgYwozMC4xNzYyIDEyLjU2ODEgbAozMC4zOCAxMi41NzE1IDMwLjU4MzcgMTIuNTUzNiAzMC43ODQzIDEyLjUxNDcgYwozMC45Mjg1IDEyLjQ5NDEgMzEuMDYzIDEyLjQyNTggMzEuMTY4OCAxMi4zMTk1IGMKMzEuMjc0NyAxMi4yMTMyIDMxLjM0NjUgMTIuMDc0MyAzMS4zNzQzIDExLjkyMjMgYwozMS40MTkxIDExLjcxNDUgMzEuNDM5NyAxMS41MDE2IDMxLjQzNTYgMTEuMjg4NCBjCjMxLjQzIDguOTc5MzkgbApoCjMxLjYxMDkgMTUuMjU0NyBtCjMwLjUzOCAxNC4wMzE0IGwKMjcuNDEzOSAxNC4wMzE0IGwKMjYuOTUxIDE0LjA0MDcgMjYuNDg4NiAxMy45OTYgMjYuMDM0OCAxMy44OTgxIGMKMjUuNzEyMSAxMy44MzIzIDI1LjQxMDcgMTMuNjc5MyAyNS4xNTk1IDEzLjQ1MzcgYwoyNC45MzMzIDEzLjIzMTQgMjQuNzcyIDEyLjk0NDUgMjQuNjk0OCAxMi42MjczIGMKMjQuNTk0MyAxMi4yMTI5IDI0LjU0NzQgMTEuNzg1OSAyNC41NTU2IDExLjM1OCBjCjI0LjU1NTYgOC44ODYwOCBsCjI0LjU0ODMgOC40NTgyNSAyNC41OTUxIDguMDMxMzMgMjQuNjk0OCA3LjYxNjc5IGMKMjQuNzcwOSA3LjI5Mzk2IDI0LjkzMjEgNy4wMDEwMyAyNS4xNTk1IDYuNzcyNTcgYwoyNS40MSA2LjU0MTgxIDI1LjcxMSA2LjM4MTg3IDI2LjAzNDggNi4zMDc1MSBjCjI2LjQ4NzMgNi4xOTk0MSAyNi45NTAzIDYuMTQ5NjggMjcuNDEzOSA2LjE1OTQgYwozMC4yNDg2IDYuMTU5NCBsCjMwLjcxMTcgNi4xNDk2NyAzMS4xNzQzIDYuMTk5NCAzMS42MjYyIDYuMzA3NTEgYwozMS45NTAxIDYuMzgxNTcgMzIuMjUxMiA2LjU0MTU0IDMyLjUwMTUgNi43NzI1NyBjCjMyLjcyOTQgNy4wMDA4OSAzMi44OTExIDcuMjkzODIgMzIuOTY3NyA3LjYxNjc5IGMKMzMuMDY2NiA4LjAzMTQ3IDMzLjExMzQgOC40NTgyOSAzMy4xMDY5IDguODg2MDggYwozMy4xMDY5IDExLjM0NDcgbAozMy4xMjAzIDExLjgyNzkgMzMuMDU3MyAxMi4zMSAzMi45MjA0IDEyLjc3MSBjCjMyLjgwMjIgMTMuMTMyNCAzMi41NjU1IDEzLjQzNjMgMzIuMjUzOCAxMy42MjcgYwozMy42NTY1IDE1LjI1NDcgbAozMS42MTA5IDE1LjI1NDcgbApoCjc1LjM0NzUgMTIuMTU5OCBtCjc1LjM0NzUgMTAuOTYwMSBsCjY5Ljg3NTggMTAuOTYwMSBsCjY5Ljg3NTggMTQuMTI4MSBsCjY4LjIxMjkgMTQuMTI4MSBsCjY4LjIxMjkgNi4xODM1OSBsCjY5Ljg3NTggNi4xODM1OSBsCjY5Ljg3NTggOS40MjI3MyBsCjc1LjM0NzUgOS40MjI3MyBsCjc1LjM0NzUgNi4xODM1OSBsCjc2Ljk5OTMgNi4xODM1OSBsCjc2Ljk5OTMgMTIuMTU5OCBsCjc1LjM0NzUgMTIuMTU5OCBsCmgKNzYuOTk5OCAxMi42ODg1IG0KNzUuMzUzNSAxMi42ODg1IGwKNzUuMzUzNSAxNC4xNTE4IGwKNzYuOTk5OCAxNC4xNTE4IGwKNzYuOTk5OCAxMi42ODg1IGwKaAowLjMwOTgwNCAwLjggMC45Mjk0MTIgcmcKL2ExLjAgZ3MKMSB3CjAgSgowIGoKNCBNCmYKUQoxIHcKMCBKCjAgago0IE0KbgpRClEKUQpRClEKcQpxCjM3NC44NTAzOTQgMTMzLjY5NTMxMiA0NCA0NCByZQpXCm4KcQovYTEgZ3MKMSAwIDAgMSAzNzQuODUwMzk0IDEzMy42OTUzMTIgY20KcQpxCjEgMCAwIDEgMCAwIGNtCjEgMCAwIDEgMCAwIGNtCnEKNDMuMiAyMS42IG0KNDMuMiAzMy43ODY0OTUgMzMuNzg2NDk1IDQzLjIgMjEuNiA0My4yIGMKOS40MTM1MDUgNDMuMiAwIDMzLjc4NjQ5NSAwIDIxLjYgYwowIDkuNDEzNTA1IDkuNDEzNTA1IDAgMjEuNiAwIGMKMzMuNzg2NDk1IDAgNDMuMiA5LjQxMzUwNSA0My4yIDIxLjYgYwpoCjEgMC4yNTA5OCAwLjUwMTk2MSByZwovYTEuMCBncwoxIHcKMCBKCjAgago0IE0KZgpRCnEKMCAwIG0KMjIuNjk1IDIwLjU4NSBtCjIwLjUwNSAyMC41ODUgbAoxOS4yNjA4MjggMjAuNTg3MjE3IDE4LjI0OTUxMSAxOS41ODIxNjIgMTguMjQ0IDE4LjMzOCBjCjE4LjI1MDA2IDE3LjA5NDIyOSAxOS4yNjEyMTYgMTYuMDg5NzgxIDIwLjUwNSAxNi4wOTIgYwoyNC44ODQgMTYuMDkyIGwKMjUuNDQ4IDE2LjA5MiAyNS45MDUgMTUuNjM3IDI1LjkwNSAxNS4wNzcgYwoyNS45MDUgMTQuNTE3IDI1LjQ0OCAxNC4wNjIgMjQuODg0IDE0LjA2MiBjCjIyLjYyMiAxNC4wNjIgbAoyMi42MjIgMTEuODE1IGwKMjIuNjIyIDExLjI1NSAyMi4xNjQgMTAuOCAyMS42IDEwLjggYwoyMS4wMzYgMTAuOCAyMC41NzggMTEuMjU0IDIwLjU3OCAxMS44MTUgYwoyMC41NzggMTQuMDYyIGwKMjAuNTA2IDE0LjA2MiBsCjE4LjEzMSAxNC4wNjIgMTYuMiAxNS45OCAxNi4yIDE4LjMzOCBjCjE2LjIgMjAuNjk2IDE4LjEzMSAyMi42MTUgMjAuNTA2IDIyLjYxNSBjCjIyLjY5NSAyMi42MTUgbAoyMy45MzkxNzIgMjIuNjEyNzgzIDI0Ljk1MDQ4OSAyMy42MTc4MzggMjQuOTU2IDI0Ljg2MiBjCjI0Ljk0OTk0IDI2LjEwNTc3MSAyMy45Mzg3ODQgMjcuMTEwMjE5IDIyLjY5NSAyNy4xMDggYwoxOC4zMTcgMjcuMTA4IGwKMTcuNzUyIDI3LjEwOCAxNy4yOTUgMjcuNTYzIDE3LjI5NSAyOC4xMjMgYwoxNy4yOTUgMjguNjgzIDE3Ljc1MiAyOS4xMzggMTguMzE2IDI5LjEzOCBjCjIwLjU3OCAyOS4xMzggbAoyMC41NzggMzEuMzg1IGwKMjAuNTc4IDMxLjk0NSAyMS4wMzYgMzIuNCAyMS42IDMyLjQgYwoyMi4xNjQgMzIuNCAyMi42MjIgMzEuOTQ2IDIyLjYyMiAzMS4zODUgYwoyMi42MjIgMjkuMTM4IGwKMjIuNjk1IDI5LjEzOCBsCjI1LjA2OSAyOS4xMzggMjcgMjcuMjIgMjcgMjQuODYyIGMKMjcgMjIuNTA0IDI1LjA2OSAyMC41ODUgMjIuNjk1IDIwLjU4NSBjCmgKMSAxIDEgcmcKL2ExLjAgZ3MKMSB3CjAgSgowIGoKNCBNCmYKUQoxIHcKMCBKCjAgago0IE0KbgpRClEKUQpRClEKcQpxCjAuNDExNzY1IDAuNDQ3MDU5IDAuNDkwMTk2IHJnCi9hMS4wIGdzCkJUCjEgMCAwIC0xIDM4NC43NzQyMjIgMjE0LjYyMzA0NyBUbQovT0NITlVQIDEyIFRmClsgPDAwMzcwMDI4MDAyNz4gXSBUSgpFVAowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKQlQKMSAwIDAgLTEgMzI4LjM1MDM5NCAyNjEuNTQ2ODc1IFRtCi9WQ0FUV1MgMzIgVGYKWyA8MDAzNTAwMDcwMDAzMDAxYjAwMGYwMDFiMDAxOT4gXSBUSgpFVApRClEKcQpxCjAgMjcyLjQ2ODc1IDc5My43MDA3ODcgNTU3IHJlClcKbgpxCjEgMSAxIHJnCi9hMS4wIGdzCjAgMjcyLjQ2ODc1IDc5My43MDA3ODcgNTU3IHJlClcKbgowIDI3Mi40Njg3NSA3OTMuNzAwNzg3IDU1NyByZQpmClEKUQpRCnEKcQpxCnEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTAuNyBncwpCVAoxIDAgMCAtMSA3NS41OTA1NTEgMzU4LjYyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMzEwMDUyMDA1MDAwNDg+IF0gVEoKRVQKUQpRCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2ExLjAgZ3MKQlQKMSAwIDAgLTEgMzk2Ljg1MDM5NCAzNjAuMTIzMDQ3IFRtCi9WQ0FUV1MgMTIgVGYKWyA8MDAzNDAwMmMwMDAzMDAzNjAwMjYwMDI3MDAwMzAwMzYwMDExMDAyND4gLTE4IDwwMDExPiBdIFRKCkVUClEKUQpRClEKcQpxCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2EwLjcgZ3MKQlQKMSAwIDAgLTEgNzUuNTkwNTUxIDM5Ny42MjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDI2MDAzMzAwMjkwMDEyMDAyNjAwMzEwMDMzMDAyZD4gXSBUSgpFVApRClEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTEuMCBncwpCVAoxIDAgMCAtMSAzOTYuODUwMzk0IDM5OS4xMjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDE2MDAxNTAwMTEwMDE3MDAxMzAwMTUwMDExMDAxODAwMTMwMDE1MDAxMjAwMTMwMDEzMDAxMzAwMTQwMDEwMDAxNjAwMTg+IF0gVEoKRVQKUQpRClEKUQpxCnEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTAuNyBncwpCVAoxIDAgMCAtMSA3NS41OTA1NTEgNDM2LjYyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMmMwMDUxMDA1NjAwNTcwMDRjMDA1NzAwNTgwMDRjMDBhOTAwYTUwMDUyMDAwMzAwMjkwMDRjMDA1MTAwNDQwMDUxMDA0NjAwNDgwMDRjMDA1NTAwNDQ+IF0gVEoKRVQKUQpRCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2ExLjAgZ3MKQlQKMSAwIDAgLTEgMzk2Ljg1MDM5NCA0MzguMTIzMDQ3IFRtCi9WQ0FUV1MgMTIgVGYKWyA8MDAzNDAwMmMwMDAzMDAzNjAwMzIwMDI2MDAyYzAwMjgwMDI3MDAyNDAwMjcwMDI4MDAwMzAwMjcwMDI4MDAwMzAwMjYwMDM1MDA4YjAwMjcwMDJjMDAzNzAwMzIwMDAzMDAyNzAwMmMwMDM1MDAyODAwMzcwMDMyMDAwMzAwMzYwMDExMDAyND4gLTE4IDwwMDExMDAwMzAwMGIwMDE2MDAxNTAwMWMwMDBjPiBdIFRKCkVUClEKUQpRClEKcQpxCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2EwLjcgZ3MKQlQKMSAwIDAgLTEgNzUuNTkwNTUxIDQ3NS42MjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDI0MDA0YTAwYWMwMDUxMDA0NjAwNGMwMDQ0PiBdIFRKCkVUClEKUQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMS4wIGdzCkJUCjEgMCAwIC0xIDM5Ni44NTAzOTQgNDc3LjEyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMTMwMDEzMDAxMzAwMTQ+IF0gVEoKRVQKUQpRClEKUQpxCnEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTAuNyBncwpCVAoxIDAgMCAtMSA3NS41OTA1NTEgNTE0LjYyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMjYwMDUyMDA1MTAwNTcwMDQ0PiBdIFRKCkVUClEKUQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMS4wIGdzCkJUCjEgMCAwIC0xIDM5Ni44NTAzOTQgNTE2LjEyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMTMwMDEzMDAxMzAwMTMwMDE0MDAxMDAwMWE+IF0gVEoKRVQKUQpRClEKUQpxCnEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTAuNyBncwpCVAoxIDAgMCAtMSA3NS41OTA1NTEgNjE3LjYyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMzEwMDUyMDA1MDAwNDgwMDAzMDA0NzAwNTIwMDAzMDAyNTAwNDgwMDUxMDA0ODEzYWUwMDQ2MDA0YzAwYTMwMDU1MDA0YzAwNTI+IF0gVEoKRVQKUQpRCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2ExLjAgZ3MKQlQKMSAwIDAgLTEgMzk2Ljg1MDM5NCA2MTkuMTIzMDQ3IFRtCi9WQ0FUV1MgMTIgVGYKWyA8MDAzNzAwNGMwMDU3MDA1ODAwNGYwMDQ0MDA1NTAwMDMwMDQ3MDA0NDAwMDMwMDI2MDA1MjAwNTEwMDU3MDA0ND4gXSBUSgpFVApRClEKUQpRCnEKcQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMC43IGdzCkJUCjEgMCAwIC0xIDc1LjU5MDU1MSA2NTYuNjIzMDQ3IFRtCi9WQ0FUV1MgMTIgVGYKWyA8MDAyNjAwMzMwMDI5MDAxMjAwMjYwMDMxMDAzMzAwMmQ+IF0gVEoKRVQKUQpRCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2ExLjAgZ3MKQlQKMSAwIDAgLTEgMzk2Ljg1MDM5NCA2NTguMTIzMDQ3IFRtCi9WQ0FUV1MgMTIgVGYKWyA8MDAxNTAwMTYwMDExMDAxODAwMWMwMDFjMDAxMTAwMWIwMDFiMDAxODAwMTIwMDEzMDAxMzAwMTMwMDE0MDAxMDAwMWMwMDE1PiBdIFRKCkVUClEKUQpRClEKcQpxCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2EwLjcgZ3MKQlQKMSAwIDAgLTEgNzUuNTkwNTUxIDY5NS42MjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDJjMDA1MTAwNTYwMDU3MDA0YzAwNTcwMDU4MDA0YzAwYTkwMGE1MDA1MjAwMDMwMDI5MDA0YzAwNTEwMDQ0MDA1MTAwNDYwMDQ4MDA0YzAwNTUwMDQ0PiBdIFRKCkVUClEKUQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMS4wIGdzCkJUCjEgMCAwIC0xIDM5Ni44NTAzOTQgNjk3LjEyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMjUwMDI2MDAzMjAwMDMwMDI3MDAzMjAwMDMwMDI1MDAzNTAwMjQwMDM2MDAyYzAwMmYwMDAzMDAzNjAwMTEwMDI0PiAtMTggPDAwMTEwMDAzMDAwYjAwMTMwMDEzMDAxNDAwMGM+IF0gVEoKRVQKUQpRClEKUQpxCnEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTAuNyBncwpCVAoxIDAgMCAtMSA3NS41OTA1NTEgNzM0LjYyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMjQwMDRhMDBhYzAwNTEwMDQ2MDA0YzAwNDQ+IF0gVEoKRVQKUQpRCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2ExLjAgZ3MKQlQKMSAwIDAgLTEgMzk2Ljg1MDM5NCA3MzYuMTIzMDQ3IFRtCi9WQ0FUV1MgMTIgVGYKWyA8MDAxMzAwMTMwMDEzMDAxND4gXSBUSgpFVApRClEKUQpRCnEKcQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMC43IGdzCkJUCjEgMCAwIC0xIDc1LjU5MDU1MSA3NzMuNjIzMDQ3IFRtCi9WQ0FUV1MgMTIgVGYKWyA8MDAyNjAwNTIwMDUxMDA1NzAwNDQ+IF0gVEoKRVQKUQpRCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2ExLjAgZ3MKQlQKMSAwIDAgLTEgMzk2Ljg1MDM5NCA3NzUuMTIzMDQ3IFRtCi9WQ0FUV1MgMTIgVGYKWyA8MDAxYzAwMTUwMDFhMDAxYzAwMTkwMDEwMDAxND4gXSBUSgpFVApRClEKUQpRCnEKcQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMC43IGdzCkJUCjEgMCAwIC0xIDc1LjU5MDU1MSA4MTIuNjIzMDQ3IFRtCi9WQ0FUV1MgMTIgVGYKWyA8MDAzNzAwNGMwMDUzMDA1MjAwMDMwMDQ3MDA0NDAwMDMwMDI2MDA1MjAwNTEwMDU3MDA0ND4gXSBUSgpFVApRClEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTEuMCBncwpCVAoxIDAgMCAtMSAzOTYuODUwMzk0IDgxNC4xMjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDI2MDA1MjAwNTEwMDU3MDA0NDAwMDMwMDI2MDA1MjAwNTUwMDU1MDA0ODAwNTEwMDU3MDA0OD4gXSBUSgpFVApRClEKUQpRClEKUQpxCnEKMCAxMDI1LjUxOTY4NSA3OTMuNzAwNzg3IDk3IHJlClcKbgpxCjAuOTQ5MDIgMC45NTY4NjMgMC45ODgyMzUgcmcKL2ExLjAgZ3MKMCAxMDI1LjUxOTY4NSA3OTMuNzAwNzg3IDk3IHJlClcKbgowIDEwMjUuNTE5Njg1IDc5My43MDA3ODcgOTcgcmUKZgpRClEKcQo3OTMuNzAwNzg3IDEwMjUuNTE5Njg1IG0KMCAxMDI1LjUxOTY4NSBsCjAgMTAyNi41MTk2ODUgbAo3OTMuNzAwNzg3IDEwMjYuNTE5Njg1IGwKVyoKbgowIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNS45OTAxOTUgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoxMS45ODAzODkgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoxNy45NzA1ODQgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyMy45NjA3NzggMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyOS45NTA5NzMgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQozNS45NDExNjggMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo0MS45MzEzNjIgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo0Ny45MjE1NTcgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo1My45MTE3NTIgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo1OS45MDE5NDYgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo2NS44OTIxNDEgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo3MS44ODIzMzUgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo3Ny44NzI1MyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjgzLjg2MjcyNSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjg5Ljg1MjkxOSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjk1Ljg0MzExNCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjEwMS44MzMzMDkgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoxMDcuODIzNTAzIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMTEzLjgxMzY5OCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjExOS44MDM4OTIgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoxMjUuNzk0MDg3IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMTMxLjc4NDI4MiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjEzNy43NzQ0NzYgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoxNDMuNzY0NjcxIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMTQ5Ljc1NDg2NiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjE1NS43NDUwNiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjE2MS43MzUyNTUgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoxNjcuNzI1NDQ5IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMTczLjcxNTY0NCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjE3OS43MDU4MzkgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoxODUuNjk2MDMzIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMTkxLjY4NjIyOCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjE5Ny42NzY0MjMgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyMDMuNjY2NjE3IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMjA5LjY1NjgxMiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjIxNS42NDcwMDYgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyMjEuNjM3MjAxIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMjI3LjYyNzM5NiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjIzMy42MTc1OSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjIzOS42MDc3ODUgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyNDUuNTk3OTc5IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMjUxLjU4ODE3NCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjI1Ny41NzgzNjkgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyNjMuNTY4NTYzIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMjY5LjU1ODc1OCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjI3NS41NDg5NTMgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyODEuNTM5MTQ3IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMjg3LjUyOTM0MiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjI5My41MTk1MzYgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyOTkuNTA5NzMxIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMzA1LjQ5OTkyNiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjMxMS40OTAxMiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjMxNy40ODAzMTUgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQozMjMuNDcwNTEgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQozMjkuNDYwNzA0IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMzM1LjQ1MDg5OSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjM0MS40NDEwOTMgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQozNDcuNDMxMjg4IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMzUzLjQyMTQ4MyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjM1OS40MTE2NzcgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQozNjUuNDAxODcyIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMzcxLjM5MjA2NyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjM3Ny4zODIyNjEgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQozODMuMzcyNDU2IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMzg5LjM2MjY1IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMzk1LjM1Mjg0NSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjQwMS4zNDMwNCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjQwNy4zMzMyMzQgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo0MTMuMzIzNDI5IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNDE5LjMxMzYyNCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjQyNS4zMDM4MTggMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo0MzEuMjk0MDEzIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNDM3LjI4NDIwNyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjQ0My4yNzQ0MDIgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo0NDkuMjY0NTk3IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNDU1LjI1NDc5MSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjQ2MS4yNDQ5ODYgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo0NjcuMjM1MTgxIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNDczLjIyNTM3NSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjQ3OS4yMTU1NyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjQ4NS4yMDU3NjQgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo0OTEuMTk1OTU5IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNDk3LjE4NjE1NCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjUwMy4xNzYzNDggMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo1MDkuMTY2NTQzIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNTE1LjE1NjczNyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjUyMS4xNDY5MzIgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo1MjcuMTM3MTI3IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNTMzLjEyNzMyMSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjUzOS4xMTc1MTYgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo1NDUuMTA3NzExIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNTUxLjA5NzkwNSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjU1Ny4wODgxIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNTYzLjA3ODI5NCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjU2OS4wNjg0ODkgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo1NzUuMDU4Njg0IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNTgxLjA0ODg3OCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjU4Ny4wMzkwNzMgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo1OTMuMDI5MjY4IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNTk5LjAxOTQ2MiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjYwNS4wMDk2NTcgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo2MTAuOTk5ODUxIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNjE2Ljk5MDA0NiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjYyMi45ODAyNDEgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo2MjguOTcwNDM1IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNjM0Ljk2MDYzIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNjQwLjk1MDgyNSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjY0Ni45NDEwMTkgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo2NTIuOTMxMjE0IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNjU4LjkyMTQwOCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjY2NC45MTE2MDMgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo2NzAuOTAxNzk4IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNjc2Ljg5MTk5MiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjY4Mi44ODIxODcgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo2ODguODcyMzgyIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNjk0Ljg2MjU3NiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjcwMC44NTI3NzEgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo3MDYuODQyOTY1IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNzEyLjgzMzE2IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNzE4LjgyMzM1NSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjcyNC44MTM1NDkgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo3MzAuODAzNzQ0IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNzM2Ljc5MzkzOCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjc0Mi43ODQxMzMgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo3NDguNzc0MzI4IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNzU0Ljc2NDUyMiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjc2MC43NTQ3MTcgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo3NjYuNzQ0OTEyIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNzcyLjczNTEwNiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjc3OC43MjUzMDEgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo3ODQuNzE1NDk1IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNzkwLjcwNTY5IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKVyoKbgowLjA5ODAzOSAwLjE0MTE3NiAwLjQ5NDExOCByZwovYTEuMCBncwowIDEwMjYuNTE5Njg1IDc5My43MDA3ODcgOTYgcmUKMCAxMDI1LjUxOTY4NSA3OTMuNzAwNzg3IDk3IHJlCmYqClEKUQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMC43IGdzCkJUCjEgMCAwIC0xIDMyNS43NTI3MzcgMTA1Ny42NzM5ODIgVG0KL09DSE5VUCAxMiBUZgpbIDwwMDI2MDBiNTAwNDcwMDRjMDA0YTAwNTIwMDAzMDA0NzAwNDgwMDAzMDA0NDAwNTgwMDU3MDA0ODAwNTEwMDU3MDA0YzAwNDYwMDQ0MDBhOTAwYTUwMDUyMDAwMz4gXSBUSgpFVAovYTEuMCBncwpCVAoxIDAgMCAtMSAyNjkuMDc3OTMzIDEwNzEuNjczOTgyIFRtCi9PQ0hOVVAgMTIgVGYKWyA8MDAxOTAwMTQwMDE5MDA0NTAwMWMwMDE4MDAxMzAwNDQwMDEwMDAxOTAwMTMwMDQ2MDAxNzAwMTAwMDE3MDAxNDAwMWIwMDEzMDAxMDAwNDUwMDQ2MDA0ODAwMTYwMDEwMDA0NTAwNDYwMDQ2MDA0NDAwNDcwMDE4MDAxNjAwMTYwMDQ2MDAxNjAwMTUwMDQ1PiBdIFRKCkVUCi9hMC43IGdzCkJUCjEgMCAwIC0xIDI5MC42Mjg3MTQgMTA5NS42NzM5ODIgVG0KL09DSE5VUCAxMiBUZgpbIDwwMDM0MDA0YzAwMDMwMDM2MDA1MjAwNDYwMDRjMDA0ODAwNDcwMDQ0MDA0NzAwNDgwMDAzMDA0NzAwNDgwMDAzMDAyNjAwNTU+IDIxIDwwMDQ4MDA0NzAwNGMwMDU3MDA1MjAwMDMwMDI3MDA0YzAwNTU+IDIxIDwwMDQ4MDA1NzAwNTIwMDAzMDAzNjAwMTEwMDI0PiAxNyA8MDAxMT4gXSBUSgoxIDAgMCAtMSAzMTkuNDMzNDAyIDExMDkuNjczOTgyIFRtClsgPDAwMjYwMDMxMDAzMzAwMmQwMDAzMDAxNjAwMTUwMDExMDAxNzAwMTMwMDE1MDAxMTAwMTgwMDEzMDAxNTAwMTIwMDEzMDAxMzAwMTMwMDE0MDAxMDAwMTgwMDFjPiBdIFRKCkVUClEKUQpxCnEKcQpxCjc1LjU5MDU1MSAyOTQuNDY4NzUgNjUgOSByZQpXCm4KcQoxIDAuOTA1ODgyIDAuOTM3MjU1IHJnCi9hMS4wIGdzCjc1LjU5MDU1MSAyOTQuNDY4NzUgNjUgOSByZQpXCm4KNzUuNTkwNTUxIDI5NC40Njg3NSA2NSA5IHJlCmYKUQpRClEKMC4wOTgwMzkgMC4xNDExNzYgMC40OTQxMTggcmcKL2ExLjAgZ3MKQlQKMSAwIDAgLTEgNzUuNTkwNTUxIDI5OS4wMDc4MTIgVG0KL1ZDQVRXUyAxNiBUZgpbIDwwMDMyMDA1NTAwNGMwMDRhMDA0OD4gXSBUSgoxIDAgMCAtMSA3NS41OTA1NTEgMzIxLjAwNzgxMiBUbQpbIDwwMDUwPiBdIFRKCkVUClEKUQpxCnEKcQpxCjc1LjU5MDU1MSA1NTMuNDY4NzUgNjUgOSByZQpXCm4KcQoxIDAuOTA1ODgyIDAuOTM3MjU1IHJnCi9hMS4wIGdzCjc1LjU5MDU1MSA1NTMuNDY4NzUgNjUgOSByZQpXCm4KNzUuNTkwNTUxIDU1My40Njg3NSA2NSA5IHJlCmYKUQpRClEKMC4wOTgwMzkgMC4xNDExNzYgMC40OTQxMTggcmcKL2ExLjAgZ3MKQlQKMSAwIDAgLTEgNzUuNTkwNTUxIDU1OC4wMDc4MTIgVG0KL1ZDQVRXUyAxNiBUZgpbIDwwMDI3MDA0ODAwNTYwMDU3MDA0YzAwNTE+IF0gVEoKMSAwIDAgLTEgNzUuNTkwNTUxIDU4MC4wMDc4MTIgVG0KWyA8MDA1Mj4gXSBUSgpFVApRClEKUQpRClEKUQpRClEKcQowIDAgNTk1LjMwMzkzNzAwNzg3NCA4NDEuODg5NzYzNzc5NTI4IHJlClcKbgowLjEgdwpxCjEwIC0wLjExIDU3NS4zIDgxNCByZQpXKgpuCnEKL0VHUzYgZ3MKL1RyNSBEbwpRClEKUQoKZW5kc3RyZWFtCmVuZG9iago2IDAgb2JqCjw8Ci9DQSAwLjMKL2NhIDAuMwo+PgplbmRvYmoKNyAwIG9iago8PAovVHlwZSAvRm9udAovU3VidHlwZSAvVHlwZTAKL0Jhc2VGb250IC9WQ0FUV1MrRGVqYVZ1LVNhbnMtQm9sZAovVG9Vbmljb2RlIDggMCBSCi9FbmNvZGluZyAvSWRlbnRpdHktSAovRGVzY2VuZGFudEZvbnRzIFsgOSAwIFIgXQo+PgplbmRvYmoKOCAwIG9iago8PAovRmlsdGVyIC9GbGF0ZURlY29kZQovTGVuZ3RoIDQ3NAo+PgpzdHJlYW0KeNpdlM2K20AQhO96ijluDos0f7IXjCBsLj7khzh5gLHU8gpiSYzlg98+o/mEAxFIUFR3V1c3rfL9+OU4Dosqf8SpPcmi+mHsotyme2xFneUyjIU2qhvaZUP5217DXJQp+fS4LXI9jv1UHA6q/JnI2xIf6uVzN53l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Qu1+uvhs8FlXnGeAqNmQ1+DM4qxBs2iWmoe9Js40zjR5Zs9DM2gN92e5P80dpcPaFmrfnG21thfwsbf+HmNa2fxM8q5uWzpO8vGSlnnZsrbfX0EI3FoKZW5kc3RyZWFtCmVuZG9iagoxNCAwIG9iago8PAovVHlwZSAvRm9udAovU3VidHlwZSAvQ0lERm9udFR5cGUyCi9CYXNlRm9udCAvT0NITlVQK0RlamFWdS1TYW5zCi9DSURTeXN0ZW1JbmZvIDw8Ci9SZWdpc3RyeSAoQWRvYmUpCi9PcmRlcmluZyAoSWRlbnRpdHkpCi9TdXBwbGVtZW50IDAKPj4KL0NJRFRvR0lETWFwIC9JZGVudGl0eQovVyBbIDMgWyAzMTggXSAxNSBbIDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgXSAyNyBbIDYzNiA2MzYgMzM3IF0gMzYgWyA2ODQgXSAzOCBbIDY5OCA3NzAgNjMyIF0gNDUgWyAyOTUgXSA0OSBbIDc0OCBdIDUxIFsgNjAzIDc4NyBdIDU0IFsgNjM1IDYxMSBdIDY4IFsgNjEzIDYzNSA1NTAgNjM1IDYxNSBdIDc0IFsgNjM1IF0gNzYgWyAyNzggXSA4MSBbIDYzNCA2MTIgXSA4NSBbIDQxMSBdIDg3IFsgMzkyIDYzNCBdIDE2NSBbIDYxMyBdIDE2OSBbIDU1MCBdIDE4MSBbIDYxMiBdIF0KL0ZvbnREZXNjcmlwdG9yIDE1IDAgUgo+PgplbmRvYmoKMTUgMCBvYmoKPDwKL1R5cGUgL0ZvbnREZXNjcmlwdG9yCi9Gb250TmFtZSAvT0NITlVQK0RlamFWdS1TYW5zCi9Gb250RmFtaWx5IChEZWphVnVcMDQwU2FucykKL0ZsYWdzIDQKL0ZvbnRCQm94IFsgMCAtMjM1IDc4NyA5MjggXQovSXRhbGljQW5nbGUgMAovQXNjZW50IDkyOAovRGVzY2VudCAtMjM1Ci9DYXBIZWlnaHQgOTI4Ci9TdGVtViA4MAovU3RlbUggODAKL0ZvbnRGaWxlMiAxNiAwIFIKPj4KZW5kb2JqCjE2IDAgb2JqCjw8Ci9MZW5ndGgxIDg2MDgKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbmd0aCAzNDE3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NzkKPj4Kc3RyZWFtCnic7cExAQAAAMKg9U9tDB+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAruL/MJrnpgplbmRzdHJlYW0KZW5kb2JqCjE5IDAgb2JqCjw8Ci9UeXBlIC9YT2JqZWN0Ci9TdWJ0eXBlIC9Gb3JtCi9CQm94IFsgMTAuMSAtMC4wNjEgNTg1LjI1IDgxMy44NCBdCi9SZXNvdXJjZXMgMjAgMCBSCi9Hcm91cCA8PAovUyAvVHJhbnNwYXJlbmN5Ci9DUyAvRGV2aWNlUkdCCi9LIHRydWUKPj4KL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbmd0aCA0Nwo+PgpzdHJlYW0KeJwrVDA1N9UzVDAAQgtDYz0LUwVDAxBfz8DYUiE5l0vfM9dEwSVfIZALAL0CCOQKZW5kc3RyZWFtCmVuZG9iagoyMCAwIG9iago8PAovRm9udCAyMSAwIFIKL1hPYmplY3QgPDwKL0ltNCAxNyAwIFIKL1RyNSAxOSAwIFIKPj4KL0V4dEdTdGF0ZSA8PAovRUdTNiA2IDAgUgo+PgovUHJvY1NldCBbIC9QREYgL1RleHQgL0ltYWdlQyAvSW1hZ2VJIC9JbWFnZUIgXQo+PgplbmRvYmoKMjEgMCBvYmoKPDwKPj4KZW5kb2JqCnhyZWYKMCAyMgowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDAwMDA3NCAwMDAwMCBuIAowMDAwMDAwMTE0IDAwMDAwIG4gCjAwMDAwMDAxNjMgMDAwMDAgbiAKMDAwMDAwMDU4NSAwMDAwMCBuIAowMDAwMDIyMTM5IDAwMDAwIG4gCjAwMDAwMjIxNzYgMDAwMDAgbiAKMDAwMDAyMjMyNiAwMDAwMCBuIAowMDAwMDIyODcyIDAwMDAwIG4gCjAwMDAwMjM0NjAgMDAwMDAgbiAKMDAwMDAyMzcwMSAwMDAwMCBuIAowMDAwMDI4MjgxIDAwMDAwIG4gCjAwMDAwMjg0MjkgMDAwMDAgbiAKMDAwMDAyODkwNCAwMDAwMCBuIAowMDAwMDI5NDA2IDAwMDAwIG4gCjAwMDAwMjk2NDEgMDAwMDAgbiAKMDAwMDAzMzE0NiAwMDAwMCBuIAowMDAwMDM0ODEwIDAwMDAwIG4gCjAwMDAwNTQyNzQgMDAwMDAgbiAKMDAwMDA1NDUzMCAwMDAwMCBuIAowMDAwMDU0NjgxIDAwMDAwIG4gCnRyYWlsZXIKPDwKL1NpemUgMjIKL1Jvb3QgMyAwIFIKL0luZm8gMiAwIFIKPj4Kc3RhcnR4cmVmCjU0NzAzCiUlRU9GCg==",
    "source_account": {
        "account_branch": "0001",
        "account_digit": "7",
        "account_number": "00001",
        "financial_institution_compe_number": 329,
        "financial_institution_name": "QI SOCIEDADE DE CRÉDITO DIRETO S.A.",
        "owner_document_number": "32402502000135",
        "owner_document_number_formatted": "32.402.502/0001-35",
        "owner_name": "QI SCD S.A."
    },
    "source_subtype": "outgoing_funds_transfer",
    "source_subtype_translation_ptbr": "TED",
    "target_account": {
        "account_branch": "0001",
        "account_digit": "1",
        "account_number": "92796",
        "account_type": "checking_account",
        "account_type_str": "Conta Corrente",
        "financial_institution_compe_number": "001",
        "financial_institution_name": "BCO DO BRASIL S.A.",
        "owner_document_number": "23599885000192",
        "owner_document_number_formatted": "23.599.885/0001-92",
        "owner_name": "Titular da Conta"
    },
    "transacted_at": "2024-08-08 18:55:16",
    "transacted_at_br": "2024-08-08 15:55:16",
    "transacted_at_br_formatted": "08/08/2024, 15:55:16",
    "transacted_at_formatted": "08/08/2024, 18:55:16",
    "transaction_amount": 8.86,
    "transaction_amount_formatted": "R$ 8,86",
    "transaction_key": "616b950a-60c4-4180-bce3-bccad533c32b"
}
```

**Response Body: Comprovantes PIX**

```json
{
    "chargeback_reason": null,
    "chargeback_unexpected_reason": null,
    "end_to_end_id": "E32402502202408262133XBCeENgoPHs",
    "origin_key": "ce7b934d-6651-4d42-8a83-9d8bebf517ff",
    "pdf_encoded_string": "JVBERi0xLjcKJeLjz9MKMSAwIG9iago8PAovVHlwZSAvUGFnZXMKL0NvdW50IDEKL0tpZHMgWyA0IDAgUiBdCj4+CmVuZG9iagoyIDAgb2JqCjw8Ci9Qcm9kdWNlciAoUHlQREYyKQo+PgplbmRvYmoKMyAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMSAwIFIKPj4KZW5kb2JqCjQgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL01lZGlhQm94IFsgMCAwIDU5NS4yNzU1OTEgODQxLjg4OTc2NCBdCi9Db250ZW50cyA1IDAgUgovUmVzb3VyY2VzIDw8Ci9FeHRHU3RhdGUgPDwKL2ExLjAgPDwKL2NhIDEKPj4KL2ExIDw8Ci9jYSAxCj4+Ci9hMC43IDw8Ci9jYSAwLjcKPj4KL0VHUzYgNiAwIFIKPj4KL0ZvbnQgPDwKL1ZDQVRXUyA3IDAgUgovT0NITlVQIDEyIDAgUgo+PgovWE9iamVjdCA8PAovSW00IDE3IDAgUgovVHI1IDE5IDAgUgo+PgovUHJvY1NldCBbIC9UZXh0IC9JbWFnZUkgL0ltYWdlQiAvSW1hZ2VDIC9QREYgXQo+PgovVHJpbUJveCBbIDAgMCA1OTUuMjc1NTkxIDg0MS44ODk3NjQgXQovQmxlZWRCb3ggWyAwIDAgNTk1LjI3NTU5MSA4NDEuODg5NzY0IF0KL0Fubm90cyBbIF0KL1BhcmVudCAxIDAgUgo+PgplbmRvYmoKNSAwIG9iago8PAovTGVuZ3RoIDIxMTIyCj4+CnN0cmVhbQpxCjEgMCAwIC0xIDAgODQxLjg4OTc2NCBjbQpxCjAuNzUgMCAwIDAuNzUgMCAwIGNtCnEKcQpxCnEKcQpxCjAgMCBtCjc5My43MDA3ODcgMCBsCjc5My43MDA3ODcgMCA3OTMuNzAwNzg3IDAgNzkzLjcwMDc4NyAwIGMKNzkzLjcwMDc4NyAxNDYuNDY4NzUgbAo3OTMuNzAwNzg3IDE1MS45Njg3NSA3ODkuMjAwNzg3IDE1Ni40Njg3NSA3ODMuNzAwNzg3IDE1Ni40Njg3NSBjCjEwIDE1Ni40Njg3NSBsCjQuNSAxNTYuNDY4NzUgMCAxNTEuOTY4NzUgMCAxNDYuNDY4NzUgYwowIDAgbAowIDAgMCAwIDAgMCBjClcKbgpxCjAuMDk4MDM5IDAuMTQxMTc2IDAuNDk0MTE4IHJnCi9hMS4wIGdzCjAgMCA3OTMuNzAwNzg3IDE1Ni40Njg3NSByZQpXCm4KMCAwIDc5My43MDA3ODcgMTU2LjQ2ODc1IHJlCmYKUQpRCnEKNzkzLjcwMDc4NyAwIG0KMCAwIGwKMCA1IGwKNzkzLjcwMDc4NyA1IGwKVyoKbgoxIDAuMjUwOTggMC41MDE5NjEgcmcKL2ExLjAgZ3MKMCA1IG0KNzkzLjcwMDc4NyA1IGwKNzkzLjcwMDc4NyA1IDc5My43MDA3ODcgNSA3OTMuNzAwNzg3IDUgYwo3OTMuNzAwNzg3IDE0Ni40Njg3NSBsCjc5My43MDA3ODcgMTUxLjk2ODc1IDc4OS4yMDA3ODcgMTU2LjQ2ODc1IDc4My43MDA3ODcgMTU2LjQ2ODc1IGMKMTAgMTU2LjQ2ODc1IGwKNC41IDE1Ni40Njg3NSAwIDE1MS45Njg3NSAwIDE0Ni40Njg3NSBjCjAgNSBsCjAgNSAwIDUgMCA1IGMKMCAwIG0KNzkzLjcwMDc4NyAwIGwKNzkzLjcwMDc4NyAwIDc5My43MDA3ODcgMCA3OTMuNzAwNzg3IDAgYwo3OTMuNzAwNzg3IDE0Ni40Njg3NSBsCjc5My43MDA3ODcgMTUxLjk2ODc1IDc4OS4yMDA3ODcgMTU2LjQ2ODc1IDc4My43MDA3ODcgMTU2LjQ2ODc1IGMKMTAgMTU2LjQ2ODc1IGwKNC41IDE1Ni40Njg3NSAwIDE1MS45Njg3NSAwIDE0Ni40Njg3NSBjCjAgMCBsCjAgMCAwIDAgMCAwIGMKZioKUQpRCnEKcQowIDAgMCByZwovYTEuMCBncwpCVApFVAoxIDEgMSByZwpCVAoxIDAgMCAtMSAyNTguOTYzMTg3IDgxLjQ4MTQ0NSBUbQovVkNBVFdTIDE4IFRmClsgPDAwMjYwMDUyMDA1MDAwNTMwMDU1MDA1MjAwNTkwMDQ0MDA1MTAwNTcwMDQ4MDAwMzAwNDcwMDQ4MDAwMzAwMzc+IDEwOSA8MDA1NTAwNDQwMDUxMDA1NjAwNDQwMGE5MDBhNTAwNTI+IF0gVEoKMSAwIDAgLTEgMzMxLjUwNjY0NCAxMDUuODY1MjM0IFRtCi9PQ0hOVVAgMTIgVGYKWyA8MDAxNTAwMTkwMDEyMDAxMzAwMWIwMDEyMDAxNTAwMTMwMDE1MDAxNzAwMGYwMDAzMDAxNDAwMWIwMDFkMDAxNjAwMTcwMDFkMDAxMzAwMTY+IF0gVEoKRVQKUQpRCnEKcQozNTguMzUwMzk0IDI1IDc3IDIyIHJlClcKbgpxCi9hMSBncwoxIDAgMCAxIDM1OC4zNTAzOTQgMjUgY20KcQpxCjEgMCAwIDEgMCAwIGNtCjEgMCAwIDEgMCAwIGNtCnEKMCAwIG0KMy41NjM3MiA2LjI1MDAxIG0KMy44ODI4NyA2LjI1MDg5IDQuMTk0NjEgNi4zNTI0MyA0LjQ1OTU1IDYuNTQxODIgYwo0LjcyNDQ5IDYuNzMxMiA0LjkzMDc0IDYuOTk5OTIgNS4wNTIyMyA3LjMxNDAxIGMKNS4xNzM3MyA3LjYyODExIDUuMjA1MDIgNy45NzM0OSA1LjE0MjE1IDguMzA2NTEgYwo1LjA3OTI4IDguNjM5NTMgNC45MjUwNyA4Ljk0NTIzIDQuNjk5MDEgOS4xODUwMSBjCjQuNDcyOTYgOS40MjQ3OCA0LjE4NTE5IDkuNTg3ODUgMy44NzIwOCA5LjY1MzYxIGMKMy41NTg5NyA5LjcxOTM4IDMuMjM0NTggOS42ODQ4OSAyLjkzOTg4IDkuNTU0NDkgYwoyLjY0NTE5IDkuNDI0MSAyLjM5MzQyIDkuMjAzNjYgMi4yMTY0IDguOTIxMDMgYwoyLjAzOTM3IDguNjM4NCAxLjk0NTA0IDguMzA2MjYgMS45NDUzMSA3Ljk2NjU5IGMKMS45NDUzMSA3Ljc0MDY2IDEuOTg3MjEgNy41MTY5NiAyLjA2ODYxIDcuMzA4MzEgYwoyLjE1MDAxIDcuMDk5NjYgMi4yNjkzMSA2LjkxMDE2IDIuNDE5NjcgNi43NTA2OSBjCjIuNTcwMDMgNi41OTEyMSAyLjc0ODQ4IDYuNDY0ODkgMi45NDQ4IDYuMzc4OTcgYwozLjE0MTEzIDYuMjkzMDYgMy4zNTE0NSA2LjI0OTIzIDMuNTYzNzIgNi4yNTAwMSBjCmgKMTYuOSAxNC45MzExIG0KMTQuOTkzNiAxMy4yMjQ5IDEzLjE3MzQgMTAuNjA3OSAxMS41NzQ0IDEyLjQyOTYgYwoxMC4zNjkzIDEzLjgwNCAxMS42MDM3IDE0Ljg1NzEgMTIuMjQxIDE1LjUwNzMgYwoxMy45MDEyIDE3LjIzNzIgMTYuMDc2MiAxOS41Njg0IDE3Ljg2MDIgMjEuMTQ1OCBjCjE4LjQ1NTggMjEuNjcxNiAxOC43NzAzIDIxLjgwNjMgMTkuMjA1OSAyMS45MSBjCjIwLjUyMzcgMjIuMjE5NiAyMS4yNjY4IDIxLjAyMTQgMjEuMDE0OSAxOS44MzY1IGMKMjAuNzc4NCAxOC43MDM1IDE5LjU4NzIgMTcuNTgwOCAxOS4zMzM5IDE3LjQ0MTYgYwoyMC4yNTc5IDE2LjA3NSAyMC44NTE5IDE0LjQ4NzYgMjEuMDYzNiAxMi44MTkxIGMKMjEuMzYzOCAxMC42MDc1IDIxLjAwNDEgOC4zNTE0IDIwLjAzNTMgNi4zNjg5OSBjCjE4LjY0MzcgMy41NTQ5MiAxNi4xMzg4IDEuNzUyNDQgMTQuMjE5OCAxLjEzNzc5IGMKMTMuMTgxNyAwLjgwNDU0NiAxMi4yMjQzIDAuOTIzMDMzIDExLjc1MTIgMS4yODU5IGMKMTEuMTg0OCAxLjcxMzkzIDEwLjg5OTUgMi43MzI5MiAxMS4zNjU3IDMuNTU3ODkgYwoxMS40NDU5IDMuNzA1MTkgMTEuNTUzNCAzLjgzMzYzIDExLjY4MTYgMy45MzU0NiBjCjExLjgwOTggNC4wMzcyOSAxMS45NTYxIDQuMTEwMzggMTIuMTExNiA0LjE1MDMyIGMKMTIuNzgyMyA0LjMyMDY1IDE0LjA5MTggNC42ODIwMyAxNS4yMTQ4IDUuNjMxNDEgYwoxNi40NTU4IDYuNjQ3MTIgMTcuMzI0MSA4LjA5MjYgMTcuNjY5NiA5LjcxNzcyIGMKMTguMDU1IDExLjQ2MzkgMTcuNzI4IDEzLjYxNDUgMTYuOTAxNCAxNC45MzExIGMKMi4zMzMxNyAxMS44MzA4IG0KMS4zODk2OCAxMi4yNDk5IDEuMjQ0OTYgMTMuMTQ0NSAxLjQzNjk5IDE0LjA4MiBjCjEuNzQ1OTIgMTUuNTkxMiAyLjk1MjQzIDE3LjY5MjkgMy44ODIgMTguNjkxMSBjCjUuMjczNTggMjAuMTcyMiA2Ljk0MzQ4IDIxLjI3ODYgOC45MDcgMjEuNzIxNCBjCjEwLjUxMTUgMjIuMDgyOCAxMi4yNzA1IDIyLjA5MTcgMTMuMjMwNiAyMS43NTI2IGMKMTQuNjIyMiAyMS4yNjA4IDE0Ljg2MDIgMTguNDY5IDEyLjU1NDMgMTguNDI5IGMKMTIuMTgyOCAxOC40MjkgMTEuNzY2NyAxOC40NTU3IDExLjMyNTYgMTguNDc0OSBjCjEwLjQzMzYgMTguNTEwNiA5LjU0Mzg2IDE4LjM1NzYgOC43MDc4MyAxOC4wMjQ4IGMKNy44NzE3OSAxNy42OTIgNy4xMDYwOSAxNy4xODYxIDYuNDU1MDMgMTYuNTM2MiBjCjUuOTE0IDE2LjAxNCA1LjQ3MTA1IDE1LjM4NzMgNS4xNDk3MyAxNC42ODkzIGMKNC45NDYyMSAxNC4yNDk0IDQuNzY1NSAxMy43OTggNC42MDg0MSAxMy4zMzcgYwo0LjUyNjMgMTMuMDczNCA0LjUzODgzIDEyLjgxODYgNC4zODAxOSAxMi41NDAyIGMKNC4xNzI0MyAxMi4xODQgMy44NTMwMiAxMS45MTc0IDMuNDc4NDMgMTEuNzg3NSBjCjMuMTAzODQgMTEuNjU3NyAyLjY5ODE4IDExLjY3MyAyLjMzMzE3IDExLjgzMDggYwpoCjAuMzA5ODA0IDAuOCAwLjkyOTQxMiByZwovYTEuMCBncwoxIHcKMCBKCjAgago0IE0KZioKUQpxCjAgMCBtCjguOTg0NzMgNy4wMzcxMSBtCjkuNDgyNjggNy4wMzY4MiA5Ljk2OTUyIDcuMTkzNzEgMTAuMzgzNyA3LjQ4NzkzIGMKMTAuNzk3OCA3Ljc4MjE2IDExLjEyMDcgOC4yMDA1IDExLjMxMTUgOC42OTAwNSBjCjExLjUwMjIgOS4xNzk2IDExLjU1MjMgOS43MTgzNiAxMS40NTUzIDEwLjIzODIgYwoxMS4zNTgzIDEwLjc1OCAxMS4xMTg3IDExLjIzNTYgMTAuNzY2NyAxMS42MTA0IGMKMTAuNDE0NyAxMS45ODUzIDkuOTY2MTEgMTIuMjQwNiA5LjQ3Nzc1IDEyLjM0NDEgYwo4Ljk4OTM5IDEyLjQ0NzYgOC40ODMxNiAxMi4zOTQ2IDguMDIzMDkgMTIuMTkxOSBjCjcuNTYzMDEgMTEuOTg5MSA3LjE2OTc3IDExLjY0NTcgNi44OTMxIDExLjIwNTEgYwo2LjYxNjQzIDEwLjc2NDQgNi40Njg3NSAxMC4yNDY0IDYuNDY4NzUgOS43MTYzOSBjCjYuNDY4NzUgOS4wMDYwNiA2LjczMzc4IDguMzI0OCA3LjIwNTU4IDcuODIyMzggYwo3LjY3NzM4IDcuMzE5OTYgOC4zMTczMiA3LjAzNzUgOC45ODQ3MyA3LjAzNzExIGMKaAo2LjUxMDk2IDAgbQo2Ljg5OTAzIDAgNy4yNzgzOSAwLjEyMjQ3OSA3LjYwMTA2IDAuMzUxOTQ4IGMKNy45MjM3MyAwLjU4MTQxNiA4LjE3NTIyIDAuOTA3NTY4IDguMzIzNzMgMS4yODkxNiBjCjguNDcyMjQgMS42NzA3NSA4LjUxMTA5IDIuMDkwNjUgOC40MzUzOSAyLjQ5NTc0IGMKOC4zNTk2OCAyLjkwMDg0IDguMTcyOCAzLjI3Mjk1IDcuODk4MzkgMy41NjUgYwo3LjYyMzk4IDMuODU3MDYgNy4yNzQzNyA0LjA1NTk2IDYuODkzNzUgNC4xMzY1NCBjCjYuNTEzMTMgNC4yMTcxMSA2LjExODYyIDQuMTc1NzYgNS43NjAwOCA0LjAxNzcgYwo1LjQwMTU1IDMuODU5NjQgNS4wOTUxMSAzLjU5MTk3IDQuODc5NTEgMy4yNDg1NCBjCjQuNjYzOTEgMi45MDUxMiA0LjU0ODgzIDIuNTAxMzYgNC41NDg4MyAyLjA4ODMzIGMKNC41NDg4MyAxLjUzNDQ3IDQuNzU1NTUgMS4wMDMzIDUuMTIzNTIgMC42MTE2NTcgYwo1LjQ5MTQ5IDAuMjIwMDE5IDUuOTkwNTcgMCA2LjUxMDk2IDAgYwpoCjEuMjI1OTggMi4zMzg5IG0KMS40NzA1MiAyLjMzNzE0IDEuNzEwMDQgMi40MTI3MyAxLjkxNDE1IDIuNTU2MDcgYwoyLjExODI2IDIuNjk5NDIgMi4yNzc3NiAyLjkwNDA2IDIuMzcyNDMgMy4xNDQwMyBjCjIuNDY3MDkgMy4zODQwMSAyLjQ5MjY1IDMuNjQ4NTEgMi40NDU4NiAzLjkwMzk3IGMKMi4zOTkwNiA0LjE1OTQzIDIuMjgyMDMgNC4zOTQzNCAyLjEwOTYgNC41Nzg5IGMKMS45MzcxOCA0Ljc2MzQ2IDEuNzE3MTMgNC44ODkzNSAxLjQ3NzM3IDQuOTQwNiBjCjEuMjM3NjIgNC45OTE4NCAwLjk4ODk2NSA0Ljk2NjE0IDAuNzYyOTU3IDQuODY2NzQgYwowLjUzNjk1IDQuNzY3MzUgMC4zNDM3NzUgNC41OTg3NSAwLjIwNzkzOSA0LjM4MjMyIGMKMC4wNzIxMDQgNC4xNjU5IC0wLjAwMDI2OSAzLjkxMTQxIDAuMDAwMDAxIDMuNjUxMTQgYwowLjAwMDAwMSAzLjMwMzExIDAuMTI5ODk5IDIuOTY5MzQgMC4zNjExMjEgMi43MjMyNSBjCjAuNTkyMzQyIDIuNDc3MTUgMC45MDU5NDUgMi4zMzg5IDEuMjMyOTQgMi4zMzg5IGMKMC4zMDk4MDQgMC44IDAuOTI5NDEyIHJnCi9hMS4wIGdzCjEgdwowIEoKMCBqCjQgTQpmKgpRCnEKMCAwIG0KNjEuODg4OSAxNC4xMDg0IG0KNjEuNDI5IDE0LjExNzcgNjAuOTY5NyAxNC4wNjggNjAuNTIxIDEzLjk2MDMgYwo2MC4xOTcyIDEzLjg4NTkgNTkuODk2MiAxMy43MjYgNTkuNjQ1NyAxMy40OTUyIGMKNTkuNDE5MiAxMy4yNjc4IDU5LjI1OCAxMi45NzY2IDU5LjE4MDkgMTIuNjU1NCBjCjU5LjA4MDYgMTIuMjM5IDU5LjAzMzcgMTEuODEgNTkuMDQxOCAxMS4zODAyIGMKNTkuMDQxOCA4Ljg4NjA4IGwKNTkuMDM0NSA4LjQ1ODI1IDU5LjA4MTMgOC4wMzEzMyA1OS4xODA5IDcuNjE2NzkgYwo1OS4yNTcgNy4yOTM5NiA1OS40MTgzIDcuMDAxMDMgNTkuNjQ1NyA2Ljc3MjU3IGMKNTkuODk2MiA2LjU0MTgxIDYwLjE5NzIgNi4zODE4NyA2MC41MjEgNi4zMDc1MSBjCjYwLjk2OTcgNi4xOTk3NCA2MS40MjkgNi4xNTAwMSA2MS44ODg5IDYuMTU5NCBjCjY3LjA2NTYgNi4xNTk0IGwKNjcuMDY1NiA3LjY4NjQgbAo2MS45NjU1IDcuNjg2NCBsCjYxLjc1NDIgNy42ODE0NiA2MS41NDMxIDcuNzAyODMgNjEuMzM2NSA3Ljc1MDA4IGMKNjEuMTkwOSA3Ljc4MjI2IDYxLjA1NjYgNy44NTY1NyA2MC45NDgyIDcuOTY0ODQgYwo2MC44NDc4IDguMDc2NDYgNjAuNzc5MiA4LjIxNjE4IDYwLjc1MDYgOC4zNjc3IGMKNjAuNzExMiA4LjU2ODMxIDYwLjY5MyA4Ljc3Mjk5IDYwLjY5NjQgOC45Nzc5IGMKNjAuNjk2NCAxMS4zMDc3IGwKNjAuNjkyNSAxMS41MTUgNjAuNzEwNyAxMS43MjIyIDYwLjc1MDYgMTEuOTI1MyBjCjYwLjc4MDIgMTIuMDc0MyA2MC44NDg3IDEyLjIxMTMgNjAuOTQ4MiAxMi4zMjA3IGMKNjEuMDU3NSAxMi40MzAxIDYxLjE5NDMgMTIuNTAzMiA2MS4zNDIgMTIuNTMxIGMKNjEuNTUxMSAxMi41NzM1IDYxLjc2MzggMTIuNTkyOCA2MS45NzY2IDEyLjU4ODggYwo2Ny4wNjU2IDEyLjU4ODggbAo2Ny4wNjU2IDE0LjEwMjUgbAo2MS44ODg5IDE0LjEwODQgbApoCjUyLjgxNzIgMTQuMTA4NCBtCjUyLjM1NzMgMTQuMTE3NyA1MS44OTggMTQuMDY4IDUxLjQ0OTMgMTMuOTYwMyBjCjUxLjEyNTUgMTMuODg1OSA1MC44MjQ0IDEzLjcyNiA1MC41NzQgMTMuNDk1MiBjCjUwLjM0NzUgMTMuMjY3OCA1MC4xODYzIDEyLjk3NjYgNTAuMTA5MiAxMi42NTU0IGMKNTAuMDA4OCAxMi4yMzkgNDkuOTYyIDExLjgxIDQ5Ljk3IDExLjM4MDIgYwo0OS45NyA4Ljg4NjA4IGwKNDkuOTYyOCA4LjQ1ODI1IDUwLjAwOTYgOC4wMzEzMyA1MC4xMDkyIDcuNjE2NzkgYwo1MC4xODUzIDcuMjkzOTYgNTAuMzQ2NiA3LjAwMTAzIDUwLjU3NCA2Ljc3MjU3IGMKNTAuODI0NCA2LjU0MTgxIDUxLjEyNTUgNi4zODE4NyA1MS40NDkzIDYuMzA3NTEgYwo1MS44OTggNi4xOTk3NCA1Mi4zNTczIDYuMTUwMDEgNTIuODE3MiA2LjE1OTQgYwo1NC42NTU1IDYuMTU5NCBsCjU0LjY1NTUgNy42NjI3IGwKNTIuODE3MiA3LjY2MjcgbAo1Mi42MTg4IDcuNjU3NjEgNTIuNDIwNiA3LjY3OTAxIDUyLjIyNzIgNy43MjYzOSBjCjUyLjA5MDMgNy43NTk4MiA1MS45NjM4IDcuODMwMjEgNTEuODU5OCA3LjkzMDc4IGMKNTEuNzY0NiA4LjAzMjQ0IDUxLjY5OTcgOC4xNjE3NyA1MS42NzMzIDguMzAyNTMgYwo1MS42Mzg3IDguNDk0NzggNTEuNjIzMyA4LjY5MDM4IDUxLjYyNzQgOC44ODYwOCBjCjUxLjYyNzQgOS40MjIyMyBsCjU3Ljk4NTUgOS40MjIyMyBsCjU3Ljk4NTUgMTAuODMyMiBsCjUxLjYyNzQgMTAuODMyMiBsCjUxLjYyNzQgMTEuMzkwNiBsCjUxLjYyNDEgMTEuNTg5MyA1MS42NDA0IDExLjc4NzkgNTEuNjc2MSAxMS45ODMgYwo1MS43MDE4IDEyLjEyMzIgNTEuNzY0NSAxMi4yNTI3IDUxLjg1NyAxMi4zNTYzIGMKNTEuOTU5MiAxMi40NTcyIDUyLjA4NjkgMTIuNTI0MSA1Mi4yMjQ0IDEyLjU0ODggYwo1Mi40MjA5IDEyLjU4NjggNTIuNjIwMyAxMi42MDQyIDUyLjgyIDEyLjYwMDYgYwo1OC4wMjg3IDEyLjYwMDYgbAo1OC4wMjg3IDE0LjEwMjUgbAo1Mi44MTcyIDE0LjEwODQgbApoCjQ0LjM1OTIgMTQuMTA4NCBtCjQ0LjM1OTIgNy42OTIzMiBsCjQxLjIyOTUgNy42OTIzMiBsCjQxLjIyOTUgNi4xNjUzMiBsCjQ5LjE2MTUgNi4xNjUzMiBsCjQ5LjE2MTUgNy42OTIzMiBsCjQ2LjAzMzMgNy42OTIzMiBsCjQ2LjAzMzMgMTQuMTA4NCBsCjQ0LjM1OTIgMTQuMTA4NCBsCmgKMzQuMzM5OCA2LjE2NTMyIG0KMzYuMDA5NyA2LjE2NTMyIGwKMzYuMDA5NyAxNC4xMDg0IGwKMzQuMzM5OCAxNC4xMDg0IGwKMzQuMzM5OCA2LjE2NTMyIGwKaAozMS40MyA4Ljk3OTM5IG0KMzEuNDM0IDguNzcyMDkgMzEuNDEzNCA4LjU2NTA4IDMxLjM2ODggOC4zNjMyNSBjCjMxLjMzNjMgOC4yMTQwNCAzMS4yNjY2IDguMDc2OTEgMzEuMTY3IDcuOTY2MzIgYwozMS4wNTkyIDcuODU4MzUgMzAuOTI0NCA3Ljc4NTgzIDMwLjc3ODcgNy43NTc0OSBjCjMwLjU3ODUgNy43MTU0IDMwLjM3NDcgNy42OTYwMyAzMC4xNzA2IDcuNjk5NzMgYwoyNy40ODQ5IDcuNjk5NzMgbAoyNy4yNzAyIDcuNjk1MDkgMjcuMDU1NiA3LjcxNDQ1IDI2Ljg0NDcgNy43NTc0OSBjCjI2LjY5OTEgNy43ODU4MyAyNi41NjQzIDcuODU4MzUgMjYuNDU2NSA3Ljk2NjMyIGMKMjYuMzU3OSA4LjA3NjIxIDI2LjI5MTIgOC4yMTQwMyAyNi4yNjQ1IDguMzYzMjUgYwoyNi4yMjg5IDguNTY2MzggMjYuMjEyNSA4Ljc3Mjc5IDI2LjIxNTcgOC45NzkzOSBjCjI2LjIxNTcgMTEuMDA3IGwKMjYuMjEyOCAxMS4yNjc4IDI2LjIyNTQgMTEuNTI4NCAyNi4yNTMzIDExLjc4NzUgYwoyNi4yNjg3IDExLjk1OTggMjYuMzI3NCAxMi4xMjQ1IDI2LjQyMzEgMTIuMjY0NCBjCjI2LjUyMTYgMTIuMzg3NyAyNi42NTY1IDEyLjQ3MTggMjYuODA1OCAxMi41MDI5IGMKMjcuMDI5MSAxMi41NTE4IDI3LjI1NjkgMTIuNTczNiAyNy40ODQ5IDEyLjU2ODEgYwozMC4xNzYyIDEyLjU2ODEgbAozMC4zOCAxMi41NzE1IDMwLjU4MzcgMTIuNTUzNiAzMC43ODQzIDEyLjUxNDcgYwozMC45Mjg1IDEyLjQ5NDEgMzEuMDYzIDEyLjQyNTggMzEuMTY4OCAxMi4zMTk1IGMKMzEuMjc0NyAxMi4yMTMyIDMxLjM0NjUgMTIuMDc0MyAzMS4zNzQzIDExLjkyMjMgYwozMS40MTkxIDExLjcxNDUgMzEuNDM5NyAxMS41MDE2IDMxLjQzNTYgMTEuMjg4NCBjCjMxLjQzIDguOTc5MzkgbApoCjMxLjYxMDkgMTUuMjU0NyBtCjMwLjUzOCAxNC4wMzE0IGwKMjcuNDEzOSAxNC4wMzE0IGwKMjYuOTUxIDE0LjA0MDcgMjYuNDg4NiAxMy45OTYgMjYuMDM0OCAxMy44OTgxIGMKMjUuNzEyMSAxMy44MzIzIDI1LjQxMDcgMTMuNjc5MyAyNS4xNTk1IDEzLjQ1MzcgYwoyNC45MzMzIDEzLjIzMTQgMjQuNzcyIDEyLjk0NDUgMjQuNjk0OCAxMi42MjczIGMKMjQuNTk0MyAxMi4yMTI5IDI0LjU0NzQgMTEuNzg1OSAyNC41NTU2IDExLjM1OCBjCjI0LjU1NTYgOC44ODYwOCBsCjI0LjU0ODMgOC40NTgyNSAyNC41OTUxIDguMDMxMzMgMjQuNjk0OCA3LjYxNjc5IGMKMjQuNzcwOSA3LjI5Mzk2IDI0LjkzMjEgNy4wMDEwMyAyNS4xNTk1IDYuNzcyNTcgYwoyNS40MSA2LjU0MTgxIDI1LjcxMSA2LjM4MTg3IDI2LjAzNDggNi4zMDc1MSBjCjI2LjQ4NzMgNi4xOTk0MSAyNi45NTAzIDYuMTQ5NjggMjcuNDEzOSA2LjE1OTQgYwozMC4yNDg2IDYuMTU5NCBsCjMwLjcxMTcgNi4xNDk2NyAzMS4xNzQzIDYuMTk5NCAzMS42MjYyIDYuMzA3NTEgYwozMS45NTAxIDYuMzgxNTcgMzIuMjUxMiA2LjU0MTU0IDMyLjUwMTUgNi43NzI1NyBjCjMyLjcyOTQgNy4wMDA4OSAzMi44OTExIDcuMjkzODIgMzIuOTY3NyA3LjYxNjc5IGMKMzMuMDY2NiA4LjAzMTQ3IDMzLjExMzQgOC40NTgyOSAzMy4xMDY5IDguODg2MDggYwozMy4xMDY5IDExLjM0NDcgbAozMy4xMjAzIDExLjgyNzkgMzMuMDU3MyAxMi4zMSAzMi45MjA0IDEyLjc3MSBjCjMyLjgwMjIgMTMuMTMyNCAzMi41NjU1IDEzLjQzNjMgMzIuMjUzOCAxMy42MjcgYwozMy42NTY1IDE1LjI1NDcgbAozMS42MTA5IDE1LjI1NDcgbApoCjc1LjM0NzUgMTIuMTU5OCBtCjc1LjM0NzUgMTAuOTYwMSBsCjY5Ljg3NTggMTAuOTYwMSBsCjY5Ljg3NTggMTQuMTI4MSBsCjY4LjIxMjkgMTQuMTI4MSBsCjY4LjIxMjkgNi4xODM1OSBsCjY5Ljg3NTggNi4xODM1OSBsCjY5Ljg3NTggOS40MjI3MyBsCjc1LjM0NzUgOS40MjI3MyBsCjc1LjM0NzUgNi4xODM1OSBsCjc2Ljk5OTMgNi4xODM1OSBsCjc2Ljk5OTMgMTIuMTU5OCBsCjc1LjM0NzUgMTIuMTU5OCBsCmgKNzYuOTk5OCAxMi42ODg1IG0KNzUuMzUzNSAxMi42ODg1IGwKNzUuMzUzNSAxNC4xNTE4IGwKNzYuOTk5OCAxNC4xNTE4IGwKNzYuOTk5OCAxMi42ODg1IGwKaAowLjMwOTgwNCAwLjggMC45Mjk0MTIgcmcKL2ExLjAgZ3MKMSB3CjAgSgowIGoKNCBNCmYKUQoxIHcKMCBKCjAgago0IE0KbgpRClEKUQpRClEKcQpxCjM3NC44NTAzOTQgMTMzLjY5NTMxMiA0NCA0NCByZQpXCm4KcQovYTEgZ3MKMSAwIDAgMSAzNzQuODUwMzk0IDEzMy42OTUzMTIgY20KcQpxCjEgMCAwIDEgMCAwIGNtCjEgMCAwIDEgMCAwIGNtCnEKNDMuMiAyMS42IG0KNDMuMiAzMy43ODY0OTUgMzMuNzg2NDk1IDQzLjIgMjEuNiA0My4yIGMKOS40MTM1MDUgNDMuMiAwIDMzLjc4NjQ5NSAwIDIxLjYgYwowIDkuNDEzNTA1IDkuNDEzNTA1IDAgMjEuNiAwIGMKMzMuNzg2NDk1IDAgNDMuMiA5LjQxMzUwNSA0My4yIDIxLjYgYwpoCjEgMC4yNTA5OCAwLjUwMTk2MSByZwovYTEuMCBncwoxIHcKMCBKCjAgago0IE0KZgpRCnEKMCAwIG0KMjIuNjk1IDIwLjU4NSBtCjIwLjUwNSAyMC41ODUgbAoxOS4yNjA4MjggMjAuNTg3MjE3IDE4LjI0OTUxMSAxOS41ODIxNjIgMTguMjQ0IDE4LjMzOCBjCjE4LjI1MDA2IDE3LjA5NDIyOSAxOS4yNjEyMTYgMTYuMDg5NzgxIDIwLjUwNSAxNi4wOTIgYwoyNC44ODQgMTYuMDkyIGwKMjUuNDQ4IDE2LjA5MiAyNS45MDUgMTUuNjM3IDI1LjkwNSAxNS4wNzcgYwoyNS45MDUgMTQuNTE3IDI1LjQ0OCAxNC4wNjIgMjQuODg0IDE0LjA2MiBjCjIyLjYyMiAxNC4wNjIgbAoyMi42MjIgMTEuODE1IGwKMjIuNjIyIDExLjI1NSAyMi4xNjQgMTAuOCAyMS42IDEwLjggYwoyMS4wMzYgMTAuOCAyMC41NzggMTEuMjU0IDIwLjU3OCAxMS44MTUgYwoyMC41NzggMTQuMDYyIGwKMjAuNTA2IDE0LjA2MiBsCjE4LjEzMSAxNC4wNjIgMTYuMiAxNS45OCAxNi4yIDE4LjMzOCBjCjE2LjIgMjAuNjk2IDE4LjEzMSAyMi42MTUgMjAuNTA2IDIyLjYxNSBjCjIyLjY5NSAyMi42MTUgbAoyMy45MzkxNzIgMjIuNjEyNzgzIDI0Ljk1MDQ4OSAyMy42MTc4MzggMjQuOTU2IDI0Ljg2MiBjCjI0Ljk0OTk0IDI2LjEwNTc3MSAyMy45Mzg3ODQgMjcuMTEwMjE5IDIyLjY5NSAyNy4xMDggYwoxOC4zMTcgMjcuMTA4IGwKMTcuNzUyIDI3LjEwOCAxNy4yOTUgMjcuNTYzIDE3LjI5NSAyOC4xMjMgYwoxNy4yOTUgMjguNjgzIDE3Ljc1MiAyOS4xMzggMTguMzE2IDI5LjEzOCBjCjIwLjU3OCAyOS4xMzggbAoyMC41NzggMzEuMzg1IGwKMjAuNTc4IDMxLjk0NSAyMS4wMzYgMzIuNCAyMS42IDMyLjQgYwoyMi4xNjQgMzIuNCAyMi42MjIgMzEuOTQ2IDIyLjYyMiAzMS4zODUgYwoyMi42MjIgMjkuMTM4IGwKMjIuNjk1IDI5LjEzOCBsCjI1LjA2OSAyOS4xMzggMjcgMjcuMjIgMjcgMjQuODYyIGMKMjcgMjIuNTA0IDI1LjA2OSAyMC41ODUgMjIuNjk1IDIwLjU4NSBjCmgKMSAxIDEgcmcKL2ExLjAgZ3MKMSB3CjAgSgowIGoKNCBNCmYKUQoxIHcKMCBKCjAgago0IE0KbgpRClEKUQpRClEKcQpxCjAuNDExNzY1IDAuNDQ3MDU5IDAuNDkwMTk2IHJnCi9hMS4wIGdzCkJUCjEgMCAwIC0xIDM1Ni43MTM2NzUgMjE0LjYyMzA0NyBUbQovT0NITlVQIDEyIFRmClsgPDAwMzY+IC0xOCA8MDAyNDAwOGYwMDI3PiAxNyA8MDAyNDAwMDMwMDI3MDAyODAwMDMwMDMzMDAyYzAwM2I+IF0gVEoKRVQKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCkJUCjEgMCAwIC0xIDMwNi4wODQ3NjkgMjYxLjU0Njg3NSBUbQovVkNBVFdTIDMyIFRmClsgPDAwMzUwMDA3MDAwMzAwMTYwMDE4MDAxYjAwMGYwMDFjMDAxNz4gXSBUSgpFVApRClEKcQpxCjAgMjcyLjQ2ODc1IDc5My43MDA3ODcgNTE4IHJlClcKbgpxCjEgMSAxIHJnCi9hMS4wIGdzCjAgMjcyLjQ2ODc1IDc5My43MDA3ODcgNTE4IHJlClcKbgowIDI3Mi40Njg3NSA3OTMuNzAwNzg3IDUxOCByZQpmClEKUQpRCnEKcQpxCnEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTAuNyBncwpCVAoxIDAgMCAtMSA3NS41OTA1NTEgMzU4LjYyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMzEwMDUyMDA1MDAwNDg+IF0gVEoKRVQKUQpRCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2ExLjAgZ3MKQlQKMSAwIDAgLTEgMzk2Ljg1MDM5NCAzNjAuMTIzMDQ3IFRtCi9WQ0FUV1MgMTIgVGYKWyA8MDAzNDAwMmMwMDAzMDAzNjAwMzIwMDI2MDAyYzAwMjgwMDI3MDAyNDAwMjcwMDI4MDAwMzAwMjcwMDI4MDAwMzAwMjYwMDM1MDA4YjAwMjcwMDJjMDAzNzAwMzIwMDAzMDAyNzAwMmMwMDM1MDAyODAwMzcwMDMyMDAwMzAwMzYwMDExMDAyND4gLTE4IDwwMDExPiBdIFRKCkVUClEKUQpRClEKcQpxCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2EwLjcgZ3MKQlQKMSAwIDAgLTEgNzUuNTkwNTUxIDM5Ny42MjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDI2MDAzMzAwMjkwMDEyMDAyNjAwMzEwMDMzMDAyZD4gXSBUSgpFVApRClEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTEuMCBncwpCVAoxIDAgMCAtMSAzOTYuODUwMzk0IDM5OS4xMjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDE2MDAxNTAwMTEwMDE3MDAxMzAwMTUwMDExMDAxODAwMTMwMDE1MDAxMjAwMTMwMDEzMDAxMzAwMTQwMDEwMDAxNjAwMTg+IF0gVEoKRVQKUQpRClEKUQpxCnEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTAuNyBncwpCVAoxIDAgMCAtMSA3NS41OTA1NTEgNDM2LjYyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMmMwMDUxMDA1NjAwNTcwMDRjMDA1NzAwNTgwMDRjMDBhOTAwYTUwMDUyMDAwMzAwMjkwMDRjMDA1MTAwNDQwMDUxMDA0NjAwNDgwMDRjMDA1NTAwNDQ+IF0gVEoKRVQKUQpRCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2ExLjAgZ3MKQlQKMSAwIDAgLTEgMzk2Ljg1MDM5NCA0MzguMTIzMDQ3IFRtCi9WQ0FUV1MgMTIgVGYKWyA8MDAzNDAwMmMwMDAzMDAzNjAwMzIwMDI2MDAyYzAwMjgwMDI3MDAyNDAwMjcwMDI4MDAwMzAwMjcwMDI4MDAwMzAwMjYwMDM1MDA4YjAwMjcwMDJjMDAzNzAwMzIwMDAzMDAyNzAwMmMwMDM1MDAyODAwMzcwMDMyMDAwMzAwMzYwMDExMDAyND4gLTE4IDwwMDExMDAwMzAwMGIwMDE2MDAxNTAwMWMwMDBjPiBdIFRKCkVUClEKUQpRClEKcQpxCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2EwLjcgZ3MKQlQKMSAwIDAgLTEgNzUuNTkwNTUxIDQ3NS42MjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDI0MDA0YTAwYWMwMDUxMDA0NjAwNGMwMDQ0PiBdIFRKCkVUClEKUQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMS4wIGdzCkJUCjEgMCAwIC0xIDM5Ni44NTAzOTQgNDc3LjEyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMTMwMDEzMDAxMzAwMTQ+IF0gVEoKRVQKUQpRClEKUQpxCnEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTAuNyBncwpCVAoxIDAgMCAtMSA3NS41OTA1NTEgNTE0LjYyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMjYwMDUyMDA1MTAwNTcwMDQ0PiBdIFRKCkVUClEKUQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMS4wIGdzCkJUCjEgMCAwIC0xIDM5Ni44NTAzOTQgNTE2LjEyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMTQwMDEzMDAxMzAwMTMwMDEzMDAxYjAwMWEwMDEwMDAxNz4gXSBUSgpFVApRClEKUQpRCnEKcQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMC43IGdzCkJUCjEgMCAwIC0xIDc1LjU5MDU1MSA2MTcuNjIzMDQ3IFRtCi9WQ0FUV1MgMTIgVGYKWyA8MDAzMTAwNTIwMDUwMDA0ODAwMDMwMDQ3MDA1MjAwMDMwMDI1MDA0ODAwNTEwMDQ4MTNhZTAwNDYwMDRjMDBhMzAwNTUwMDRjMDA1Mj4gXSBUSgpFVApRClEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTEuMCBncwpCVAoxIDAgMCAtMSAzOTYuODUwMzk0IDYxOS4xMjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDEwPiBdIFRKCkVUClEKUQpRClEKcQpxCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2EwLjcgZ3MKQlQKMSAwIDAgLTEgNzUuNTkwNTUxIDY1Ni42MjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDI2MDAzMzAwMjkwMDEyMDAyNjAwMzEwMDMzMDAyZD4gXSBUSgpFVApRClEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTEuMCBncwpCVAoxIDAgMCAtMSAzOTYuODUwMzk0IDY1OC4xMjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDEwPiBdIFRKCkVUClEKUQpRClEKcQpxCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2EwLjcgZ3MKQlQKMSAwIDAgLTEgNzUuNTkwNTUxIDY5NS42MjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDJjMDA1MTAwNTYwMDU3MDA0YzAwNTcwMDU4MDA0YzAwYTkwMGE1MDA1MjAwMDMwMDI5MDA0YzAwNTEwMDQ0MDA1MTAwNDYwMDQ4MDA0YzAwNTUwMDQ0PiBdIFRKCkVUClEKUQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMS4wIGdzCkJUCjEgMCAwIC0xIDM5Ni44NTAzOTQgNjk3LjEyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMTAwMDAzMDAwYjAwMTAwMDBjPiBdIFRKCkVUClEKUQpRClEKcQpxCnEKcQowLjIgMC4yNTQ5MDIgMC4zMTM3MjUgcmcKL2EwLjcgZ3MKQlQKMSAwIDAgLTEgNzUuNTkwNTUxIDczNC42MjMwNDcgVG0KL1ZDQVRXUyAxMiBUZgpbIDwwMDI0MDA0YTAwYWMwMDUxMDA0NjAwNGMwMDQ0PiBdIFRKCkVUClEKUQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMS4wIGdzCkJUCjEgMCAwIC0xIDM5Ni44NTAzOTQgNzM2LjEyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMTA+IF0gVEoKRVQKUQpRClEKUQpxCnEKcQpxCjAuMiAwLjI1NDkwMiAwLjMxMzcyNSByZwovYTAuNyBncwpCVAoxIDAgMCAtMSA3NS41OTA1NTEgNzczLjYyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMjYwMDUyMDA1MTAwNTcwMDQ0PiBdIFRKCkVUClEKUQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMS4wIGdzCkJUCjEgMCAwIC0xIDM5Ni44NTAzOTQgNzc1LjEyMzA0NyBUbQovVkNBVFdTIDEyIFRmClsgPDAwMzEwMDUyMDA1MTAwNDgwMDEwMDAzMTAwNTIwMDUxMDA0OD4gXSBUSgpFVApRClEKUQpRClEKUQpxCnEKMCAxMDI1LjUxOTY4NSA3OTMuNzAwNzg3IDk3IHJlClcKbgpxCjAuOTQ5MDIgMC45NTY4NjMgMC45ODgyMzUgcmcKL2ExLjAgZ3MKMCAxMDI1LjUxOTY4NSA3OTMuNzAwNzg3IDk3IHJlClcKbgowIDEwMjUuNTE5Njg1IDc5My43MDA3ODcgOTcgcmUKZgpRClEKcQo3OTMuNzAwNzg3IDEwMjUuNTE5Njg1IG0KMCAxMDI1LjUxOTY4NSBsCjAgMTAyNi41MTk2ODUgbAo3OTMuNzAwNzg3IDEwMjYuNTE5Njg1IGwKVyoKbgowIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNS45OTAxOTUgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoxMS45ODAzODkgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoxNy45NzA1ODQgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyMy45NjA3NzggMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyOS45NTA5NzMgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQozNS45NDExNjggMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo0MS45MzEzNjIgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo0Ny45MjE1NTcgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo1My45MTE3NTIgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo1OS45MDE5NDYgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo2NS44OTIxNDEgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo3MS44ODIzMzUgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo3Ny44NzI1MyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjgzLjg2MjcyNSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjg5Ljg1MjkxOSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjk1Ljg0MzExNCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjEwMS44MzMzMDkgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoxMDcuODIzNTAzIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMTEzLjgxMzY5OCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjExOS44MDM4OTIgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoxMjUuNzk0MDg3IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMTMxLjc4NDI4MiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjEzNy43NzQ0NzYgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoxNDMuNzY0NjcxIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMTQ5Ljc1NDg2NiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjE1NS43NDUwNiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjE2MS43MzUyNTUgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoxNjcuNzI1NDQ5IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMTczLjcxNTY0NCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjE3OS43MDU4MzkgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoxODUuNjk2MDMzIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMTkxLjY4NjIyOCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjE5Ny42NzY0MjMgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyMDMuNjY2NjE3IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMjA5LjY1NjgxMiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjIxNS42NDcwMDYgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyMjEuNjM3MjAxIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMjI3LjYyNzM5NiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjIzMy42MTc1OSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjIzOS42MDc3ODUgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyNDUuNTk3OTc5IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMjUxLjU4ODE3NCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjI1Ny41NzgzNjkgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyNjMuNTY4NTYzIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMjY5LjU1ODc1OCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjI3NS41NDg5NTMgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyODEuNTM5MTQ3IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMjg3LjUyOTM0MiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjI5My41MTk1MzYgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQoyOTkuNTA5NzMxIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMzA1LjQ5OTkyNiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjMxMS40OTAxMiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjMxNy40ODAzMTUgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQozMjMuNDcwNTEgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQozMjkuNDYwNzA0IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMzM1LjQ1MDg5OSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjM0MS40NDEwOTMgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQozNDcuNDMxMjg4IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMzUzLjQyMTQ4MyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjM1OS40MTE2NzcgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQozNjUuNDAxODcyIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMzcxLjM5MjA2NyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjM3Ny4zODIyNjEgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQozODMuMzcyNDU2IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMzg5LjM2MjY1IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKMzk1LjM1Mjg0NSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjQwMS4zNDMwNCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjQwNy4zMzMyMzQgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo0MTMuMzIzNDI5IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNDE5LjMxMzYyNCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjQyNS4zMDM4MTggMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo0MzEuMjk0MDEzIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNDM3LjI4NDIwNyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjQ0My4yNzQ0MDIgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo0NDkuMjY0NTk3IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNDU1LjI1NDc5MSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjQ2MS4yNDQ5ODYgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo0NjcuMjM1MTgxIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNDczLjIyNTM3NSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjQ3OS4yMTU1NyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjQ4NS4yMDU3NjQgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo0OTEuMTk1OTU5IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNDk3LjE4NjE1NCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjUwMy4xNzYzNDggMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo1MDkuMTY2NTQzIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNTE1LjE1NjczNyAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjUyMS4xNDY5MzIgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo1MjcuMTM3MTI3IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNTMzLjEyNzMyMSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjUzOS4xMTc1MTYgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo1NDUuMTA3NzExIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNTUxLjA5NzkwNSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjU1Ny4wODgxIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNTYzLjA3ODI5NCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjU2OS4wNjg0ODkgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo1NzUuMDU4Njg0IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNTgxLjA0ODg3OCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjU4Ny4wMzkwNzMgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo1OTMuMDI5MjY4IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNTk5LjAxOTQ2MiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjYwNS4wMDk2NTcgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo2MTAuOTk5ODUxIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNjE2Ljk5MDA0NiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjYyMi45ODAyNDEgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo2MjguOTcwNDM1IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNjM0Ljk2MDYzIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNjQwLjk1MDgyNSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjY0Ni45NDEwMTkgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo2NTIuOTMxMjE0IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNjU4LjkyMTQwOCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjY2NC45MTE2MDMgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo2NzAuOTAxNzk4IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNjc2Ljg5MTk5MiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjY4Mi44ODIxODcgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo2ODguODcyMzgyIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNjk0Ljg2MjU3NiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjcwMC44NTI3NzEgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo3MDYuODQyOTY1IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNzEyLjgzMzE2IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNzE4LjgyMzM1NSAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjcyNC44MTM1NDkgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo3MzAuODAzNzQ0IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNzM2Ljc5MzkzOCAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjc0Mi43ODQxMzMgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo3NDguNzc0MzI4IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNzU0Ljc2NDUyMiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjc2MC43NTQ3MTcgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo3NjYuNzQ0OTEyIDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNzcyLjczNTEwNiAxMDI1LjUxOTY4NSAyLjk5NTA5NyAxIHJlCjc3OC43MjUzMDEgMTAyNS41MTk2ODUgMi45OTUwOTcgMSByZQo3ODQuNzE1NDk1IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKNzkwLjcwNTY5IDEwMjUuNTE5Njg1IDIuOTk1MDk3IDEgcmUKVyoKbgowLjA5ODAzOSAwLjE0MTE3NiAwLjQ5NDExOCByZwovYTEuMCBncwowIDEwMjYuNTE5Njg1IDc5My43MDA3ODcgOTYgcmUKMCAxMDI1LjUxOTY4NSA3OTMuNzAwNzg3IDk3IHJlCmYqClEKUQpxCnEKMC4yIDAuMjU0OTAyIDAuMzEzNzI1IHJnCi9hMC43IGdzCkJUCjEgMCAwIC0xIDMyNS43NTI3MzcgMTA1Ny42NzM5ODIgVG0KL09DSE5VUCAxMiBUZgpbIDwwMDI2MDBiNTAwNDcwMDRjMDA0YTAwNTIwMDAzMDA0NzAwNDgwMDAzMDA0NDAwNTgwMDU3MDA0ODAwNTEwMDU3MDA0YzAwNDYwMDQ0MDBhOTAwYTUwMDUyMDAwMz4gXSBUSgpFVAovYTEuMCBncwpCVAoxIDAgMCAtMSAyNzMuMzExMzMxIDEwNzEuNjczOTgyIFRtCi9PQ0hOVVAgMTIgVGYKWyA8MDAxNzAwMTUwMDE4MDAxYjAwMTYwMDFhMDA0NTAwNDk+IDU0IDwwMDEwMDA0NTEzYjEwMDFhMDAxMDAwMTcwMDQ1MDA0ODAwMWIwMDEwMDA0NTAwNDcwMDQ4MDAxYzAwMTAwMDFhMDAxODAwNDgwMDE1MDA0NjAwNDUwMDEzMDA0NTAwNDgwMDQ0MDAxYTAwNDY+IF0gVEoKRVQKL2EwLjcgZ3MKQlQKMSAwIDAgLTEgMjkwLjYyODcxNCAxMDk1LjY3Mzk4MiBUbQovT0NITlVQIDEyIFRmClsgPDAwMzQwMDRjMDAwMzAwMzYwMDUyMDA0NjAwNGMwMDQ4MDA0NzAwNDQwMDQ3MDA0ODAwMDMwMDQ3MDA0ODAwMDMwMDI2MDA1NT4gMjEgPDAwNDgwMDQ3MDA0YzAwNTcwMDUyMDAwMzAwMjcwMDRjMDA1NT4gMjEgPDAwNDgwMDU3MDA1MjAwMDMwMDM2MDAxMTAwMjQ+IDE3IDwwMDExPiBdIFRKCjEgMCAwIC0xIDMxOS40MzM0MDIgMTEwOS42NzM5ODIgVG0KWyA8MDAyNjAwMzEwMDMzMDAyZDAwMDMwMDE2MDAxNTAwMTEwMDE3MDAxMzAwMTUwMDExMDAxODAwMTMwMDE1MDAxMjAwMTMwMDEzMDAxMzAwMTQwMDEwMDAxODAwMWM+IF0gVEoKRVQKUQpRCnEKcQpxCnEKNzUuNTkwNTUxIDI5NC40Njg3NSA2NSA5IHJlClcKbgpxCjEgMC45MDU4ODIgMC45MzcyNTUgcmcKL2ExLjAgZ3MKNzUuNTkwNTUxIDI5NC40Njg3NSA2NSA5IHJlClcKbgo3NS41OTA1NTEgMjk0LjQ2ODc1IDY1IDkgcmUKZgpRClEKUQowLjA5ODAzOSAwLjE0MTE3NiAwLjQ5NDExOCByZwovYTEuMCBncwpCVAoxIDAgMCAtMSA3NS41OTA1NTEgMjk5LjAwNzgxMiBUbQovVkNBVFdTIDE2IFRmClsgPDAwMzIwMDU1MDA0YzAwNGEwMDQ4PiBdIFRKCjEgMCAwIC0xIDc1LjU5MDU1MSAzMjEuMDA3ODEyIFRtClsgPDAwNTA+IF0gVEoKRVQKUQpRCnEKcQpxCnEKNzUuNTkwNTUxIDU1My40Njg3NSA2NSA5IHJlClcKbgpxCjEgMC45MDU4ODIgMC45MzcyNTUgcmcKL2ExLjAgZ3MKNzUuNTkwNTUxIDU1My40Njg3NSA2NSA5IHJlClcKbgo3NS41OTA1NTEgNTUzLjQ2ODc1IDY1IDkgcmUKZgpRClEKUQowLjA5ODAzOSAwLjE0MTE3NiAwLjQ5NDExOCByZwovYTEuMCBncwpCVAoxIDAgMCAtMSA3NS41OTA1NTEgNTU4LjAwNzgxMiBUbQovVkNBVFdTIDE2IFRmClsgPDAwMjcwMDQ4MDA1NjAwNTcwMDRjMDA1MT4gXSBUSgoxIDAgMCAtMSA3NS41OTA1NTEgNTgwLjAwNzgxMiBUbQpbIDwwMDUyPiBdIFRKCkVUClEKUQpRClEKUQpRClEKUQpxCjAgMCA1OTUuMzAzOTM3MDA3ODc0IDg0MS44ODk3NjM3Nzk1MjggcmUKVwpuCjAuMSB3CnEKMTAgLTAuMTEgNTc1LjMgODE0IHJlClcqCm4KcQovRUdTNiBncwovVHI1IERvClEKUQpRCgplbmRzdHJlYW0KZW5kb2JqCjYgMCBvYmoKPDwKL0NBIDAuMwovY2EgMC4zCj4+CmVuZG9iago3IDAgb2JqCjw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMAovQmFzZUZvbnQgL1ZDQVRXUytEZWphVnUtU2Fucy1Cb2xkCi9Ub1VuaWNvZGUgOCAwIFIKL0VuY29kaW5nIC9JZGVudGl0eS1ICi9EZXNjZW5kYW50Rm9udHMgWyA5IDAgUiBdCj4+CmVuZG9iago4IDAgb2JqCjw8Ci9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9MZW5ndGggNDYzCj4+CnN0cmVhbQp42l2UzYrbQBCE73qKOW4OizR/sheMIGwuPuSHOHkAeablFcSSkOWD3z6j+YQDMdhQVFdXdUvt8v345Tj0iyp/zGM4yaK6foiz3Mb7HESd5dIPhTYq9mHZUP4N13YqyiQ+PW6LXI9DNxaHgyp/JvK2zA/18jmOZ/lUlN/nKHM/XNTL7/dTwqf7NP2RqwyLqoqmUVG61OhrO31rr6LKLHs9xsT3y+M1af5V/HpMokzGmjBhjHKb2iBzO1ykOFTp06hDlz5NIUP8j/cW2bkLH+28lps6lVeVs82KvMmo7kAVKIJsRrsK5EEG9AaqM3IOnYbTIAHtqHRU7uF8RhUOBgdHZU2lBXmQJ/WO1C3usgORTOAsyJOzoouhi6aLpVKTxZJFn0F7dB26ABfg3kD0tFtOpnVMa9mEZxMGnUNncfdbTjbv2LwhiyOLwcHhYOjp6LknZ9iy4G42d/bp2adhS45npPEzm1+Ea+HYmWVnmi6WLhp3i7vmDTG8IY75arJ4Ztgxg2PammkrUpttu+gMuhQiV25PE062ZHAWzpDTrTm1bQVd/UzQklx0PoXtnV+PYr3d58WF+zynY8sHnq9sva9+kOd/wDROq2r9/gV31gJYCmVuZHN0cmVhbQplbmRvYmoKOSAwIG9iago8PAovVHlwZSAvRm9udAovU3VidHlwZSAvQ0lERm9udFR5cGUyCi9CYXNlRm9udCAvVkNBVFdTK0RlamFWdS1TYW5zLUJvbGQKL0NJRFN5c3RlbUluZm8gPDwKL1JlZ2lzdHJ5IChBZG9iZSkKL09yZGVyaW5nIChJZGVudGl0eSkKL1N1cHBsZW1lbnQgMAo+PgovQ0lEVG9HSURNYXAgL0lkZW50aXR5Ci9XIFsgMyBbIDM0OCBdIDcgWyA2OTYgXSAxMSBbIDQ1NyA0NTcgXSAxNSBbIDM4MCA0MTUgMzgwIDM2NSA2OTYgNjk2IDY5NiA2OTYgNjk2IDY5NiBdIDI2IFsgNjk2IDY5NiA2OTYgXSAzNiBbIDc3NCA3NjIgNzM0IDgzMCA2ODMgNjgzIF0gNDQgWyAzNzIgMzcyIF0gNDkgWyA4MzcgODUwIDczMyA4NTAgNzcwIDcyMCA2ODIgXSA2OCBbIDY3NSBdIDcwIFsgNTkzIDcxNiA2NzggXSA3NCBbIDcxNiBdIDc2IFsgMzQzIF0gODAgWyAxMDQyIDcxMiA2ODcgNzE2IF0gODUgWyA0OTMgNTk1IDQ3OCA3MTIgNjUyIF0gMTM5IFsgNjgzIF0gMTYzIFsgNjc1IF0gMTY1IFsgNjc1IF0gMTY5IFsgNTkzIF0gMTcyIFsgNjc4IF0gNTAzOCBbIDc0MSBdIF0KL0ZvbnREZXNjcmlwdG9yIDEwIDAgUgo+PgplbmRvYmoKMTAgMCBvYmoKPDwKL1R5cGUgL0ZvbnREZXNjcmlwdG9yCi9Gb250TmFtZSAvVkNBVFdTK0RlamFWdS1TYW5zLUJvbGQKL0ZvbnRGYW1pbHkgKERlamFWdVwwNDBTYW5zKQovRmxhZ3MgNAovRm9udEJCb3ggWyAwIC0yMzUgMTA0MiA5MjggXQovSXRhbGljQW5nbGUgMAovQXNjZW50IDkyOAovRGVzY2VudCAtMjM1Ci9DYXBIZWlnaHQgOTI4Ci9TdGVtViA4MAovU3RlbUggODAKL0ZvbnRGaWxlMiAxMSAwIFIKPj4KZW5kb2JqCjExIDAgb2JqCjw8Ci9MZW5ndGgxIDM5MjE2Ci9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9MZW5ndGggNDM3Ngo+PgpzdHJlYW0KeNrtXAtYVdW2HmO9IHzA5ilaymbzEE1AEFF7+EJ8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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK7i/zCa56YKZW5kc3RyZWFtCmVuZG9iagoxOSAwIG9iago8PAovVHlwZSAvWE9iamVjdAovU3VidHlwZSAvRm9ybQovQkJveCBbIDEwLjEgLTAuMDYxIDU4NS4yNSA4MTMuODQgXQovUmVzb3VyY2VzIDIwIDAgUgovR3JvdXAgPDwKL1MgL1RyYW5zcGFyZW5jeQovQ1MgL0RldmljZVJHQgovSyB0cnVlCj4+Ci9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9MZW5ndGggNDcKPj4Kc3RyZWFtCnicK1QwNTfVM1QwAEILQ2M9C1MFQwMQX8/A2FIhOZdL3zPXRMElXyGQCwC9AgjkCmVuZHN0cmVhbQplbmRvYmoKMjAgMCBvYmoKPDwKL0ZvbnQgMjEgMCBSCi9YT2JqZWN0IDw8Ci9JbTQgMTcgMCBSCi9UcjUgMTkgMCBSCj4+Ci9FeHRHU3RhdGUgPDwKL0VHUzYgNiAwIFIKPj4KL1Byb2NTZXQgWyAvUERGIC9UZXh0IC9JbWFnZUMgL0ltYWdlSSAvSW1hZ2VCIF0KPj4KZW5kb2JqCjIxIDAgb2JqCjw8Cj4+CmVuZG9iagp4cmVmCjAgMjIKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDE1IDAwMDAwIG4gCjAwMDAwMDAwNzQgMDAwMDAgbiAKMDAwMDAwMDExNCAwMDAwMCBuIAowMDAwMDAwMTYzIDAwMDAwIG4gCjAwMDAwMDA1ODUgMDAwMDAgbiAKMDAwMDAyMTc2MCAwMDAwMCBuIAowMDAwMDIxNzk3IDAwMDAwIG4gCjAwMDAwMjE5NDcgMDAwMDAgbiAKMDAwMDAyMjQ4MiAwMDAwMCBuIAowMDAwMDIzMDU4IDAwMDAwIG4gCjAwMDAwMjMyOTkgMDAwMDAgbiAKMDAwMDAyNzc2NCAwMDAwMCBuIAowMDAwMDI3OTEyIDAwMDAwIG4gCjAwMDAwMjg0MTQgMDAwMDAgbiAKMDAwMDAyODk0NiAwMDAwMCBuIAowMDAwMDI5MTgxIDAwMDAwIG4gCjAwMDAwMzMwODQgMDAwMDAgbiAKMDAwMDAzNDc0OCAwMDAwMCBuIAowMDAwMDU0MjEyIDAwMDAwIG4gCjAwMDAwNTQ0NjggMDAwMDAgbiAKMDAwMDA1NDYxOSAwMDAwMCBuIAp0cmFpbGVyCjw8Ci9TaXplIDIyCi9Sb290IDMgMCBSCi9JbmZvIDIgMCBSCj4+CnN0YXJ0eHJlZgo1NDY0MQolJUVPRgo=",
    "pix_message": "",
    "pix_transfer_type": "manual",
    "receiver_conciliation_id": null,
    "source_account": {
        "account_branch": "0001",
        "account_digit": "4",
        "account_number": "1000087",
        "financial_institution_compe_number": 329,
        "financial_institution_name": "QI SOCIEDADE DE CRÉDITO DIRETO S.A.",
        "owner_document_number": "32402502000135",
        "owner_document_number_formatted": "32.402.502/0001-35",
        "owner_name": "QI SOCIEDADE DE CRÉDITO DIRETO S.A."
    },
    "source_subtype": "outgoing_pix_transfer",
    "source_subtype_translation_ptbr": "Saída de PIX",
    "transacted_at": "2024-08-26 21:34:03",
    "transacted_at_br": "2024-08-26 18:34:03",
    "transacted_at_br_formatted": "26/08/2024, 18:34:03",
    "transacted_at_formatted": "26/08/2024, 21:34:03",
    "transaction_amount": 358.94,
    "transaction_amount_formatted": "R$ 358,94",
    "transaction_key": "425837bf-bff7-4be8-bde9-75e2cb0bea7c",
    "translated_chargeback_reason": null
}
```

**Response Body: Comprovantes de Compra no Cartão**

```json
{
  "origin_key": "f17c219a-e11d-4b5c-b00a-8ee2135f581a",
  "pdf_encoded_string": "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bnQgLTIzNQogICAvQ2FwSGVpZ2h0IDEyMzIKICAgL1N0ZW1WIDgwCiAgIC9TdGVtSCA4MAogICAvRm9udEZpbGUyIDE1IDAgUgo+PgplbmRvYmoKNiAwIG9iago8PCAvVHlwZSAvRm9udAogICAvU3VidHlwZSAvVHJ1ZVR5cGUKICAgL0Jhc2VGb250IC9PWkNRS1grRGVqYVZ1U2FucwogICAvRmlyc3RDaGFyIDMyCiAgIC9MYXN0Q2hhciAyNDMKICAgL0ZvbnREZXNjcmlwdG9yIDE5IDAgUgogICAvRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZwogICAvV2lkdGhzIFsgMzE3IDAgMCAwIDYzNiAwIDAgMCAzOTAgMzkwIDAgMCAzMTcgMzYwIDMxNyAzMzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDMzNiAwIDAgMCAwIDAgMCA2ODQgMCA2OTggNzcwIDAgNTc1IDc3NCAwIDI5NCAyOTQgMCAwIDAgNzQ4IDAgNjAzIDc4NyA2OTQgNjM0IDYxMCAwIDY4NCAwIDAgMCAwIDAgMCAwIDAgMCAwIDYxMiA2MzQgNTQ5IDYzNCA2MTUgMzUyIDYzNCAwIDI3NyAwIDAgMjc3IDk3NCA2MzMgNjExIDYzNCAwIDQxMSA1MjAgMzkyIDYzMyA1OTEgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNjEyIDAgMCAwIDU0OSAwIDYxNSA2MTUgMCAwIDAgMCAwIDAgMCAwIDYxMSBdCiAgICAvVG9Vbmljb2RlIDE3IDAgUgo+PgplbmRvYmoKMjAgMCBvYmoKPDwgL0xlbmd0aCAyMSAwIFIKICAgL0ZpbHRlciAvRmxhdGVEZWNvZGUKICAgL0xlbmd0aDEgMjYxMgo+PgpzdHJlYW0KeJzVVGtUVNcV3vd+98wA8+DOMBBRUQhe34gOgi+SIsH6tigkQltTlHEkVoOK8VFKtLFoJDGYGsdnjFVrI1o7tUZRNG0qJk2RtgZx1SatNdGkttaY1Ggy2k32YLq6Vtdq/3b1nHvOPd+333ude0kjolhaSSCzfMniVHosZQSRtl4WBxfMmb9w6JK5RBBM++fMWx7cPd0aJ+ftsm5WzJ4ZcCW8mkNk5ArOqRDC9ZK9UvBiwb0q5i9eFldIGwVvFhwzr7J8pvgdLninYOf8mcsWGJW2hYIPCE5dsGj2glH2j+RonCFSFaRTkENGUO2R7OzUNc9p3CHbHS1GrdANymw+d20Imeeunbs2OMGT5rHSPGlBg+5WodvdKxyyuz/9eJGtH2mUKb4abD7qRePyEnqTPVbFONO6uHrEeJxppm+SZd7NbfY3y2bmytbcPITyPLEuzz6v3nUNddlk6+k94YjPzH3f7+fc637zut8/WEtMv9+WoqUlpnnSPdGVnp2VPTRnVJS3RwUCslRDuHyylslnj7H9WDh88OTBcHmf3tpnB0/afFsKK8rr72bibHTVT2nav6Vv34pyeWvZ1EgtMl+jBtqu7RUUlIYsFGanfohq6QlhTmkt2lo9Q7i9dIPaRHMNtaDBIG0CZQlLdEHpdFMrpsPiY4Tm00bYbQYZU4zDxjSj0fjAaKVhRpXRapQZVVoWdqlH1F5ZI3Ba99Kb1JMatYtURcdxFVk4YRQYbrqIVjTQFYliiP8Wqqc9VC25+LRKWqFX69OEeUO10laZlSJv1XZobZLdcW0VtdNmGPo42qG1S10tdItWoVhfIfcqSw9K/m+Ir1ax30pVBql2LY5YHyDc4c57NqtzT0GGau+cN2iFRC6mPbZGm8+eLlGiHdurndKu2TbQTmrD17EQb2u1RrrxsjGO6u91AGVUL763Rm1sQW251B6d1VHv+lKjTGugq0aZfZb4Ph2tSGIe1qdJRUE6IWupzZSaRmm1WCuZRqUp1GqfYGSKvXiw10jVRJXIprlyqqaDdIgyEKJ68dRZr22YuiWW241LUnO9tk6/Ra0ooH4UNK5Lr8lHFCI6arcpA7pGA1PNsG6ND4Tzppak/rI0LWPgv8FU054apsKwa3lqY0dHYYnRTZWGVfcwrJiwYaVf+k/CSxkDJxaWpIb/MabgC69jygqEKyqRYxQJLfyYgk5ZNGhYWfKMLwunllek1pl16SPrzNkjM+RTlor1Rxtjb556/BvxuZ9QzxiKjrYLcQP/+b59/u4kd2nsO9Hvn+5ZdO72+ZxC5Obb5yNT3aVf8P8autzQoFoV/XY7R0H0f3MvHoppAFWQU/4OJm2JejUS9SR5G436yryOO4yID59Z+NSP2yHccuMTxk3G3y187MZHIdyw8GHdaPUh43oIfwvhWgR/jeAvjKsj8ed8fMB4348rl4vUlRAui+LlIrz3bqZ6L4J3M3GJ8SfGRT/+6MMfQniH8bYXv6/BhSb8jnFe1M/XoP3cWNVeg3Nj0fZWN9XGeKsbzjJ+y/gN49eM1hDOtPRQZxgtPfArP95kvF7rUa93x+kkNDNOMX7BeI3xc8bPGK8yTjJOMJoYxz04ttpSxxiNR5tUI+PokRnqaBOOrjSOvGKpIzPyOnAkz3jFwmHGT0M4xPgJI8z4MeNgAD9y48B+Sx0IYH+DV+230ODFPkl6XwQvM37I2Mv4gRd7GLt3udVuP3a58f0AdorKzhBeYux40al2MF50Yvu2ZLU9gG1bTbUtGVtNbInDZsamkEttYoRc2ChGG0N4YYNbvdAXG9z4XgTPr29SzzPW189Q65uwfqVR/5yl6megPs94zsI6xrPPDFLPMp4ZhDops2401j7tUGt9eNqBNUKsCWC1dGq1hVoPvstY9ZRHrWI85cF3GCsZKxh5HU/W1KgnGTU1+HYA1cWJqtrCtxjLGcvcWOrEkjg8wVgcQVUEiyJYGMECRiXjcca8NHyTMdeTr+YW4TFGRQ3mCAgyZjMCjHLGLMbMkSiL4FEnZjC+xvgqo7QkTpVGUBKH6UnJarofjzAelsgP56M4EUWaqYq6YJoPUyckqKmMQge+wpgy2VRTGJNNTGJMFMlExoTxppqQgPEpLjXexDgXxjK+HMKYEAoYD+kZ6qEI8psweiLyGF9iPPiAVz3owwO58eoBL3JHuVRuXkc8RrkwkjGCMXyYTw2PYFiOqYb5kJPtUDkmsh0Y2gNZLviHOJSfMcSBwZkONdiFTAcGZcSqQSYyYjHQjwH9LTUggP79vKq/hX5e9O1jqb6j0cdCb8uhesfDcqAXI51xfzzSpM40L1ID6BlBDymhRwApLnSXDnZndIugaz6SBSQzugRwn3TqPkaSGCUlI5HhYyQwvKLgZXikVk8+zBrEB+BmuJxJysVwirYzCQ5GnIlYRoyoxTDsPtgCMERoyA1IhLBg+YuaSs+AZoIYWqMWqF2nDfh/GPS/TuC/jpTPAddlx60KZW5kc3RyZWFtCmVuZG9iagoyMSAwIG9iagogICAxODYyCmVuZG9iagoyMiAwIG9iago8PCAvTGVuZ3RoIDIzIDAgUgogICAvRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJxdkM9qwzAMxu9+Ch3bQ3HTcwiM7pLD/tBsD+DYcmZoZKM4h7z9ZDd0MIEN0vf9zGfpa//aU8igPznaATP4QI5xiStbhBGnQKq5gAs271297WyS0gIP25Jx7slH1bagbyIumTc4vLg44lEBgP5ghxxogsP3dXiMhjWlO85IGc6q68Chl+feTHo3M4Ku8Kl3ooe8nQT7c3xtCeFS++YRyUaHSzIW2dCEqj1LddB6qU4huX/6To3e/hiu7qa4R4GKe58XrnzyGcquzJKnbqIGKREC4XNZKaZC1fMLU0ZwxwplbmRzdHJlYW0KZW5kb2JqCjIzIDAgb2JqCiAgIDIyMwplbmRvYmoKMjQgMCBvYmoKPDwgL1R5cGUgL0ZvbnREZXNjcmlwdG9yCiAgIC9Gb250TmFtZSAvU1NDR0haK0RlamFWdVNhbnMKICAgL0ZvbnRGYW1pbHkgKERlamFWdSBTYW5zKQogICAvRmxhZ3MgNAogICAvRm9udEJCb3ggWyAtMTAyMCAtNDYyIDE3OTMgMTIzMiBdCiAgIC9JdGFsaWNBbmdsZSAwCiAgIC9Bc2NlbnQgOTI4CiAgIC9EZXNjZW50IC0yMzUKICAgL0NhcEhlaWdodCAxMjMyCiAgIC9TdGVtViA4MAogICAvU3RlbUggODAKICAgL0ZvbnRGaWxlMiAyMCAwIFIKPj4KZW5kb2JqCjI1IDAgb2JqCjw8IC9UeXBlIC9Gb250CiAgIC9TdWJ0eXBlIC9DSURGb250VHlwZTIKICAgL0Jhc2VGb250IC9TU0NHSForRGVqYVZ1U2FucwogICAvQ0lEU3lzdGVtSW5mbwogICA8PCAvUmVnaXN0cnkgKEFkb2JlKQogICAgICAvT3JkZXJpbmcgKElkZW50aXR5KQogICAgICAvU3VwcGxlbWVudCAwCiAgID4+CiAgIC9Gb250RGVzY3JpcHRvciAyNCAwIFIKICAgL1cgWzAgWyA2MDAgNjg4IF1dCj4+CmVuZG9iagoxMCAwIG9iago8PCAvVHlwZSAvRm9udAogICAvU3VidHlwZSAvVHlwZTAKICAgL0Jhc2VGb250IC9TU0NHSForRGVqYVZ1U2FucwogICAvRW5jb2RpbmcgL0lkZW50aXR5LUgKICAgL0Rlc2NlbmRhbnRGb250cyBbIDI1IDAgUl0KICAgL1RvVW5pY29kZSAyMiAwIFIKPj4KZW5kb2JqCjI2IDAgb2JqCjw8IC9MZW5ndGggMjcgMCBSCiAgIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCiAgIC9MZW5ndGgxIDc1MDAKPj4Kc3RyZWFtCnic3Vh7eFRFlq+651a/b/ftTj/S3Uk/0nQCAknIg5AESPNQHkGMwDBBiAQIzWuAaGCAhUgYx1FRRx00xgiGYAZRXjFkFcNjIkblKTAGHQV1WPExY8OwLiK2obLn3gR1/Hb223/2m/22K1W36lTVvafO43dOhVBCiIHUECCBOYtnVZ4t3HSeEIuOEOGOOb9cFhj+6iDsWytwPCVaOW/xdGHRZUIS9uKuHfN+sSo6aPLYbUqfEPOM+XNnVZj7HNQTYsf1ZPB8JJh3ax/E8UYc95m/eNnK1SMN83HcjuPyXyydM4uQPc2EOAI4rlg8a2WlpkwzEMe/xnGg8u65lWtmbfkcx02EaJ8nAonyWjHKmpBbLfHvJyJNxYUamvoy1bEHBZFkdHTGBhG5M9YZy0ywBq3hoDUYFUlXFXi7PuW1WvO1r+7W9MM9hJJo9ydsBrtM3KQw4jHJeuIESXY7d4G8S78R6jwJA01E098jd3VkKe+8cCUm8w75DastH/8yWzO8M70CLQubaShArDIJZjld1nQaShEcdlt21uA8NmPhZ9X8IT6BttLl1Z8tXHSq6u1Y7O2qU4sm5Q2hjXQujdLGIXn82LjR/NoXn/Nro8chXwIpRb7SxNXESFxkYCRB02gjjaajtrpE/UjLBBjpKEyUu2JdN1i6lPlyXkKRe0wC0DKaonHYnfjt3JxU6GFKbYXXVlRXr1i+Zs1yGqQ38338Y/4Rf5WOgdXbGxu3K5USfpjHsBymQ6gdy5AeGb2Icm9FXsJkQaSf12HTi1oS0GgTLWcDp0Jw1LcnKUFL7DaTTtKMtUu2sX6vlCynyl3FzZYppa+SZBIZMq1rqMKuIrRBJGPo0AtXhl6IZVnzsbjyM2nE4k/LTCtJq0yrSXssbXeatowOp9lZTgdqbzjFg4RSNFrsqx2FGHSo82Lb6H2Vrx3ldZTeMjG6VOB1kUnzKnE4f+T2ectaYOv8xZc+uT5VGCsleVYs2tZw/QNhbNuiFzZdf18sb5pZXklUWe/gU9mdeD6ZJKEVJLsaySmztZGd0h0119GPYE+yZ6QxYheJJMjJKPWsrCuq3C9cuHIhJl+4lNl6m6/cp1jB94wp8g6lpCb8SBWCjdfT6PjW5SepgV89uby1qWr16qqqVau2XG/VGJpml/FX+HUsr5RB3gsNDS9s27x5G8oefQpiyJuV5EWcVrNeoyXQbnzCfFS/R2vQSEQn2xRBJyiC1nW3D5nWEctCCSNrXR1W1UapYo4/FpoLYhllGeufVPi5eU+17aa+kOF0vPT7611i+d4lc4EpOvcTwtxiOdGQdyJpkCwyUUimAlMeIGjQ25LR5cICkI+ZhoFAmUi0cmdrA24UyjpcipZjWfmZxZNLtTK7qJV1vZVdnJZCI2tQ6oKMJSBkChFhqhAVaoTHhM1Cc29px3IKy5/VchmLmxGBSmAQHSSBJoFHTCV9aH/oJw4mOTQf8sVM3S3kFjoOxonlupWa++kDcD97QFNLaunT8LT4JKvXbIOX6avQp4yUJQT16ARBPzqfizrpPD6GrxDLu+Kg+W4zueF/4hsodwNa/abITXoNcfuN5I+uk5oG8ylr4Lj/WFJD6Ki1zkRCLkiU9JJxmB8keyGafazjCtqINT8/X1VEF/rnZ5euXsrvgYzIhIy0YYFhwaK0WwO3BssCZcElgSXBewL3BCvTHg48HNwU2BTcGdgZPBA4EHRk+TL9o3wR/2RfiX+Or9x/n6/Gv8H3mH+Lb7O/xdfsl8t+5O/DKBpgLiJRSmpuTp9g9g23QaUHRGFL5V3Tb5+7ni7gT41tXbfrfWqhKe/85rdVb/6s6otlNINK9NqE8aNvfXxxv/uvr9saLTu25Y29ST+7LT2dWpOS/6biANois6FMXCQ3kiiJhBrO2k45jsp7zFSQyBirJFlkBZZU/8gYqriHIoXM1nJ3jRv9gyJ76MJpPzVIZuN1kuwYm15Zo9jk7S8vOXREePH61KX0mceXeEJpO59W/XV22aUePPKiTzSxZ0kCWRzxmJnOAo1WukfXSAw6o17Qo6PKNvMUew8AFTfLU6YXN1uVxjZlOrqJWcGjoR1dQzs6bKqOOmJXhipgpABRYhEpSkDjJGCRLdYSoQRKHOVCOejRaqjCstXuLMQOytgasmZbhWx6F390+Iy9/ETnSy0t7Fl+qJvw8MS8bvJSJz1LCR3+PZ4bUHZ25H5UJEgcf6L647pO1mCi7yU22I6a6pK8DkHnkMhoQbIUJqEYr8Q6VLhUEP6CzK9cki8pESe5KFmRpSPoo0qAsX4fegKE9WicGbr2SRsfvuti9Vq+lp/iu2kxTaE6Oow/tqJ8/q9kITt6zz2jRvNY5iCaiw5gowX80IZo9fIlPbY/A3k1a+wqHg6JeH/AwzrzUfocqEgYQUwsTFa5zFIAJ/ZTMFSFpVqjwhxqGVQYDKnWClvpfF43vmX5SX6VGk4u27MFgbDq7lWrYL9Q+m1sy5wZdBwFLOPKuo4oSKiioaJ7A9rgQnYGI392xKwR2skjIh0CTjKE6eTO4mYD6tusapkpWlYjZAaymElbInqKfq+qMGhg5dyKspHZGf7hdxPFFvXdC9HnZ6OO0si5SEQyCWbjYJ/fxzRanZ6JhsF+vy9sMPr8iEDHaadoP+7oTGywig1hhIG+PoPR79WSyd5JZru2JOXWvgoOdMYuoAZVIOjJHL6+JH99yebqxUXzRQx+vY9pKS06I6VlkTv1er1BbzSajJLewkIek0fymBMtA3Tp+nRDujHdlC71C+TrCvWFhkJjgalAKtaPN4w3jjeNlVaYVkhtujZ9m6HN2GZqk8JmjVlr1pn1ZoNkzJOK+s3s12PGPQ5od/qp6HTYRTTmNKtqTaigDIwXuTmDleDqqnp3ZnRO8awimnCQX+PxpRerF51ftmDhuMVFf2u/0jXnA3EYv5yZmZ3bP92oD23evqc1FKJyTk5BfmaGpPNt+X3LDh/p7ialfKmYK662pRIHIbKWOAlmjgpdwVhNPtK1mF1qEVfaUA+6VmNRpl/bf5Bqi5ifaaKYnyl5UBbmQbtsZJdpo5IHDbTkwUBH/5/kQREjcbsSZHeGu8jNFHDsScRsuTnCj5MhiDYfOtT80qFDL9H5tI6jMfKn+Tz6tPg+74p9ybuo+GWMitTFK/iTvJZX0I10IV1EN/bkC9jY0D+U/LMfWuGHZI/4nMAoQqKsk7uGqhEYHSMzoi/Rl+sr9TV68Qfb20GjCsrxerH8u80aOz/X43P8FmYWV6HH9SXFkdQkCxDHcWenu8GW3Gg6pT8q7Qk12j4gpyDVRCRzxBEYqSnsdyPWKHHmQo8HookpJodueFP5Tb2ZaQrJzVE80JUbVATwg7bhx6niVnTHE/wKNZ1Y3jIe3XM737+gY86drdObm2JL16ysqlyz5uDsGXRU/Ds6YsacrV1W/hX/JBCkrsG59U2gaaqtb2h6srYJz7IfU4N89FEd6iw94iDt+kdou1MnOA2EDZTTiVMPPVqz9viGKquWEjdVUKOHmxANBkSX0+awC1qN2I8Kw9bHvr128frXtJZOobeuWBCNLljJm7EsFFu67vrrxx99QUOzls3l155/gX8zd9ksxZ8V+0K7w9w+L+JRfdZ8XOo0NFrFRhf6rEc7UiL2wr/P7a8oHprZOtO71quC2A1X+XuoRefIHbfhttrnn6+d8lRkys6f89P8RTqVZpRuR584l5W5e9Om3VmD+Fm/n+ZRB5Y8vxq7qIYvFY5hLwFjqMmglzQkQU9k0Nvlzs7jmA6jNDqPdx7PpAqWlR4g9u52PIkdS2SINW/INER9h12DIT6D3vDYNOGOgrzVazOjOTRrcrBgRP+BwxdmzJwuSXWyJb2vZ9JQRRZNzAszNPnER45E7C6rDHZJRwkkMXeiXTLomX0/TSJJ1EsYTYpYpDf8VioTnavGrasx+NWrVK+y5CuoOLQwq1pdas0kxc36XuQ9QPwqy34sPSxHpuiJnmJgBpPJJJnMJotJNllNNlOCyW5yWJwWlyXR4rZ49D4P8VCP4IEe0PNavLLX6rV5E7x2r8Pv9Lv8iX633+Px9XUYqZL5pKWmKQElmYZUwPL3iGQYzVYlJAh5oibD3Sf1oXllfcb1G+YMW/r0Vfqj2JSwIPqHF+oeeMLr62+RI/nYSyQ92QUQ5TZsIqIwEZ8+jIKAKcNa0k0n01l0Jb2H/k54UzgXSA1kBgoCO4IpiGR4TyWb6SRajvPVvfMJOJ///fw//lH8xjlajwjzLJbNveVNLIfpYZw3/re7/6c/xYb+q5/1+570D/dq1dakxF60W0JsvXRADxeIiD2GEsIbP94W/q/+5N6n5Z/FAF41smkUsfEv2B9GtpA4+JVbEIkiVXnuoFNIDOdn48p14n0Ic1G6WEQ8xfm14gl8hUCzyWxyF/bCYhPdj9HyU9y9jj7CxrI7lNXqh5R3XWWv08ssX8gnpeJicZjYIq4TW3DFcjEqriPN2OYLp8WN4mrxJOJjqcIZnaBUNbrV0/E0ROqFejqauulo4QR5TeW/CK20kB1jx8gZcoaW4ModZIVgoG/Rr/ACUUpbcNdVcpX6cZQr5NJL9HPkuI6chlJmIPXkUWrD0X5yAvn+lHxFqvAKESWPsjNCf4wWr5Pz5D2kE7KQCtgmw0B2Bstlso0sRMmcx+vnGY1dGxSjwjUSo/cKW4VrNEQFLDbqR2neCSfEcvEt8UGcRelQAbLBDyOxnaGsYGdoPXJxXhOlq3CdUlbjd2LC68JePONB8iGeC78uzBBWC/XkQ7qLtlHF1u+ju8Ry7WzRS+o19WIpuaTIhpwWTqA8SlR5PEQe0gwiV0UNuQwTaLm4TZEYCbPXMP8PasdrbHgLHa+9F09CII+sVn3xCCXstZ6Cq3SaZFIrpsGzyLsgVN+QG11FTgj5MJtsVMsGupdswOypiuArIPUVrYaJePkmAwJysxAeV9Ecub00cHhacOCAnwwDsjbQTEqapVWBvd3dJaWil01rZknNENY1i+HQ+X80eX7ggOKS0sBe2vfm0b2vvbl8NBInl2JXGSEZ6TePVueUrzazMP6NK28OzJkfWC+vDxWsl+cWDFRRVbhzrys0YexMy9CviV+nmus77xsCN57f3N21y3JCPxfXKpO0x3EQgBbzZHTh4Dd3f5tlOdFL/+GXiN4RZR9jXUtKdVPJi6yN7ICvyA6WR/wsSkpZC47fIV62mJQKRxCu2sgMtpwYxNfJQvEgzuMaDb5DOIh7cE7TRPYrdLRPDcJbU+93JmC9gAxV4kFKsMZQmxWEiFjZyh7w07Qit+W9tQuT2VJC9M1YEcn1uN5Qg7UTQX0zAmpfrJgrSTnK/03VUyXCRNKfrESsFRCxIooU2EUhiE9xxK+FGppKOAEaRtQG2ocGSQGG6z4kjqMQZtWAt7weWoq6TukDDajzfrIPWx+pwDZZnU3CvAgw4Puw9agUt9omqq1LbZ1q66B2xHdGHepI6QNNUPs2tbVQM6nGeYs6UvpAJWoiDyNNUmkSaSciNVEjmYY0ZQawrUGakRpIKtKUGcA2gjSFAlSv7tSprRYlorTKDk3LU+lsRALVqOdiaiuqq0A9kaBSqNqSSHc1dA8HzqHruwGsi8N3AyDO4dtrY9i31XBtDHwTh6scvuZwhcN/7IOvOPw7h8sc/uaDSxwuxgzsIoeYAWIR8cu/GtiXWfBXA/wlDl887mRfcPg8Dp/F4VMcfMrhAodPOPwbh/Mc/szhYw4fxeHDc4nswwo4lwhnN/vY2Qr44P0w+yAO74fhT6fD7E9xeO9dO3vPCe+ekdm7djgjQ+c7RtYZgHeM8Edc8cc4nMb3nw7DqSdM7FQITr5tZydT4e0TNva2HU7Y4DhOH0+GY3Y4emQfO8rhyOEydmQfHKkRD0e63wqzw2VwOCK+FYY3ObxRAR2PyayDw+tJcIjDaxza/1DA2uPwh51e9ocCOHjAww5mwYH9VnbAA/v3Wdh+K+xrM7F9Fmgzwav4sVc57OXwigNetsG/cmjlsIdDiwteckOzE3bje3bHYRc+dsVhJ67f6YUd+NhRDds5vJgKL3DYxuF5Dls5/N4ATRye22Jmz3HYYoYtEbERBdUYh824ZbMPGvDREIdn8fDPJsEmDhuf2cc2cnimvow9sw+eqRHrHw2z+jKoj4hPc6hD66jj8FQ61OLGWl+kG57ErU8G4AkTbEDShmL4HT5+x+FxlMPjTnhMhkfD8FsOj3B4mMNDHNZzeJDDA/eH2QMc7g/Dbzjcx+HXWXBvLfyKwzoONW5Ya4B7OFRzWMNhdRz+JQ6rOKz45Va2gsMvt8LyZV62PA7LvFAVh7ur4S4OlUsHsKUDYEkcFsfhF3FYxGEhhwUc5s8xsflZMI9DNAvmVhjYXA4VBqiIiHNmG9gcE8w2wKxyB5tVC+XUysodMNMAd3Io4xjZrGwGh+l3eNl0Dnfg6A4vTONQGoefc5iK40j3VA4/4zDFB5PtMOl2N5sUh9tx4nY3lNzmZiVxuG2ild3mholWuNUHE4rtbIIDisdbWbEdxo8zs/FWGGeGsXEYc4udjXHALXa4OQ6jR5nZaAuMMsPIEWE2Mg4j8J0jwhApsrAIh6LhZlZkgeFmGDZUYsOcMFSCwgoo4JBvhyEc8hJgcK6HDQ5Dbo6d5Xogt13MMUgsxw45NWJ2loll2yE7ImaZYFDmVjaIQya+P3MrZJggPQEGDihgA+MwwBFmAwqgfwXcVAH9OPR1QJrLytJ8kBqAsA/6hFAA/fv4IGSFFCKxlDgELRCMiAE7+A3g80FykpslhyHJksCS3JC0FzHjcdErgcddzDzV4MaPuoshkYPLCk78mjMODqQ5wmCvgAQr2DhYcWzlIFeAxSwzSwJY2kWzDOYaUcIZKQ6mLDDi0YxOMNaIBgkMEVHPQcdBy0HDDEzDgRmARUQxDlCBAd3KBI7oJTFqBSIB3Usr7nuE9v//8SP/bAb+F3/J5D8BQW8xlQplbmRzdHJlYW0KZW5kb2JqCjI3IDAgb2JqCiAgIDUyMzIKZW5kb2JqCjI4IDAgb2JqCjw8IC9MZW5ndGggMjkgMCBSCiAgIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nF2Sy26EMAxF9/kKL6eLEY/y0EgIqZpuWPSh0n4AkxgaqYQoMAv+vnY8mkpdgE/sa8vckJy7587ZDZL3sOgeNxitMwHX5Ro0wgUn61SWg7F6u53iW8+DVwk19/u64dy5cVFNA8kHFdct7HB4MssFHxQAJG/BYLBugsPXuZdUf/X+B2d0G6SqbcHgSONeBv86zAhJbD52hup224/U9qf43D1CHs+ZrKQXg6sfNIbBTaiaNG2hGcdWoTP/ankqLZdRfw9BNcUjSdOUgmqqMTIFYiNsiOs0MgXiXDhnroQr1meiz5hRGFlTiKbgfCn5kjiXmTnPrERTsaYULplr2a3m3bCOTIFY8sj5QnYu4s4nmXNiFn3F+kJmUmBDbl/O1vAd3j3X1xDI7njR0Wd22Dq8/wt+8dwVn18CZZ1jCmVuZHN0cmVhbQplbmRvYmoKMjkgMCBvYmoKICAgMzE2CmVuZG9iagozMCAwIG9iago8PCAvVHlwZSAvRm9udERlc2NyaXB0b3IKICAgL0ZvbnROYW1lIC9CTE5BUlErRGVqYVZ1U2Fucy1Cb2xkCiAgIC9Gb250RmFtaWx5IChEZWphVnUgU2FucykKICAgL0ZsYWdzIDMyCiAgIC9Gb250QkJveCBbIC0xMDY5IC00MTUgMTk3NSAxMTc0IF0KICAgL0l0YWxpY0FuZ2xlIDAKICAgL0FzY2VudCA5MjgKICAgL0Rlc2NlbnQgLTIzNQogICAvQ2FwSGVpZ2h0IDExNzQKICAgL1N0ZW1WIDgwCiAgIC9TdGVtSCA4MAogICAvRm9udEZpbGUyIDI2IDAgUgo+PgplbmRvYmoKNyAwIG9iago8PCAvVHlwZSAvRm9udAogICAvU3VidHlwZSAvVHJ1ZVR5cGUKICAgL0Jhc2VGb250IC9CTE5BUlErRGVqYVZ1U2Fucy1Cb2xkCiAgIC9GaXJzdENoYXIgMzIKICAgL0xhc3RDaGFyIDIzMQogICAvRm9udERlc2NyaXB0b3IgMzAgMCBSCiAgIC9FbmNvZGluZyAvV2luQW5zaUVuY29kaW5nCiAgIC9XaWR0aHMgWyAzNDggMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCA3MzMgODMwIDAgMCAwIDAgMCAwIDAgMCAwIDAgODUwIDAgMCAwIDAgNjgyIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDY3NCAwIDAgNzE1IDY3OCAwIDcxNSAwIDM0MiAwIDAgMCAxMDQxIDcxMSA2ODcgNzE1IDAgNDkzIDU5NSA0NzggMCA2NTEgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNjc0IDAgMCAwIDU5MiBdCiAgICAvVG9Vbmljb2RlIDI4IDAgUgo+PgplbmRvYmoKMSAwIG9iago8PCAvVHlwZSAvUGFnZXMKICAgL0tpZHMgWyAyIDAgUiBdCiAgIC9Db3VudCAxCj4+CmVuZG9iagozMSAwIG9iago8PCAvUHJvZHVjZXIgKGNhaXJvIDEuMTYuMCAoaHR0cHM6Ly9jYWlyb2dyYXBoaWNzLm9yZykpCiAgIC9BdXRob3IgKCkKICAgL0tleXdvcmRzICgpCiAgIC9DcmVhdGlvbkRhdGUgKEQ6MjAyMDA4MTAxMjE5MDlaKQo+PgplbmRvYmoKMzIgMCBvYmoKPDwgL1R5cGUgL0NhdGFsb2cKICAgL1BhZ2VzIDEgMCBSCj4+CmVuZG9iagp4cmVmCjAgMzMKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDI0MDE1IDAwMDAwIG4gCjAwMDAwMDE1NDggMDAwMDAgbiAKMDAwMDAwMTM2MiAwMDAwMCBuIAowMDAwMDAwMDE1IDAwMDAwIG4gCjAwMDAwMDEzMzkgMDAwMDAgbiAKMDAwMDAxMzU4NCAwMDAwMCBuIAowMDAwMDIzMzU1IDAwMDAwIG4gCjAwMDAwMDE3NjYgMDAwMDAgbiAKMDAwMDAwMjc1OCAwMDAwMCBuIAowMDAwMDE3MTQ3IDAwMDAwIG4gCjAwMDAwMDI2ODUgMDAwMDAgbiAKMDAwMDAwMjY2MiAwMDAwMCBuIAowMDAwMDAzNjc3IDAwMDAwIG4gCjAwMDAwMDM2NTQgMDAwMDAgbiAKMDAwMDAwMzc1MCAwMDAwMCBuIAowMDAwMDEyNzA5IDAwMDAwIG4gCjAwMDAwMTI3MzMgMDAwMDAgbiAKMDAwMDAxMzI4OSAwMDAwMCBuIAowMDAwMDEzMzEyIDAwMDAwIG4gCjAwMDAwMTQzMzQgMDAwMDAgbiAKMDAwMDAxNjI5MiAwMDAwMCBuIAowMDAwMDE2MzE2IDAwMDAwIG4gCjAwMDAwMTY2MTggMDAwMDAgbiAKMDAwMDAxNjY0MSAwMDAwMCBuIAowMDAwMDE2OTEyIDAwMDAwIG4gCjAwMDAwMTczMDggMDAwMDAgbiAKMDAwMDAyMjYzNiAwMDAwMCBuIAowMDAwMDIyNjYwIDAwMDAwIG4gCjAwMDAwMjMwNTUgMDAwMDAgbiAKMDAwMDAyMzA3OCAwMDAwMCBuIAowMDAwMDI0MDgwIDAwMDAwIG4gCjAwMDAwMjQyMjIgMDAwMDAgbiAKdHJhaWxlcgo8PCAvU2l6ZSAzMwogICAvUm9vdCAzMiAwIFIKICAgL0luZm8gMzEgMCBSCj4+CnN0YXJ0eHJlZgoyNDI3NQolJUVPRgo=",
  "source_account": {
    "account_branch": "0001",
    "account_digit": "3",
    "account_number": "00022",
    "financial_institution_compe_number": 329,
    "financial_institution_name": "QI Sociedade de Crédito Direto S.A",
    "owner_document_number": "32402502000135",
    "owner_document_number_formatted": "32.402.502/0001-35",
    "owner_name": "QI SCD S.A."
  },
  "source_subtype": "incoming_credit_card_settlement",
  "target_account": {
    "account_branch": "0001",
    "account_digit": "0",
    "account_number": "07834",
    "financial_institution_compe_number": 329,
    "financial_institution_name": "QI Sociedade de Crédito Direto S.A",
    "owner_document_number": "99195609000120",
    "owner_document_number_formatted": "99.195.609/0001-20",
    "owner_name": "Giba"
  },
  "transacted_at": "2020-08-07 14:45:51",
  "transacted_at_br": "2020-08-07 11:45:51",
  "transacted_at_br_formatted": "07/08/2020, 11:45:51",
  "transacted_at_formatted": "07/08/2020, 14:45:51",
  "transaction_amount": 93.84,
  "transaction_amount_formatted": "R$ 93,84",
  "transaction_key": "bcebffa1-bab5-45b0-b0a2-894f45fcc004"
}
```

### Error Response

STATUS 4XX

Response Body

```json
{
    "title": "Título",
    "description": "Description in english",
    "translation": "Descrição em português",
    "code": "Código"
}
```

---

# Consulta de Transações

URL: /documentation/movimentacao_de_contas/consulta_de_transacoes

## Request

ENDPOINT /account/ ACCOUNT_KEY /transaction
MÉTODO GET

### Request Path Params

| Campo           | Tipo   | Descrição                                |
|-----------------|--------|------------------------------------------|
| `account_key` * | string | Chave única de identificação da conta QI |

### Query Params

| Campo       | Tipo    | Descrição                                                                 |
|-------------|---------|---------------------------------------------------------------------------|
| `date_from` | string  | Data inicial. Formato "YYYY-MM-DD"                                        |
| `date_to`   | string  | Data final. Formato "YYYY-MM-DD"                                          |
| `order_by`  | string  | "asc" para ordem ascendente ou "desc" para descendente. "desc" por padrão |
| `page`      | integer | Número da página requisitada. 1 por padrão                                |
| `page_size` | integer | Tamanho da página requisitada na consulta. 4000 por padrão                |

## Response

### Success Response

STATUS 200

:::info Sobre o campo Transaction Details

Este campo é um objeto com informações específicas ao tipo de transação realizada (pagamento de boleto, TED ou Pix). 

:::

Response Body: Transações Pix

```json
{
    "data": [
        {
            "account_balance": 22403.11,
            "agent_person_key": null,
            "created_at": "2023-11-24 19:10:54",
            "description": "329 0001 000002-5 32.402.502/0001-35 QI SOCIEDADE DE CR\u00c9DITO DIRETO S.A.",
            "origin_key": "4983e0ad-2212-44f9-8ab9-c243f72f90a8",
            "source_subtype": {
                "enumerator": "internal_pix_transfer",
                "translation_ptbr": "Transfer\u00eancia de PIX"
            },
            "transacted_at": "2023-11-24 19:10:54",
            "transaction_amount": 1,
            "transaction_details": {
                "payer_account_branch": "0001",
                "payer_account_digit": "7",
                "payer_account_number": "5267641",
                "payer_document_number": "98765432100",
                "payer_ispb": "32402502",
                "payer_name": "Eduardo Spada",
                "receiver_account_branch": "0001",
                "receiver_account_digit": "5",
                "receiver_account_number": "000002",
                "receiver_conciliation_id": null,
                "receiver_document_number": "32402502000135",
                "receiver_ispb": "32402502",
                "receiver_name": "QI SCD S.A."
            },
            "transaction_key": "b71ea9a3-e012-4761-bea6-e65c6bfc228f"
        }
    ],
    "pagination": {
        "current_page": 1,
        "next_page": null,
        "rows_per_page": 30,
        "total_pages": "unavailable",
        "total_rows": null
    }
}
```

Response Body: Transações TED

```json
{
    "data": [
        {
            "account_balance": 22403.11,
            "agent_person_key": null,
            "created_at": "2023-11-24 19:10:54",
            "description": "329 0001 000002-5 32.402.502/0001-35 QI SOCIEDADE DE CR\u00c9DITO DIRETO S.A.",
            "origin_key": "4983e0ad-2212-44f9-8ab9-c243f72f90a8",
            "source_subtype": {
                "enumerator": "incoming_funds_transfer",
                "translation_ptbr": "Transferência de Entrada"
            },
            "transacted_at": "2023-11-24 19:10:54",
            "transaction_amount": 1,
            "transaction_details": {
                "receiver_account_number": "7212399",
                "payer_account_branch": "120",
                "payer_account_number": "84598",
                "receiver_name": "QI SCD S.A.",
                "receiver_account_branch": "2",
                "payer_document_number": "23846749289329",
                "payer_account_digit": "4",
                "payer_ispb": "61231190",
                "receiver_ispb": "32402502",
                "receiver_document_number": "02983510938761",
                "payer_name": "ASICS BRASIL DISTRIBUICAO E CO",
                "receiver_account_digit": "3"
            },
            "transaction_key": "b71ea9a3-e012-4761-bea6-e65c6bfc228f"
        }
    ],
    "pagination": {
        "current_page": 1,
        "next_page": null,
        "rows_per_page": 30,
        "total_pages": "unavailable",
        "total_rows": null
    }
}
```

Response Body: Transações de pagamento de boleto bancário

```json
{
    "data": [
        {
            "account_balance": 22403.11,
            "agent_person_key": null,
            "created_at": "2023-11-24 19:10:54",
            "description": "329 0001 000002-5 32.402.502/0001-35 QI SOCIEDADE DE CR\u00c9DITO DIRETO S.A.",
            "origin_key": "4983e0ad-2212-44f9-8ab9-c243f72f90a8",
            "source_subtype": {
                "enumerator": "bank_slip_payment",
                "translation_ptbr": "Pagamento de Boleto"
            },
            "transacted_at": "2023-11-24 19:10:54",
            "transaction_amount": 1,
            "transaction_details": {
                "beneficiary_legal_name": "COATIOSUERRA LTDA",
                "barcode": "34191954500001165778979877821520910001098000",
                "digitable_line": "34312123124532455091500010980001195450000116579",
                "beneficiary_document_number": "61148052000102"
            },
            "transaction_key": "b71ea9a3-e012-4761-bea6-e65c6bfc228f"
        }
    ],
    "pagination": {
        "current_page": 1,
        "next_page": null,
        "rows_per_page": 30,
        "total_pages": "unavailable",
        "total_rows": null
    }
}
```

Response Body: Transações de Liquidação de Cartão

```json
{
    "data": [
        {
            "account_balance": 22403.11,
            "agent_person_key": null,
            "created_at": "2023-11-24 19:10:54",
            "description": "Nome da Credenciadora 12345678000195 - Elo Débito - Liquidação",
            "origin_key": "4983e0ad-2212-44f9-8ab9-c243f72f90a8",
            "source_subtype": {
                "enumerator": "incoming_debit_card_settlement",
                "translation_ptbr": "Liquidação de cartão de débito"
            },
            "transacted_at": "2023-11-24 19:10:54",
            "transaction_amount": 1,
            "transaction_details": {
                "merchant_name": "Nome do Merchant",
                "merchant_document_number": "87654321000198",
                "acquirer_name": "Nome da Credenciadora",
                "acquirer_document_number": "12345678000195",
                "product_type": "ECD",
                "product_description": "Elo Débito"
            },
            "transaction_key": "b71ea9a3-e012-4761-bea6-e65c6bfc228f"
        }
    ],
    "pagination": {
        "current_page": 1,
        "next_page": null,
        "rows_per_page": 30,
        "total_pages": "unavailable",
        "total_rows": null
    }
}
```

Response Body: Transações de Compra no Cartão

```json
{
    "data": [
        {
            "account_balance": 20003.01,
            "agent_person_key": null,
            "created_at": "2023-11-24 19:10:54",
            "description": "Cartão físico | Nome do Estabelecimento | SAO PAULO - BR | U3UUUU",
            "origin_key": "c9f31beb-dafa-42c2-9a16-0854c523eabd",
            "source_subtype": {
                "enumerator": "card_purchase",
                "translation_ptbr": "Compra com Cartão"
            },
            "transacted_at": "2023-11-24 19:10:54",
            "transaction_amount": 17,
            "transaction_details": {
                "acquirer_code": "000000",
                "merchant_mcc": "0000",
                "merchant_name": "Nome do Estabelecimento",
                "authorization_code": "U3UUUU",
                "merchant_address": {
                    "postal_code": "00000123",
                    "city": "SAO PAULO",
                    "country": "BR"
                },
                "merchant_currency": "BRL",
                "merchant_amount": "17.00",
                "card_transaction_type": "purchase",
                "card_type": "plastic"
            },
            "transaction_key": "b71ea9a3-e012-4761-bea6-e65c6bfc228f"
        }
    ],
    "pagination": {
        "current_page": 1,
        "next_page": null,
        "rows_per_page": 30,
        "total_pages": "unavailable",
        "total_rows": null
    }
}
```

:::info Sobre o campo next_page
O campo `next_page` dentro do objeto `pagination`, indica a próxima página disponível para consulta. Caso não haja mais páginas disponíveis, o valor retornado será `null`.
:::

:::caution Atenção!
O campo `product_type` contido no objeto `transaction_details` das Transações de Liquidação de Cartão de Crédito, é um campo informado pelo Sistema de Liquidações de Cartão, e pode ser retornado com valor `null`. Para estes casos, o campo `product_description` deve ser lido para identificação do `product_type` da liquidação. 
:::

### Enumeradores product_type
| Enumerador | Descrição                                                 |
| --- |-----------------------------------------------------------|
|ACC| American Express Crédito                                  |
|BCC| Banescard Crédito                                         |
|BCD| Banescard Débito                                          |
|BVV| Ben Visa Vale Pré-pago                                    |
|CAC| Cielo Amex Crédito                                        |
|CBC| Cabal Crédito                                             |
|CBD| Cabal Débito                                              |
|CBP| Cabal Pré-pago                                            |
|CC3| Central de Cessões de Crédito                             |
|CDC| Cielo Diners Cartão de Crédito                            |
|CEC| Cielo Elo Cartão de Crédito                               |
|CED| Cielo Elo Cartão de Débito                                |
|CHC| Cielo Hipercard Crédito                                   |
|CMC| Cielo Mastercard Crédito                                  |
|CMD| Cielo Mastercard Débito                                   |
|COP| COPASA - Companhia de Saneamento de Minas Gerais          |
|CUP| Cup Crédito                                               |
|CZC| Credz Crédito                                             |
|DCC| Liquidações Transfronteiriças Diners Crédito              |
|ECB| Elo PAT - Cartão de Benefícios                            |
|ECC| Elo Crédito                                               |
|ECD| Elo Débito                                                |
|GCC| Goodcard Crédito                                          |
|GDC| Global Payments Diners Crédito                            |
|GMC| Global Payments MasterCard Crédito                        |
|GMD| Global Payments MasterCard Débito                         |
|GVC| Global Payments VISA Crédito                              |
|GVD| Global Payments VISA Débito                               |
|HCC| Hipercard Crédito                                         |
|HCD| Hiper Débito                                              |
|JCC| JCB Crédito                                               |
|MAC| Mais Cartão de Crédito                                    |
|MCA| MasterCard Cartão ATM                                     |
|MCC| Mastercard Crédito                                        |
|MCD| Maestro Débito                                            |
|MCP| Mastercard Pré-pago                                       |
|NBA| Neoenergia - Companhia de Eletricidade do Estado da Bahia |
|NBR| Neoenergia - Distribuição Brasília S.A                    |
|NEK| Neoenergia - Elektro Redes S/A                            |
|NPE| Neoenergia - Companhia Energética de Pernambuco           |
|NRN| Neoenergia - Companhia Energética do Rio Grande do Norte  |
|OCD| Ourocard Débito                                           |
|OT| Produto Liquidação Outras Transferências                  |
|PCA| Plataforma Centralizada de Arrecadação                    |
|SCC| Sorocred Crédito                                          |
|SCD| Sorocred Débito                                           |
|SLC| Serviço de Liquidação Centralizada                        |
|STC| SELTEC                                                    |
|TCB| Tecban                                                    |
|TED| Produto Liquidação TED                                    |
|VCA| Visa Cartão ATM                                           |
|VCC| Visa Crédito                                              |
|VCD| Visa Electron Débito                                      |
|VCP| Visa Pré-pago                                             |
|VDC| Verdecard Crédito                                         |
|VDP| Verdecard Pré-pago                                        |
|VIA| Visa Internacional Saque ATM                              |
|VIC| Visa Internacional Compra Crédito                         |
|VID| Visa Internacional Compra Débito                          |
||Alelo Pré-pago|
||Agiplan Crédito|
||Aura Crédito|
||Calcard Crédito|
||Credsystem Crédito|
||Redesplan Crédito|
||Sicred Crédito|
||Avista Crédito|
||Discover Crédito|
||Sicredi Débito|
||Hiper Crédito|
||Ticket Pré-pago|
||Sodexo Pré-pago|
||VR Pré-pago|
||Policard Pré-pago|
||Valecard Pré-pago|
||Greencard Pré-pago|
||Coopercard Pré-pago|
||Verocheque Pré-pago|
||Nutricash Pré-pago|
||Banricard Pré-pago|
||Socored Pré-pago|
||Cielo Arranjo Fechado Crédito|
||Cielo Arranjo Fechado Débito|

### Enumeradores de source_sub_types’s:

| Enum                                    | Descrição                                       |
|-----------------------------------------|-------------------------------------------------|
| operation_disbursement                  | Desembolso da Operação                          |
| protest_expense                         | Despesas de Protesto                            |
| automatic_integrated_payment            | Pagamento Automático Integrado                  |
| tax                                     | Impostos                                        |
| electronic_funds_fee                    | Tarifa de TED                                   |
| credit_operation_fee                    | Tarifa de Abertura de Crédito                   |
| internal_funds_transfer                 | Transferência Interna                           |
| incoming_funds_transfer                 | Transferência de Entrada                        |
| outgoing_funds_transfer                 | TED                                             |
| deposit                                 | Depósito                                        |
| withdrawal                              | Transferência                                   |
| withdrawal_reversal                     | Estorno de Transferência                        |
| trade_funds_transfer                    | Transferência de Pagamento de Cessão            |
| settlement_funds_transfer               | Transferência para Liquidação                   |
| bank_slip_fee                           | Tarifa de Boleto                                |
| bank_slip_settlement                    | Liquidação de Boleto                            |
| outgoing_funds_transfer_reversal        | Estorno de TED                                  |
| incoming_funds_transfer_refusal         | Transferência Negada                            |
| electronic_funds_fee_reversal           | Estorno de Tarifa de TED                        |
| monthly_account_fee_reversal            | Estorno de Tarifa de Manutenção de Conta        |
| bank_slip_fee_reversal                  | Estorno de Tarifa de Boleto                     |
| correspondent_bank_transfer             | Repasse de Correspondente Bancário              |
| credit_analysis_fee                     | Tarifa de Análise de Crédito                    |
| credit_operation_fee_reversal           | Estorno de Tarifa de Abertura de Crédito        |
| financial_investments_income            | Renda de Aplicação Financeira                   |
| bank_slip_settlement_reversal           | Estorno de Liquidação de Boleto                 |
| bank_slip_settlement_expense_reversal   | Estorno de Tarifa de liquidação de Boleto       |
| bank_slip_settlement_incoming_reversal  | Estorno de Recebimento de Liquidação de Boleto  |
| correspondent_bank_transfer_reversal    | Estrono de Repasse de Correspondente Bancário   |
| credit_analysis_fee_reversal            | Estorno de Tarifa de Análise de Crédito         |
| doc_expense_reversal                    | Estorno de Tarifa de DOC                        |
| incoming_doc_reversal                   | Estorno de Entrada de DOC                       |
| operation_disbursement_reversal         | Estorno de Desembolso da Operação               |
| operation_settling_reversal             | Estorno de Pagamento de Operação                |
| outgoing_doc_reversal                   | Estorno de Saída de DOC                         |
| rebate_reversal                         | Estorno de Rebate                               |
| settlement_funds_transfer_reversal      | Estorno de Transferência para Liquidação        |
| tax_reversal                            | Estorno de Impostos                             |
| trade_funds_transfer_reversal           | Estorno de Transferência de Pagamento de Cessão |
| bank_slip_permanency_fee                | Tarifa de Permanência do Título                 |
| bank_slip_cancel_protest_fee            | Tarifa de Permanência do Título                 |
| bank_slip_protest_fee                   | Tarifa de Pedido de Protesto                    |
| bank_slip_notary_office_fee             | Custas de Protesto                              |
| bank_slip_registration_fee              | Tarifa de Registro                              |
| bank_slip_extension_fee                 | Tarifa de Prorrogação                           |
| bank_slip_rebate_fee                    | Tarifa de Abatimento                            |
| bank_slip_discount_fee                  | Tarifa de Desconto                              |
| bank_slip_settlement_fee                | Tarifa de Liquidação                            |
| bank_slip_write_off_term_fee            | Tarifa de Baixa por Decurso de Prazo            |
| bank_slip_write_off_fee                 | Tarifa de Baixa                                 |
| bank_slip_cancel_protest_write_off_fee  | Tarifa de Sustação de Protesto com Baixa        |
| bank_slip_notary_office_settlement_fee  | Tarifa de Liquidação em Cartório                |
| rebate_tax_free                         | Repasse por Conta e Ordem                       |
| rebate_tax_free_reversal                | Estorno de Repasse por Conta e Ordem            |
| incoming_funds_transfer_reversal        | Estorno de Transferência Interna                |
| bank_slip_payment                       | Pagamento de Boleto                             |
| bank_slip_payment_reversal              | Estorno de Pagamento de Boleto                  |
| warranty_analysis_fee                   | Tarifa de Análise de Garantia                   |
| bank_slip_settlement_deposit            | Liquidação de Boleto                            |
| bank_slip_payment_withdrawal            | Pagamento de Boleto                             |
| account_setup_fee                       | Tarifa de Abertura de Conta                     |
| account_setup_fee_reversal              | Estorno de Tarifa de Abertura de Conta          |
| bank_slip_payment_withdrawal_reversal   | Estorno de Pagamento de Boleto                  |
| incoming_anticipation_of_receivable     | -                                               |
| incoming_credit_card_settlement         | Liquidação de cartão de crédito                 |
| incoming_debit_card_settlement          | Liquidação de cartão de débito                  |
| assignment_automatic_transfer           | Débito de Cessão Automática                     |
| assignment_automatic_transfer_reversal  | Estorno de Débito de Cessão Automática          |
| pix_fee                                 | Tarifa de PIX                                   |
| incoming_pix_transfer                   | Entrada de PIX                                  |
| outgoing_pix_transfer                   | Saída de PIX                                    |
| pix_fee_reversal                        | Estorno de Tarifa de PIX                        |
| incoming_pix_transfer_reversal          | Estorno de entrada de PIX                       |
| outgoing_pix_transfer_reversal          | Estorno de saída de PIX                         |
| pix_deposit                             | Depósito de PIX                                 |
| pix_withdrawal                          | Transferência de PIX                            |
| pix_withdrawal_reversal                 | Estorno de transferência de PIX                 |
| pix_chargeback_withdrawal               | Envio de devolução PIX                          |
| outgoing_pix_chargeback                 | Saída de PIX por devolução                      |
| incoming_pix_chargeback                 | Recebimento de devolução PIX                    |
| pix_chargeback_deposit                  | Entrada de PIX por devolução                    |
| pix_chargeback_withdrawal_reversal      | Estorno de envio de devolução PIX               |
| outgoing_pix_chargeback_reversal        | Estorno de saída de PIX por devolução           |
| incoming_pix_chargeback_reversal        | Estorno de recebimento de devolução PIX         |
| operation_pix_disbursement              | Desembolso PIX da Operação                      |
| operation_pix_disbursement_reversal     | Estorno de Desembolso PIX da Operação           |
| receivables_inquiry_fee                 | Tarifa de Consulta de Agenda de Recebíveis      |
| pix_deposit_reversal                    | Estorno de Depósito de PIX                      |
| internal_pix_transfer                   | Transferência de PIX                            |
| automatic_integrated_payment_reversal   | Estorno de Pagamento Automático Integrado       |
| operation_dibursement_reversal          | Estorno de Desembolso da Operação               |
| available_yield                         | Depósito de Investimento Liquido                |
| bank_slip_convenant_payment             | Pagamento de Boleto de Convênio                 |

### Enumeradores de prepaid_card_transaction_type:
| Enum                    | Descrição                                 |
|-------------------------|-------------------------------------------|
| purchase                | Compra no cartão                          |
| international_purchase  | Compra internacional no cartão            |
| withdrawal              | Saque em caixa eletrônico (ATM) no cartão |

### Enumeradores de card_type:
| Enum       | Descrição                                 |
|------------|-------------------------------------------|
| plastic    | Cartão físico                             |
| virtual    | Cartão virtual                            |

---

# Simulação de cenários

URL: /documentation/movimentacao_de_contas/transacao

Passo a passo para simular a efetivação de ações feitas por agentes externos. Essa simulação visa efetivar transações
internas.

:::info Informação
Não há payload de retorno (response body) nessas requisições.
:::

## 1 - Simulação de transação interna

### Request

ENDPOINT /mock/account/transaction
MÉTODO POST

Request Body

```json
{
  "target_account_key": "c2aa26d5-d6fc-42cf-b9a0-e26f69d85c7d",
  "amount": 100
}
```

## 2 - Simulação de entrada de TED

### Request

ENDPOINT /mock/ted/incoming_ted
MÉTODO POST

Request Body

```json
{
  "target_account_key": "\<Chave unitária da conta de destino\>",
  "amount": "\<Valor da transação\>"
}
```

## 3 - Simulação de devolução de TED

        **Request**

ENDPOINT /mock/ted/ted_refusal
MÉTODO POST

Request Body

```json
{
  "transaction_key": "\<Chave unitária da transação\>"
}
```

Request Body

```json
{
  "ted_key": "\<Chave unitária da transferência TED\>"
}
```

### Objeto Request Body

Nessa tabela, está disponível o descritivo de todas as variáveis utilizadas pelas requisções acima detalhadas.

**ATENÇÃO: Cada requisição utiliza um conjunto específico de variáveis.**

| Campo                  | Tipo   | Descrição                           | Máx. Caract. | Exemplo                                | Observação              |
|------------------------|--------|-------------------------------------|--------------|----------------------------------------|-------------------------|
| **target_account_key** | string | Chave unitária da conta de destino  | 36           | "41112f46-0034-4007-85687-5e592173db2" |                         |
| **amount**             | number | Valor da transação                  | 6            | 1000                                   | Valor máximo de 100.000 |
| **transaction_key**    | string | Chave unitária da transação         | 36           | "e27ed4e1-53d8-4cc8-a00e-5b0008bf5526" |                         |
| **ted_key**            | string | Chave unitária da transferência TED | 36           | "3bb0e340-42f9-407f-a970-5a4f35f5403b" |                         |

---

# Webhooks

URL: /documentation/movimentacao_de_contas/webhook_movimentacoes

:::danger Atenção!
Os webhooks da QI Tech não devem ser mapeadas de forma restrita. 
Campos adicionais podem ser incluídos aos payloads dos webhooks retornados em nossas APIs.
:::

:::info Reenvio de Webhooks
Você pode consultar e reenviar webhooks seguindo as instruções detalhadas na documentação: [Reenvio de Webhooks](/documentation/notificacoes/reenvio_de_notificacoes).
:::

## Webhook de movimentações
Para toda e qualquer movimentação será enviado um webhook de “***account_transaction***“.

Cada transação possui um tipo de classificação (**Source Sub Type**). Essa classificação é utilizada para categorizar cada movimentação na conta. A lista de Source Sub Types pode ser visualizada abaixo.

### Crédito em Conta

Os créditos em conta resultarão em um webhook com “***data.amount***” positivo, “***data.origin***“ sendo a conta de origem dos recursos e a “***data.destination***“ sendo a conta de destino dos recursos:

WEBHOOK_TYPE account_transaction

Response Body: Pix

```json
{
    "key": "\<ACCOUNT-KEY\>",
	"data": {
		"amount": 1000000,
		"origin": {
			"name": "Treasury Account",
			"branch": "0001",
			"document": "32402502000135",
			"account_key": "5d068423-6094-49e4-b15b-7740038295a8",
			"account_digit": "5",
			"account_number": "00002"
		},
		"timestamp": "2022-09-02T21:36:33.446120",
		"description": "329 0001 00002-5 32.402.502/0001-35 - QI SOCIEDADE DE CRÉDITO DIRETO S.A.",
		"destination": {
			"name": "Default",
			"branch": "0001",
			"document": "09080702000105",
			"account_key": "6d30a0b1-cb90-4ceb-b1ea-5bd600cdf3c8",
			"account_digit": "2",
			"account_number": "2359934"
		},
		"reference_key": "983b4a28-7de6-4e71-97ef-60fb50c7b013",
		"reference_type": "movement_request",
		"account_balance": 1000000,
		"source_sub_type": "internal_funds_transfer",
		"transaction_key": "67a62397-2c32-4768-8485-ec9129a46654",
		"source_sub_type_str": "Transferência Interna",
		"transaction_details": {
			"payer_name": "0001",
			"receiver_name": "Default",
			"payer_account_digit": "5",
			"payer_account_branch": "",
			"payer_account_number": "1111111",
			"payer_document_number": "66681638999999",
			"receiver_account_digit": "6",
			"receiver_account_branch": "0000",
			"receiver_account_number": "34256449809",
			"receiver_conciliation_id": null,
			"receiver_document_number": "00809641658"
		}
	},
	"datetime": "2022-09-02T21:36:33.446120",
	"webhook_type": "account_transaction"
}
```

Response Body: Outras transações

```json
{
    "key": "\<ACCOUNT-KEY\>",
	"data": {
		"amount": 1000000,
		"origin": {
			"name": "Treasury Account",
			"branch": "0001",
			"document": "32402502000135",
			"account_key": "5d068423-6094-49e4-b15b-7740038295a8",
			"account_digit": "5",
			"account_number": "00002"
		},
		"timestamp": "2022-09-02T21:36:33.446120",
		"description": "329 0001 00002-5 32.402.502/0001-35 - QI SOCIEDADE DE CRÉDITO DIRETO S.A.",
		"destination": {
			"name": "Default",
			"branch": "0001",
			"document": "09080702000105",
			"account_key": "6d30a0b1-cb90-4ceb-b1ea-5bd600cdf3c8",
			"account_digit": "2",
			"account_number": "2359934"
		},
		"reference_key": "983b4a28-7de6-4e71-97ef-60fb50c7b013",
		"reference_type": "movement_request",
		"account_balance": 1000000,
		"source_sub_type": "internal_funds_transfer",
		"transaction_key": "67a62397-2c32-4768-8485-ec9129a46654",
		"source_sub_type_str": "Transferência Interna",
	},
	"datetime": "2022-09-02T21:36:33.446120",
	"webhook_type": "account_transaction"
}
```

## Débito em Conta
Os débitos em conta resultarão em um webhook com “***data.amount***” negativo, “***data.origin***“ sendo a conta destinatária dos recursos e a “***data.destination***“ sendo a conta de origem dos recursos:

WEBHOOK_TYPE account_transaction

Webhook Body

```json
{
	"key": "\<ACCOUNT-KEY\>",
	"data": {
		"amount": -45,
		"origin": {
			"name": "PIX",
			"branch": "0001",
			"document": "32402502000135",
			"account_key": "3d0e7d50-e898-49f3-b23b-05353c8a3c72",
			"account_digit": "3",
			"account_number": "00003"
		},
		"timestamp": "2022-09-02T23:00:05.326738",
		"description": "212 0001 1017372-2 ***.221.81*-** BANCO ORIGINAL S.A.",
		"destination": {
			"name": "Default",
			"branch": "0001",
			"document": "09080702000105",
			"account_key": "6d30a0b1-cb90-4ceb-b1ea-5bd600cdf3c8",
			"account_digit": "2",
			"account_number": "2359934"
		},
		"reference_key": "cea836b5-b02e-4f94-b1e2-4d575671c33d",
		"reference_type": "pix_outgoing",
		"account_balance": 999955,
		"source_sub_type": "pix_withdrawal",
		"transaction_key": "d2ba3817-26d7-4957-ab82-24f78d910a8a",
		"source_sub_type_str": "Transferência de PIX"
	},
	"datetime": "2022-09-02T23:00:05.326738",
	"webhook_type": "account_transaction"
}
```
 

**Lista de source_sub_types’s:**

| Enum                                    | Descrição                                       |
|-----------------------------------------|-------------------------------------------------|
| operation_disbursement                  | Desembolso da Operação                          |
| protest_expense                         | Despesas de Protesto                            |
| automatic_integrated_payment            | Pagamento Automático Integrado                  |
| tax                                     | Impostos                                        |
| electronic_funds_fee                    | Tarifa de TED                                   |
| credit_operation_fee                    | Tarifa de Abertura de Crédito                   |
| internal_funds_transfer                 | Transferência Interna                           |
| incoming_funds_transfer                 | Transferência de Entrada                        |
| outgoing_funds_transfer                 | TED                                             |
| deposit                                 | Depósito                                        |
| withdrawal                              | Transferência                                   |
| withdrawal_reversal                     | Estorno de Transferência                        |
| trade_funds_transfer                    | Transferência de Pagamento de Cessão            |
| settlement_funds_transfer               | Transferência para Liquidação                   |
| bank_slip_fee                           | Tarifa de Boleto                                |
| bank_slip_settlement                    | Liquidação de Boleto                            |
| outgoing_funds_transfer_reversal        | Estorno de TED                                  |
| incoming_funds_transfer_refusal         | Transferência Negada                            |
| electronic_funds_fee_reversal           | Estorno de Tarifa de TED                        |
| monthly_account_fee_reversal            | Estorno de Tarifa de Manutenção de Conta        |
| bank_slip_fee_reversal                  | Estorno de Tarifa de Boleto                     |
| correspondent_bank_transfer             | Repasse de Correspondente Bancário              |
| credit_analysis_fee                     | Tarifa de Análise de Crédito                    |
| credit_operation_fee_reversal           | Estorno de Tarifa de Abertura de Crédito        |
| financial_investments_income            | Renda de Aplicação Financeira                   |
| bank_slip_settlement_reversal           | Estorno de Liquidação de Boleto                 |
| bank_slip_settlement_expense_reversal   | Estorno de Tarifa de liquidação de Boleto       |
| bank_slip_settlement_incoming_reversal  | Estorno de Recebimento de Liquidação de Boleto  |
| correspondent_bank_transfer_reversal    | Estrono de Repasse de Correspondente Bancário   |
| credit_analysis_fee_reversal            | Estorno de Tarifa de Análise de Crédito         |
| doc_expense_reversal                    | Estorno de Tarifa de DOC                        |
| incoming_doc_reversal                   | Estorno de Entrada de DOC                       |
| operation_disbursement_reversal         | Estorno de Desembolso da Operação               |
| operation_settling_reversal             | Estorno de Pagamento de Operação                |
| outgoing_doc_reversal                   | Estorno de Saída de DOC                         |
| rebate_reversal                         | Estorno de Rebate                               |
| settlement_funds_transfer_reversal      | Estorno de Transferência para Liquidação        |
| tax_reversal                            | Estorno de Impostos                             |
| trade_funds_transfer_reversal           | Estorno de Transferência de Pagamento de Cessão |
| bank_slip_permanency_fee                | Tarifa de Permanência do Título                 |
| bank_slip_cancel_protest_fee            | Tarifa de Permanência do Título                 |
| bank_slip_protest_fee                   | Tarifa de Pedido de Protesto                    |
| bank_slip_notary_office_fee             | Custas de Protesto                              |
| bank_slip_registration_fee              | Tarifa de Registro                              |
| bank_slip_extension_fee                 | Tarifa de Prorrogação                           |
| bank_slip_rebate_fee                    | Tarifa de Abatimento                            |
| bank_slip_discount_fee                  | Tarifa de Desconto                              |
| bank_slip_settlement_fee                | Tarifa de Liquidação                            |
| bank_slip_write_off_term_fee            | Tarifa de Baixa por Decurso de Prazo            |
| bank_slip_write_off_fee                 | Tarifa de Baixa                                 |
| bank_slip_cancel_protest_write_off_fee  | Tarifa de Sustação de Protesto com Baixa        |
| bank_slip_notary_office_settlement_fee  | Tarifa de Liquidação em Cartório                |
| rebate_tax_free                         | Repasse por Conta e Ordem                       |
| rebate_tax_free_reversal                | Estorno de Repasse por Conta e Ordem            |
| incoming_funds_transfer_reversal        | Estorno de Transferência Interna                |
| bank_slip_payment                       | Pagamento de Boleto                             |
| bank_slip_payment_reversal              | Estorno de Pagamento de Boleto                  |
| warranty_analysis_fee                   | Tarifa de Análise de Garantia                   |
| bank_slip_settlement_deposit            | Liquidação de Boleto                            |
| bank_slip_payment_withdrawal            | Pagamento de Boleto                             |
| account_setup_fee                       | Tarifa de Abertura de Conta                     |
| account_setup_fee_reversal              | Estorno de Tarifa de Abertura de Conta          |
| bank_slip_payment_withdrawal_reversal   | Estorno de Pagamento de Boleto                  |
| incoming_anticipation_of_receivable     | -                                               |
| incoming_credit_card_settlement         | Liquidação de cartão de crédito                 |
| incoming_debit_card_settlement          | Liquidação de cartão de débito                  |
| assignment_automatic_transfer           | Débito de Cessão Automática                     |
| assignment_automatic_transfer_reversal  | Estorno de Débito de Cessão Automática          |
| pix_fee                                 | Tarifa de PIX                                   |
| incoming_pix_transfer                   | Entrada de PIX                                  |
| outgoing_pix_transfer                   | Saída de PIX                                    |
| pix_fee_reversal                        | Estorno de Tarifa de PIX                        |
| incoming_pix_transfer_reversal          | Estorno de entrada de PIX                       |
| outgoing_pix_transfer_reversal          | Estorno de saída de PIX                         |
| pix_deposit                             | Depósito de PIX                                 |
| pix_withdrawal                          | Transferência de PIX                            |
| pix_withdrawal_reversal                 | Estorno de transferência de PIX                 |
| pix_chargeback_withdrawal               | Envio de devolução PIX                          |
| outgoing_pix_chargeback                 | Saída de PIX por devolução                      |
| incoming_pix_chargeback                 | Recebimento de devolução PIX                    |
| pix_chargeback_deposit                  | Entrada de PIX por devolução                    |
| pix_chargeback_withdrawal_reversal      | Estorno de envio de devolução PIX               |
| outgoing_pix_chargeback_reversal        | Estorno de saída de PIX por devolução           |
| incoming_pix_chargeback_reversal        | Estorno de recebimento de devolução PIX         |
| operation_pix_disbursement              | Desembolso PIX da Operação                      |
| operation_pix_disbursement_reversal     | Estorno de Desembolso PIX da Operação           |
| receivables_inquiry_fee                 | Tarifa de Consulta de Agenda de Recebíveis      |
| pix_deposit_reversal                    | Estorno de Depósito de PIX                      |
| internal_pix_transfer                   | Transferência de PIX                            |
| automatic_integrated_payment_reversal   | Estorno de Pagamento Automático Integrado       |
| operation_dibursement_reversal          | Estorno de Desembolso da Operação               |
| available_yield                         | Depósito de Investimento Liquido                |
| bank_slip_convenant_payment             | Pagamento de Boleto de Convênio                 |

## Webhook de bloqueios

O webhook de bloqueios é enviado sempre que houver um bloqueio ou desbloqueio de um determinado valor em uma conta. O campo `origin_type` identifica o tipo de origem do bloqueio.

Para bloqueios, o valor em `blocked_balance` será positivo. Para desbloqueios, o valor será negativo, indicando a liberação do valor anteriormente bloqueado.

WEBHOOK_TYPE baas.account.block_event

Webhook Body: Sisbajud

```json
{
  "webhook_type": "baas.account.block_event",
  "webhook_datetime": "2021-10-22T20:30:23.459Z",
  "data": {
	"account_key": "ca2c934e-5970-4c15-bdef-87e1b5c204e3",
	"blocked_balance": 100,
    "origin_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
    "origin_type": "sisbajud",
	"block_details": {
        "block_order_protocol": "20250028399883",
        "block_order_sequence": "00005",
        "requester_judge": "JUIZ DE DIREITO",
        "defendant_document_number": "15717553064",
        "case_number": "07279467320148070007",
        "court_code": "44815",
        "requested_amount": 10000,
        "lawsuit_author_name": "Pamela Janssen de Araujo Clemente",
        "institution_document_number": null,
        "lawsuit_type": "labor",
        "protocol_datetime": "2025-02-19T10:00:00.000Z"
    }
  }
}
```

### Webhook Body Params

| Campo                	| Tipo          | Descrição                                         		| Máx. Caracteres					|
|-----------------------|---------------|-----------------------------------------------------------|-----------------------------------|
|webhook_type			| string		| Um enumerador que define o tipo de evento sendo reportado	| 23 								|
|blocked_balance		| string		| Data e hora do envio do webhook							| 20								|
|data					| string 		| Dados referentes à ordem judicial							| **[Objeto data](#objeto-data)**	|

#### Objeto data
| Campo                	| Tipo          | Descrição                                 				| Máx. Caracteres											|
|-----------------------|---------------|-----------------------------------------------------------|-----------------------------------------------------------|
| account_key			| string		| Chave única de identificação da conta QI					| 36 														|
| blocked_balance		| number		| Saldo bloqueado											| 15														|
| origin_key			| string 		| Chave única de identificação da origem da ordem judicial	| 36														|
| origin_type			| string		| Origem da ordem judicial									| **[Enumeradores origin_type](#enumeradores-origin_type)**	|
| block_details			| string		| Detalhes do bloqueio 										| **[Objeto block_details](#objeto-block_details)**			|

#### Objeto block_details
| Campo                			| Tipo      | Descrição 								| Máx. Caracteres 												|
|-------------------------------|-----------|-------------------------------------------|---------------------------------------------------------------|
| block_order_protocol       	| number 	| Número do protocolo de bloqueio judicial 	| 14															|
| block_order_sequence       	| number 	| Número de sequência do bloqueio 			| 5																|
| requester_judge            	| string 	| Magistrado    							| 115															|
| defendant_document_number  	| number 	| Número de documento do réu 				| 14															|
| case_number                	| number 	| Número do processo judicial              	| 30															|
| court_code                 	| string 	| Código do tribunal responsável pelo caso  | 5 															|
| requested_amount           	| number 	| Quantia solicitada para bloqueio          | 15															|
| lawsuit_author_name        	| string 	| Nome do autor da ação judicial           	| 115															|
| institution_document_number	| number 	| Número do documento da instituição 		| 14															|
| lawsuit_type               	| enumerator| Tipo de ação judicial  					| **[Enumeradores lawsuit_type](#enumeradores-lawsuit_type)**	|
| protocol_datetime          	| string	| Data e hora do protocolo de bloqueio      | 20 															|

#### Enumeradores lawsuit_type
| Enumerador	| Descrição					|
|---------------|---------------------------|
| civil			| Processo civil			|
| criminal		| Processo criminal			|
| labor			| Processo trabalhista		|
| tax			| Processo tributário		|
| food			| Processo alimentício		|

#### Enumeradores origin_type
| Enumerador    					| Tipo   | Descrição     					|
|-----------------------------------|--------|----------------------------------|
| `credit_operation` 				| string | Operação de crédito 				|
| `credit_operation_installment`	| string | Parcela de operação de crédito	|
| `wallet_trade` 					| string | Operação de carteira 			|
| `wallet_settlement` 				| string | Liquidação de carteira 			|
| `ted_incoming` 					| string | TED recebida 					|
| `ted_outgoing` 					| string | TED enviada 						|
| `bank_slip_expense` 				| string | Despesa de boleto 				|
| `bank_slip` 						| string | Boleto 							|
| `bank_slip_cnab` 					| string | Boleto CNAB 						|
| `future_transaction` 				| string | Transação futura 				|
| `internal_operation` 				| string | Operação interna 				|
| `lego` 							| string | Lego 							|
| `siloc` 							| string | SILOC 							|
| `bank_slip_payment` 				| string | Pagamento de boleto 				|
| `movement_request` 				| string | Solicitação de movimentação 		|
| `slc` 							| string | SLC 								|
| `julius` 							| string | Julius 							|
| `batch_disbursement` 				| string | Desembolso em lote 				|
| `card_transaction` 				| string | Transação de cartão 				|
| `credit_transfer` 				| string | Transferência de crédito 		|
| `pix_outgoing` 					| string | PIX enviado 						|
| `pix_incoming` 					| string | PIX recebido 					|
| `collateral` 						| string | Garantia 						|
| `celcoin` 						| string | Celcoin 							|
| `investment` 						| string | Investimento 					|
| `routing` 						| string | Roteamento 						|
| `c3` 								| string | C3 								|
| `billing` 						| string | Cobrança 						|
| `disbursement` 					| string | Desembolso 						|
| `rebate` 							| string | Rebate 							|
| `card_invoice`					| string | Fatura de cartão 				|
| `b3_operation`					| string | Operação B3 						|
| `bill_payment`					| string | Pagamento de conta 				|
| `med`					 			| string | MED 								|
| `peer_to_peer`					| string | Transferência entre pares 		|
| `settlement_notification`			| string | Notificação de liquidação 		|
| `reversal_notification`			| string | Notificação de estorno 			|
| `insurance_premium`				| string | Prêmio de seguro 				|
| `liquidation`					 	| string | Liquidação 						|
| `purchase`					 	| string | Compra 							|
| `lending_billing`					| string | Cobrança de empréstimo 			|
| `lending_rebate`					| string | Rebate de empréstimo 			|
| `sisbajud`					 	| string | SISBAJUD 						|

#### Enumeradores lawsuit_type
| Enumerador    | Tipo      | Descrição     		|
|---------------|-----------|-----------------------|
| `civil` 		| string 	| Processo Civil 		|
| `criminal` 	| string 	| Processo Criminal 	|
| `labor` 		| string 	| Processo Trabalhista 	|
| `tax` 		| string 	| Processo Tributário 	|
| `food` 		| string 	| Processo Alimentício	|

## Webhook de bloqueio de conta

O webhook de bloqueio de conta é enviado sempre que uma conta for bloqueada.

WEBHOOK_TYPE baas.account.status_change

Webhook Body

```json
{
  "webhook_type": "baas.account.status_change",
  "webhook_datetime": "2021-10-22T20:30:23.459Z",
  "data": {
	"account_key":"b91eb198-df87-456d-8ad2-0278f866c1f3",
	"account_status":"blocked",
	"block_reason":"judicially_suspended"
  }
}
```

**Lista de block_reason**:

| Valor | Descrição |
|-------|----------|
| `judicially_suspended` | Bloqueio determinado por ordem judicial |
| `pawn` | Bloqueio por penhor |
| `pending_fee` | Bloqueio por tarifa pendente |
| `missing_credit_operation_payment` | Bloqueio por falta de pagamento de operação de crédito |
| `pending_setup_payment`| Bloqueio por falta de pagamento de taxa de abertura de conta |
| `fraud` | Bloqueio por suspeita de fraude |

---

# Realizando uma transação Peer To Peer

URL: /documentation/peer_to_peer

:::danger Atenção
Este método só pode ser utilizado para transações entre contas QI e de mesmo parceiro integrador.
:::

## Request

ENDPOINT /account/ SOURCE_ACCOUNT_KEY /transaction/peer_to_peer
MÉTODO POST

### Path params

| Atributo                | Tipo   | Descrição                                                                    | Caracteres                 |
|-------------------------|--------|------------------------------------------------------------------------------|----------------------------|
| `source_account_key` *  | uuidv4 | Chave única de identificação que indica a conta de origem da transferência.  | 36                         |

Request Body

```json
{
    "transaction_amount": 15,
    "request_control_key": "540ca9f6-7ccf-42a8-92d2-eafa6c8ac152",
    "target_account_key": "f8b5d8cf-23d3-47eb-8f2d-c97278372ecf",
    "description": "Compra com autorização externa"
}
```

### Body Atributes

| Atributo                | Tipo   | Descrição                                                                    | Caracteres                 |
|-------------------------|--------|------------------------------------------------------------------------------|----------------------------|
| `transaction_amount` *  | float  | Valor a ser transferido da source account para target account.               | float com 2 casas decimais |
| `request_control_key` * | uuidv4 | Chave única de identificação destinado a manter a idepotência de transações. | 36                         |
| `target_account_key` *  | uuidv4 | Chave única de identificação que indica a conta de destino da transferência. | 36                         |
| `description` *         | string | Descrição da transação utilizada para identificação no extrato das contas.   | 36                         |

## Response

STATUS 201

Response Body

```json
{
    "peer_to_peer_transaction_key": "c102f984-d93c-4d74-aca1-bbf83310c835",
    "request_control_key": "540ca9f6-7ccf-42a8-92d2-eafa6c8ac152",
    "transactions": [
        {
            "account_balance": 15.0,
            "account_branch": "0001",
            "account_number": "7107708",
            "description": "Compra com autorização externa",
            "document_number": "30461737337",
            "source_account_key": "cf069da7-5f3e-4808-9cfa-ac49a3928b70",
            "target_account_key": "f8b5d8cf-23d3-47eb-8f2d-c97278372ecf",
            "transacted_at": "2020-08-06 19:22:06",
            "transaction_amount": 15,
            "transaction_key": "848d3ff7-4e98-4911-8773-f1d1b48c3068"
        },
        {
            "account_balance": 35.0,
            "account_branch": "0001",
            "account_number": "9629460",
            "description": "Compra com autorização externa",
            "document_number": "74106519461",
            "source_account_key": "f8b5d8cf-23d3-47eb-8f2d-c97278372ecf",
            "target_account_key": "cf069da7-5f3e-4808-9cfa-ac49a3928b70",
            "transacted_at": "2020-08-06 19:22:06",
            "transaction_amount": -15,
            "transaction_key": "848d3ff7-4e98-4911-8773-f1d1b48c3068"
        }
    ]
}

```
STATUS 4XX

Response Body

```json
{
    "title": "titulo",
    "description": "description in English",
    "translation": "descrição em portugues",
    "code": "codigo"
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`           | Descrição (eng)<br/>`Description`                                    | Descrição (ptbr)<br/>`translation`                                               |
|-------------|-------------------|------------------------------|----------------------------------------------------------------------|----------------------------------------------------------------------------------|
| 404         | ACC000208         | Account not found            | Account not found.                                                   | Conta não encontrada.                                                            |
| 405         | ACC000209         | Method not allowe            | you are not allowed to call this method.                             | Você não tem permissão para este método.                                         |
| 403         | ACC000210         | Forbidden                    | Escrow account are not allowed to call this method.                  | Método não permitido para contas escrow.                                         |
| 409         | ACC000211         | Conflict                     | Duplicated request control key <strong>request_control_key</strong>. | Entrada duplicada para request control key <strong>request_control_key</strong>. |
| 402         | ACC000027         | Account Balance Error        | Account balance must not be negative after the transaction.          | Saldo da conta não pode ser negativo após a transação.                           |

---

# Criação de uma chave pix para um Alias

URL: /documentation/pix_indireto/chaves_pix/criacao_de_chaves

## Request

ENDPOINT /account/ ACCOUNT_KEY /alias/ ALIAS_KEY /pix_key
MÉTODO POST

**Request Body - Chave do tipo 'random_key'**

```json
{
  "request_control_key": "3d3d0083-ac71-46f0-8a90-c00a157a4893",
  "pix_key_type": "random_key"
}
```

**Request Body - Chave do tipo CPF**

```json
{
  "request_control_key": "3d3d0083-ac71-46f0-8a90-c00a157a4893",
  "pix_key_type": "cpf",
  "pix_key": "67824450007"
}
```

### Request Path Params

| Campo         | Tipo   | Descrição             | Caracteres |
|---------------|--------|-----------------------|------------|
| `account_key` | uuidv4 | Chave única da conta. | 36         |
| `alias_key`   | uuidv4 | Chave única do alias. | 36         |

### Request Body Params

| Campo                   | Tipo   | Descrição                                                                       | Max. Caracteres |
|-------------------------|--------|---------------------------------------------------------------------------------|-----------------|
| `request_control_key` * | string | UUID4 para fins de consulta sobre a requisição feita.                           | 36              |
| `pix_key_type` *        | string | Definição do tipo de chave que será criada. Valores possíveis: 'cpf', 'cnpj', 'email', 'phone_number', 'random_key'  | 10              |
| `pix_key`         | string | Valor da chave Pix a ser criado. Não deve ser enviado para casos de chave do tipo 'random_key'.  | 10              |

:::info Tipos de Chave Pix
A `pix_key` enviada na requisição pode ser um CPF, CNPJ, E-mail ou celular, seguindo as seguintes formatações:

**CPF**: Número inteiro com 11 dígitos.

**CNPJ**: Número inteiro com 14 dígitos.

**E-mail**: Texto contendo ao menos um “@”.

**Celular**: Texto contendo os seguintes valores: “+55” + “DDD do celular“ + “Número Inteiro do Celular com no mínimo 8
e no máximo 9 dígitos”. Ex: “+5511987654321“.

:::

## Response

STATUS 200

Response Body

```json

{
  "pix_key": "asra-4cd6-4c04-9651-1c0a2c30d7dd",
  "pix_key_status": "active",
  "created_at": "2021-12-06T21:16:11.001Z",
  "pix_key_type": "random_key"
}

```

### Response Body Params

| Campo                   | Tipo   | Descrição                                                                       | Max. Caracteres |
|-------------------------|--------|---------------------------------------------------------------------------------|-----------------|
| `pix_key`         | string | Valor da chave Pix criada. | 200              |
| `pix_key_status`         | string | Status de ativação da chave Pix. Pode ser "active","inactive" ou "pending" | 8              |
| `created_at`            | datetime Zulu | Data de criação da requisição. | 20 |

:::info Tipos de Chave Pix
A `pix_key` enviada na resposta da requisição pode ser um CPF, CNPJ, E-mail, celular ou chave aleatória, seguindo as seguintes formatações:

**CPF**: Número inteiro com 11 dígitos.

**CNPJ**: Número inteiro com 14 dígitos.

**E-mail**: Texto contendo ao menos um “@”.

**Celular**: Texto contendo os seguintes valores: “+55” + “DDD do celular“ + “Número Inteiro do Celular com no mínimo 8
e no máximo 9 dígitos”. Ex: “+5511987654321“.

**Chave aleatória**: UUIDV4.
:::

STATUS 4XX

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`    | Descrição (eng)<br/>`Description`                               | Descrição (ptbr)<br/>`translation`                           |
|-------------|----------------------|-----------------------|-----------------------------------------------------------------|--------------------------------------------------------------|
| 403         | PIX000080            | Not enough permission | The selected agent is not an Pix Indirect Participant           | O agente selecionado não é um Participante Indireto do Pix   |
| 404         | PIX000082            | Alias not found       | Alias \{alias_key\} not found                                     | Alias \{alias_key\} não encontrado                             |

---

# Deleção de chave Pix de um Alias

URL: /documentation/pix_indireto/chaves_pix/deletar_chaves

## Request

ENDPOINT /account/ ACCOUNT_KEY /alias/ ALIAS_KEY /pix_key/ PIX_KEY
MÉTODO DELETE

Request Body

```json

{}

```

### Path Params

| Campo         | Tipo   | Descrição                    | Caracteres |
|---------------|--------|------------------------------|------------|
| `account_key` | uuidv4 | Chave única da conta.        | 36         |
| `alias_key`   | uuidv4 | Chave única do alias.        | 36         |
| `pix_key`     | string | Chave PIX que será deletada. | 200        |

## Response

STATUS 200

Response Body

```json
{}
```

STATUS 4XX

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`    | Descrição (eng)<br/>`Description`                               | Descrição (ptbr)<br/>`translation`                           |
|-------------|----------------------|-----------------------|-----------------------------------------------------------------|--------------------------------------------------------------|
| 403         | PIX000080            | Not enough permission | The selected agent is not an Pix Indirect Participant           | O agente selecionado não é um Participante Indireto do Pix   |
| 404         | PIX000082            | Alias not found       | Alias \{alias_key\} not found                                     | Alias \{alias_key\} não encontrado                             |
| 400         | PIX000087            | Pix key type          | Only pix key type random_key is currently implemented for alias | Random_key é o único tipo atualmente implementado para alias |
| 404         | PIX000083            | Pix Key not found     | Pix Key \{pix_key\} not found for Alias \{alias_key\}               | Chave Pix \{pix_key\} não encontrada para o Alias \{alias_key\}  |

---

# Introdução a gestao de chaves PIX para um Alias

URL: /documentation/pix_indireto/chaves_pix/introducao_chaves_pix

Após o Participante Indireto ter realizado o cadastro de um Alias para sua conta aberta na QI Tech, este pode realizar o cadastro de uma chave PIX para este Alias o qual, na prática, representa o cliente do Participante Indireto.

Como o Participante Indireto já realizou o cadastro do Alias, basta indicar à  QI Tech, que se deseja abrir uma chave PIX para determinado Alias, o qual possui uma chave única que é fornecida quando o Participante Indireto registra um Alias.

:::info Informação

Tudo o descrito nesta seção de introdução também está, de forma detalhada como o Participante Indireto deve tratar via API, na seções seguintes.

:::

---

# Listagem de chaves Pix de um Alias

URL: /documentation/pix_indireto/chaves_pix/listar_chaves

## Request

ENDPOINT /account/ ACCOUNT_KEY /alias/ ALIAS_KEY /pix_key
MÉTODO GET

### Path Params

| Campo         | Tipo   | Descrição             | Caracteres |
|---------------|--------|-----------------------|------------|
| `account_key` | string | Chave única da conta. | 36         |
| `alias_key`   | string | Chave única do alias. | 36         |

:::info Tipos de Chave Pix
A “pix_key” é do tipo Chave Aleatória (UUID4), seguindo a seguinte formatação:

Chave Aleatória: UUID4.
:::

### Query Params

| Campo         | Tipo    | Descrição                               | Caracteres |
|---------------|---------|-----------------------------------------|------------|
| `page_number` | integer | Página atual que está sendo consultada. | -          |
| `page_size`   | integer | Quantidade de resultados por página.    | -          |

## Response

STATUS 200

Response Body: Chave Ativa

```json
{
  "data": [
    {
      "pix_key": "ecdb1790-667f-42ab-b319-fbc838a04672",
      "pix_key_type": "random_key",
      "pix_key_status": "active",
      "created_at": "2021-10-22T20:30:23.459Z"
    },
    {
      "pix_key": "f5eb52c1-5247-4de3-9982-f4f0ee9edad4",
      "pix_key_type": "random_key",
      "pix_key_status": "active",
      "created_at": "2021-12-06T21:16:12.123Z"
    }
  ],
  "pagination": {
    "current_page": 1,
    "next_page": null,
    "rows_per_page": 10
  }
}
```

### Response Body Params

| Campo            | Tipo          | Descrição                                                                  | Max. Caracteres |
|------------------|---------------|----------------------------------------------------------------------------|-----------------|
| `pix_key`        | string        | Chave Pix.                                                                 | 77              |
| `pix_key_type`   | string        | Tipo da chave Pix. Pode ser "random_key"                                   | 10              |
| `pix_key_status` | string        | Status de ativação da chave Pix. Pode ser "active","inactive" ou "pending" | 8               |
| `created_at`     | datetime Zulu | Data de criação da requisição.                                             | 20              |

STATUS 4XX

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`       | Descrição (eng)<br/>`Description`                     | Descrição (ptbr)<br/>`translation`                             |
|-------------|----------------------|--------------------------|-------------------------------------------------------|----------------------------------------------------------------|
| 403         | PIX000080            | Not enough permission    | The selected agent is not an Pix Indirect Participant | O agente selecionado não é um Participante Indireto do Pix     |
| 404         | PIX000082            | Alias not found          | Alias \{alias_key\} not found                           | Alias \{alias_key\} não encontrado                               |
| 400         | PIX000088            | Page size too large      | Requested page size above limit of \{max_page_size\}    | Tamanho de página requerido acima do limite de \{max_page_size\} |
| 400         | PIX000089            | Invalid value for params | Page Size and Page Number must be integers            | age Size e Page Number devem ser números inteiros              |

---

# Cancelar Solicitação de Devolução

URL: /documentation/pix_indireto/devolucao/cancelar_devolucao

O Participante Indireto pode cancelar uma solicitação de devolução, caso seja necessário.

Apenas o Participante (Direto ou Indireto) o qual criou a solicitação de devolução pode cancelá-la.

Para o cancelamento, o status deve ser de OPEN

:::danger IMPORTANTE
O Banco Central do Brasil define que, dentro de um período de 1 dia do recebimento da Solicitação de Devolução pelo Participante Indireto, a Devolução precisa ser fechada .

Caso haja atraso por parte do Participante Indireto, a QI Tech irá fechar a Solicitação de Devolução, com o status de totally_accepted , a fim de que a instituição não seja penalizada pelo Banco Central do Brasil.
:::

## Request

ENDPOINT /pix/refund_request/ REFUND_REQUEST_KEY
MÉTODO PATCH

**Request Body**

```json
{
    "refund_request_status": "cancelled",
    "request_control_key": "e09aba97-0051-4c18-b645-1cb3c2581c34"
}

```

### Path Params
| Campo                  | Tipo   | Descrição                     | Caracteres |
| ---------------------- | ------ | ----------------------------- | ---------- |
| `refund_request_key` * | string | UUID4 da devolução já criada. | 36         |

### Body Params

| Campo                     | Tipo   | Descrição                                             | Caracteres |
| ------------------------- | ------ | ----------------------------------------------------- | ---------- |
| `refund_request_status` * | string | Status de atualização da devolução.                   | 36         |
| `request_control_key` *   | uuidv4 | UUID4 para fins de consulta sobre a requisição feita. | 36         |

## Response

STATUS 200

**Response Body**

```json
{
  "refund_request_key": "47633091-7d44-4d10-9d00-1f937104e537",
  "pix_transfer_key": "2bcbfd65-8660-4cb0-8ae4-4c4b327b32be",
  "end_to_end_id": "E73856642202407011350E8cnA3Ae7r3",
  "requested_amount": 10,
  "refund_request_status": "cancelled",
  "refund_request_type": "operational_flaw",
  "infraction_report_key": null,
  "refund_request_details": "Foi identificada uma fraude na transação.",
  "requesting_participant": "73856642",
  "contested_participant": "99999999",
  "analysis_result": null,
  "analysis_details": null,
  "reject_reason": null,
  "refund_transfer_key": null,
  "refunded_amount": 0.00,
  "refund_request_direction": "outgoing",
  "created_at": "2024-07-01T13:50:30Z"
}
```

### Body Params
| Campo                       | Tipo   | Descrição                                                                                 | Caracteres                                                                          |
| --------------------------- | ------ | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| `pix_transfer_key`*         | string | Identificador único da transação PIX.                                                     | 36                                                                                  |
| `refund_request_key`*       | string | Identificador único da devolução.                                                         | 36                                                                                  |
| `infraction_report_key`*    | string | Identificador único da infração relacionada à devolução. Somente quando o tipo for FRAUDE | 36                                                                                  |
| `refund_request_type`       | enum   | Tipo de solicitação de devolução.                                                         | **[Enumeradores refund_request_type](#enumeradores-refund_request_type)**           |
| `requested_amount`*         | float  | Valor da devolução                                                                        | -                                                                                   |
| `refund_request_status`*    | enum   | Status .                                                                                  | **[Enumeradores refund_request_status](#enumeradores-refund_request_status)**       |
| `contested_participant`*    | string | ISPB do Participante Creditado (Contestado).                                              | 8                                                                                   |
| `requesting_participant`*   | string | ISPB do Participante Debitado (Requisitante, o qual está pedindo a devolução).            | 8                                                                                   |
| `refund_request_details`*   | string | Detalhes da devolução.                                                                    | -                                                                                   |
| `analysis_result`*          | enum   | Resultado da análise de fechamento da devolução.                                          | **[Enumeradores analysis_result](#enumeradores-analysis_result)**                   |
| `analysis_details`*         | string | Detalhes da análise de fechamento da devolução.                                           | -                                                                                   |
| `reject_reason`*            | string | Motivo da rejeição da devolução, caso seja fechada com REJECTED.                          | **[Enumeradores reject_reason](#enumeradores-reject_reason)**                       |
| `refund_transfer_key`*      | string | pix_transfer_key da transação de devolução, caso seja fechada com aceite.                 | -                                                                                   |
| `refunded_amount`*          | float  | Valor devolvido na transação de devolução.                                                | -                                                                                   |
| `refund_request_direction`* | string | Direção da solicitação de devolução.                                                      | **[Enumeradores refund_request_direction](#enumeradores-refund_request_direction)** |
| `created_at` *              | string | Data de criação da Solicitação de Devolução                                               | 24                                                                                  |

### Enumeradores refund_request_status
| Campo       | Descrição                                                                    |
| ----------- | ---------------------------------------------------------------------------- |
| `open`      | Solicitação de Devolução foi <strong>criada</strong> e está aberta no BACEN. |
| `cancelled` | Solicitação de Devolução está <strong>cancelada</strong> no BACEN            |
| `closed`    | Solicitação de Devolução está <strong>fechada</strong> no BACEN              |

### Enumeradores refund_request_type
| Campo              | Descrição                                              |
| ------------------ | ------------------------------------------------------ |
| `fraud`            | Solicitação de Devolução originada de uma fraude.      |
| `operational_flaw` | Solicitação de Devolução originada de um erro interno. |

### Enumeradores analysis_result
| Campo                | Descrição                                         |
| -------------------- | ------------------------------------------------- |
| `totally_accepted`   | Solicitação de Devolução foi totalmente aceita.   |
| `partially_accepted` | Solicitação de Devolução foi parcialmente aceita; |
| `rejected`           | Solicitação de Devolução foi rejeitada.           |

### Enumeradores reject_reason
| Campo             | Descrição                                                                  |
| ----------------- | -------------------------------------------------------------------------- |
| `no_balance`      | Conta não possui saldo para realizar a devolução.                          |
| `account_closure` | Conta se encontra fechada e, portanto, não é possível realizar a devolução |
| `other`           | Outro motivo                                                               |

### Enumeradores refund_request_direction
| Campo      | Descrição                                         |
| ---------- | ------------------------------------------------- |
| `outgoing` | Participante é originador do pedido de devolução. |
| `incoming` | Participante é o alvo do pedido de devolução      |

---

# Consultar Solicitação de Devolução

URL: /documentation/pix_indireto/devolucao/consultar_devolucao

Caso o Participante Indireto queira consultar as informações de uma Solicitação de Devolução, a rota abaixo o permite.

:::danger IMPORTANTE
O Banco Central do Brasil define que, dentro de um período de 1 dia do recebimento da Solicitação de Devolução pelo Participante Indireto, a Devolução precisa ser fechada .

Caso haja atraso por parte do Participante Indireto, a QI Tech irá fechar a Solicitação de Devolução, com o status de totally_accepted , a fim de que a instituição não seja penalizada pelo Banco Central do Brasil.
:::

## Request

ENDPOINT /pix/refund_request/ REFUND_REQUEST_KEY
MÉTODO GET

### Path Params
| Campo                | Tipo   | Descrição           | Caracteres |
| -------------------- | ------ | ------------------- | ---------- |
| `refund_request_key` | string | UUID4 da devolução. | 36         |

## Response

STATUS 200

**Response Body**

```json
{
  "refund_request_key": "47633091-7d44-4d10-9d00-1f937104e537",
  "pix_transfer_key": "2bcbfd65-8660-4cb0-8ae4-4c4b327b32be",
  "end_to_end_id": "E73856642202407011350E8cnA3Ae7r3",
  "requested_amount": 10,
  "refund_request_status": "closed",
  "refund_request_type": "operational_flaw",
  "infraction_report_key": null,
  "refund_request_details": "Foi identificada uma fraude na transação.",
  "requesting_participant": "73856642",
  "contested_participant": "99999999",
  "analysis_result": "rejected",
  "analysis_details": null,
  "reject_reason": "account_closure",
  "refund_transfer_key": null,
  "refunded_amount": 0.00,
  "refund_request_direction": "outgoing",
  "created_at": "2024-07-01T13:50:30Z",
  "refund_events": [
    {
      "event_type": "open",
      "event_details": "Solicitação de Devolução criada pelo participante indireto",
      "created_at": "2024-07-01T13:50:30Z"
    },
    {
      "event_type": "closed",
      "event_details": "Requisição de devolução fechado pela outra instituição financeira, com status REJEITADO",
      "created_at": "2024-07-01T14:02:55Z"
    }
  ]
}
```

### Body Params
| Campo                       | Tipo   | Descrição                                                                                 | Caracteres                                                                          |
| --------------------------- | ------ | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| `pix_transfer_key`*         | string | Identificador único da transação PIX.                                                     | 36                                                                                  |
| `refund_request_key`*       | string | Identificador único da devolução.                                                         | 36                                                                                  |
| `infraction_report_key`*    | string | Identificador único da infração relacionada à devolução. Somente quando o tipo for FRAUDE | 36                                                                                  |
| `refund_request_type`       | enum   | Tipo de solicitação de devolução.                                                         | **[Enumeradores refund_request_type](#enumeradores-refund_request_type)**           |
| `requested_amount`*         | float  | Valor da devolução                                                                        | -                                                                                   |
| `refund_request_status`*    | enum   | Status .                                                                                  | **[Enumeradores refund_request_status](#enumeradores-refund_request_status)**       |
| `contested_participant`*    | string | ISPB do Participante Creditado (Contestado).                                              | 8                                                                                   |
| `requesting_participant`*   | string | ISPB do Participante Debitado (Requisitante, o qual está pedindo a devolução).            | 8                                                                                   |
| `refund_request_details`*   | string | Detalhes da devolução.                                                                    | -                                                                                   |
| `analysis_result`*          | enum   | Resultado da análise de fechamento da devolução.                                          | **[Enumeradores analysis_result](#enumeradores-analysis_result)**                   |
| `analysis_details`*         | string | Detalhes da análise de fechamento da devolução.                                           | -                                                                                   |
| `reject_reason`*            | string | Motivo da rejeição da devolução, caso seja fechada com REJECTED.                          | **[Enumeradores reject_reason](#enumeradores-reject_reason)**                       |
| `refund_transfer_key`*      | string | pix_transfer_key da transação de devolução, caso seja fechada com aceite.                 | -                                                                                   |
| `refunded_amount`*          | float  | Valor devolvido na transação de devolução.                                                | -                                                                                   |
| `refund_events`*            | object | Objeto eventos de pedido de devolução.                                                    | **[Objeto refund_events](#objetos-refund_events)**                                  |
| `refund_request_direction`* | string | Direção da solicitação de devolução.                                                      | **[Enumeradores refund_request_direction](#enumeradores-refund_request_direction)** |
| `created_at` *              | string | Data de criação da Solicitação de Devolução                                               | 24                                                                                  |

### Enumeradores refund_request_status
| Campo       | Descrição                                                                    |
| ----------- | ---------------------------------------------------------------------------- |
| `open`      | Solicitação de Devolução foi <strong>criada</strong> e está aberta no BACEN. |
| `cancelled` | Solicitação de Devolução está <strong>cancelada</strong> no BACEN            |
| `closed`    | Solicitação de Devolução está <strong>fechada</strong> no BACEN              |

### Enumeradores refund_request_type
| Campo              | Descrição                                              |
| ------------------ | ------------------------------------------------------ |
| `fraud`            | Solicitação de Devolução originada de uma fraude.      |
| `operational_flaw` | Solicitação de Devolução originada de um erro interno. |

### Enumeradores analysis_result
| Campo                | Descrição                                         |
| -------------------- | ------------------------------------------------- |
| `totally_accepted`   | Solicitação de Devolução foi totalmente aceita.   |
| `partially_accepted` | Solicitação de Devolução foi parcialmente aceita; |
| `rejected`           | Solicitação de Devolução foi rejeitada.           |

### Enumeradores reject_reason
| Campo             | Descrição                                                                  |
| ----------------- | -------------------------------------------------------------------------- |
| `no_balance`      | Conta não possui saldo para realizar a devolução.                          |
| `account_closure` | Conta se encontra fechada e, portanto, não é possível realizar a devolução |
| `other`           | Outro motivo                                                               |

### Enumeradores refund_request_direction
| Campo      | Descrição                                         |
| ---------- | ------------------------------------------------- |
| `outgoing` | Participante é originador do pedido de devolução. |
| `incoming` | Participante é o alvo do pedido de devolução      |

### Objetos refund_events
| Campo           | Descrição                                                                                                             |
| --------------- | --------------------------------------------------------------------------------------------------------------------- |
| `event_type`    | Tipo do evento de mudança da devolução. **[Enumeradores refund_request_status](#enumeradores-refund_request_status)** |
| `event_details` | Detalhes acerca do evento.                                                                                            |
| `created_at`    | Data de criação do evento.                                                                                            |

---

# Abrir Solicitação de Devolução

URL: /documentation/pix_indireto/devolucao/criar_devolucao

A Solicitação de Devolução é mais uma funcionalidade presente no MED, definido pelo BACEN.

O principal objetivo é facilitar a devolução de uma transação PIX feita. Tem-se que a Solicitação de Devolução pode ser gerada tanto por uma falha operacional quanto por uma infração . Neste último caso, há um Relato de Infração, para uma transação PIX, já fechado e aceito .

:::caution **Atenção**
A fim de se compreender o fluxo de Solicitação de Devolução, é necessário saber quais ENDPOINTS o Participante Indireto que criou a devolução pode utilizar.

Quando o Participante Indireto cria uma Solicitação de Devolução, este pode (se necessário) cancelar a solicitação caso tenha sido gerado de maneira indevida.

Quando o Participante Indireto recebe uma Solicitação de Devolução, esta deve respondê-lo informando o resultado da análise da solicitação.

Ambos os fluxos citados serão descritos nas seções seguintes.

Ressalta-se também que se o Participante Indireto abrir a Solicitação, então ele contesta outro Participante. No fluxo contrário, o Participante Indireto é o contestado .
:::

:::danger IMPORTANTE
O Banco Central do Brasil define que, dentro de um período de 1 dia do recebimento da Solicitação de Devolução pelo Participante Indireto, a Devolução precisa ser fechada .

Caso haja atraso por parte do Participante Indireto, a QI Tech irá fechar a Solicitação de Devolução, com o status de totally_accepted , a fim de que a instituição não seja penalizada pelo Banco Central do Brasil.
:::

## Request

ENDPOINT /pix/refund_request
MÉTODO POST

**Request Body**

```json
{
    "pix_transfer_key": "a39mn71j-1dc7-4df0-8472-233624706e08",
    "request_control_key":"df3ae07e-1dc7-4df0-8472-233624706e08",
    "amount": 200.00,
    "refund_request_details": "transação fraudada",
    "refund_request_type": "fraud"
}

```

### Body Params

| Campo                    | Tipo   | Descrição                                                                                  | Caracteres                                                                |
| ------------------------ | ------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------- |
| `pix_transfer_key` *     | string | Identificador único da transação PIX.                                                      | 36                                                                        |
| `request_control_key` *  | uuidv4 | UUID4 para fins de consulta sobre a requisição feita.                                      | 36                                                                        |
| `amount`                 | float  | Valor da devolução. Caso não seja fornecido, será utilizado o valor da transação original. | 19                                                                        |
| `refund_request_details` | string | Detalhes acerca da solicitação de devolução a ser criada                                   | \<\= 2000                                                                 |
| `refund_request_type` *  | enum   | Pode ser (fraud/operational_flaw)                                                          | **[Enumeradores refund_request_type](#enumeradores-refund_request_type)** |

## Response

STATUS
        200

**Response Body**

```json
{
  "refund_request_key": "47633091-7d44-4d10-9d00-1f937104e537",
  "pix_transfer_key": "2bcbfd65-8660-4cb0-8ae4-4c4b327b32be",
  "end_to_end_id": "E73856642202407011350E8cnA3Ae7r3",
  "requested_amount": 200.00,
  "refund_request_status": "open",
  "refund_request_type": "operational_flaw",
  "infraction_report_key": null,
  "refund_request_details": "Foi identificada uma fraude na transação.",
  "requesting_participant": "73856642",
  "contested_participant": "99999999",
  "analysis_result": null,
  "analysis_details": null,
  "reject_reason": null,
  "refund_transfer_key": null,
  "refunded_amount": 0.00,
  "refund_request_direction": "outgoing",
  "created_at": "2024-07-01T13:50:30Z"
}
```

:::info Informação
Caso o campo "refund_request_type" seja de "fraud", a QI Tech informará, na resposta, a infraction_report_key que já foi fechada e aceita.
:::

### Body Params
| Campo                       | Tipo   | Descrição                                                                                 | Caracteres                                                                          |
| --------------------------- | ------ | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| `pix_transfer_key`*         | string | Identificador único da transação PIX.                                                     | 36                                                                                  |
| `refund_request_key`*       | string | Identificador único da devolução.                                                         | 36                                                                                  |
| `infraction_report_key`*    | string | Identificador único da infração relacionada à devolução. Somente quando o tipo for FRAUDE | 36                                                                                  |
| `refund_request_type`       | enum   | Tipo de solicitação de devolução.                                                         | **[Enumeradores refund_request_type](#enumeradores-refund_request_type)**           |
| `requested_amount`*         | float  | Valor da devolução                                                                        | -                                                                                   |
| `refund_request_status`*    | enum   | Status .                                                                                  | **[Enumeradores refund_request_status](#enumeradores-refund_request_status)**       |
| `contested_participant`*    | string | ISPB do Participante Creditado (Contestado).                                              | 8                                                                                   |
| `requesting_participant`*   | string | ISPB do Participante Debitado (Requisitante, o qual está pedindo a devolução).            | 8                                                                                   |
| `refund_request_details`*   | string | Detalhes da devolução.                                                                    | -                                                                                   |
| `analysis_result`*          | enum   | Resultado da análise de fechamento da devolução.                                          | **[Enumeradores analysis_result](#enumeradores-analysis_result)**                   |
| `analysis_details`*         | string | Detalhes da análise de fechamento da devolução.                                           | -                                                                                   |
| `reject_reason`*            | string | Motivo da rejeição da devolução, caso seja fechada com REJECTED.                          | **[Enumeradores reject_reason](#enumeradores-reject_reason)**                       |
| `refund_transfer_key`*      | string | pix_transfer_key da transação de devolução, caso seja fechada com aceite.                 | -                                                                                   |
| `refunded_amount`*          | float  | Valor devolvido na transação de devolução.                                                | -                                                                                   |
| `refund_request_direction`* | string | Direção da solicitação de devolução.                                                      | **[Enumeradores refund_request_direction](#enumeradores-refund_request_direction)** |
| `created_at` *              | string | Data de criação da Solicitação de Devolução                                               | 24                                                                                  |

### Enumeradores refund_request_status
| Campo       | Descrição                                                                    |
| ----------- | ---------------------------------------------------------------------------- |
| `open`      | Solicitação de Devolução foi <strong>criada</strong> e está aberta no BACEN. |
| `cancelled` | Solicitação de Devolução está <strong>cancelada</strong> no BACEN            |
| `closed`    | Solicitação de Devolução está <strong>fechada</strong> no BACEN              |

### Enumeradores refund_request_type
| Campo              | Descrição                                              |
| ------------------ | ------------------------------------------------------ |
| `fraud`            | Solicitação de Devolução originada de uma fraude.      |
| `operational_flaw` | Solicitação de Devolução originada de um erro interno. |

### Enumeradores analysis_result
| Campo                | Descrição                                         |
| -------------------- | ------------------------------------------------- |
| `totally_accepted`   | Solicitação de Devolução foi totalmente aceita.   |
| `partially_accepted` | Solicitação de Devolução foi parcialmente aceita; |
| `rejected`           | Solicitação de Devolução foi rejeitada.           |

### Enumeradores reject_reason
| Campo             | Descrição                                                                  |
| ----------------- | -------------------------------------------------------------------------- |
| `no_balance`      | Conta não possui saldo para realizar a devolução.                          |
| `account_closure` | Conta se encontra fechada e, portanto, não é possível realizar a devolução |
| `other`           | Outro motivo                                                               |

### Enumeradores refund_request_direction
| Campo      | Descrição                                         |
| ---------- | ------------------------------------------------- |
| `outgoing` | Participante é originador do pedido de devolução. |
| `incoming` | Participante é o alvo do pedido de devolução      |

---

# Fechar Solicitação de Devolução

URL: /documentation/pix_indireto/devolucao/fechar_devolucao

O Participante Indireto pode fechar uma solicitação de devolução, se este (Participante) estiver como Participante Contestado.

Para o fechamento, o status deve ser de OPEN .

:::danger IMPORTANTE
O Banco Central do Brasil define que, dentro de um período de 1 dia do recebimento da Solicitação de Devolução pelo Participante Indireto, a Devolução precisa ser fechada .

Caso haja atraso por parte do Participante Indireto, a QI Tech irá fechar a Solicitação de Devolução, com o status de totally_accepted , a fim de que a instituição não seja penalizada pelo Banco Central do Brasil.
:::

## Request

ENDPOINT /pix/refund_request/ REFUND_REQUEST_KEY
MÉTODO PATCH

**Request Body**

```json
{
    "request_control_key":"xpjae07e-1dc7-4df0-8472-233624706e08",
    "refund_request_status": "closed",
    "analysis_result": "totally_accepted",
    "analysis_details": "Valor bloqueado. Para mais informações, contatar central antifraude em 11 3000-45012, informando ID 0000.",
    "refund_transfer_key": "cdcf0d25-08a1-46e3-902a-6d7ca75e6c48"
}

```

### Path Params
| Campo | Tipo | Descrição | Caracteres |
|---|---| ---| ---|
| `refund_request_key` *| string | UUID4 da devolução já criada.| 36 |

### Body Params

| Campo | Tipo | Descrição | Caracteres |
|---|---| ---| ---|
| `request_control_key` * | uuidv4 | UUID4 para fins de consulta sobre a requisição feita. | 36 |
| `request_request_status` * | enum | status | **[Enumeradores refund_request_status](#enumeradores-refund_request_status)**  |
| `analysis_result` * | enum | Resultado da análise | **[Enumeradores analysis_result](#enumeradores-analysis_result)**  |
| `analysis_details` | string | Comentário sobre a análise | \<\= 2000 |
| `refund_transfer_key`  | string | UUID4 da transação de devolução enviada pela rota de "reversal". Deve ser utilizado quando o "analysis_result" é de aceite.| 36 |
| `reject_reason`  | enum | Razão da rejeição da devolução. Deve ser utilizado quando o campo 'analysis_result' é 'rejected'. | **[Enumeradores reject_reason](#enumeradores-reject_reason)**  |

## Response

STATUS 200

**Response Body - Recusa**

```json
{
  "refund_request_key": "2e42116f-4bdb-4f07-931f-c4dc7a78ed99",
  "pix_transfer_key": "d5856a5f-378f-43ed-818b-df33b9fae703",
  "end_to_end_id": "E60701190202406281828JCBxFsqssCf",
  "requested_amount": 10,
  "refund_request_status": "closed",
  "refund_request_type": "operational_flaw",
  "infraction_report_key": null,
  "refund_request_details": "Foi identificada uma fraude na transação.",
  "requesting_participant": "99999999",
  "contested_participant": "73856642",
  "analysis_result": "rejected",
  "analysis_details": "Conta sem saldo.",
  "reject_reason": "no_balance",
  "refund_transfer_key": null,
  "refunded_amount": 0.00,
  "refund_request_direction": "incoming",
  "created_at": "2024-07-01T15:46:18Z"
}
```

**Response Body - Aceite**

```json
{
  "refund_request_key": "2e42116f-4bdb-4f07-931f-c4dc7a78ed99",
  "pix_transfer_key": "d5856a5f-378f-43ed-818b-df33b9fae703",
  "end_to_end_id": "E60701190202406281828JCBxFsqssCf",
  "requested_amount": 10,
  "refund_request_status": "closed",
  "refund_request_type": "operational_flaw",
  "infraction_report_key": null,
  "refund_request_details": "Foi identificada uma fraude na transação.",
  "requesting_participant": "99999999",
  "contested_participant": "73856642",
  "analysis_result": "totally_accepted",
  "analysis_details": "Valor devolvido.",
  "reject_reason": null,
  "refund_transfer_key": "ab1189d8-5a87-4e5b-b49c-d05776bd8efe",
  "refunded_amount": 10.00,
  "refund_request_direction": "incoming",
  "created_at": "2024-07-01T15:46:18Z"
}
```

### Body Params
| Campo                       | Tipo   | Descrição                                                                                 | Caracteres                                                                          |
| --------------------------- | ------ | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| `pix_transfer_key`*         | string | Identificador único da transação PIX.                                                     | 36                                                                                  |
| `refund_request_key`*       | string | Identificador único da devolução.                                                         | 36                                                                                  |
| `infraction_report_key`*    | string | Identificador único da infração relacionada à devolução. Somente quando o tipo for FRAUDE | 36                                                                                  |
| `refund_request_type`       | enum   | Tipo de solicitação de devolução.                                                         | **[Enumeradores refund_request_type](#enumeradores-refund_request_type)**           |
| `requested_amount`*         | float  | Valor da devolução                                                                        | -                                                                                   |
| `refund_request_status`*    | enum   | Status .                                                                                  | **[Enumeradores refund_request_status](#enumeradores-refund_request_status)**       |
| `contested_participant`*    | string | ISPB do Participante Creditado (Contestado).                                              | 8                                                                                   |
| `requesting_participant`*   | string | ISPB do Participante Debitado (Requisitante, o qual está pedindo a devolução).            | 8                                                                                   |
| `refund_request_details`*   | string | Detalhes da devolução.                                                                    | -                                                                                   |
| `analysis_result`*          | enum   | Resultado da análise de fechamento da devolução.                                          | **[Enumeradores analysis_result](#enumeradores-analysis_result)**                   |
| `analysis_details`*         | string | Detalhes da análise de fechamento da devolução.                                           | -                                                                                   |
| `reject_reason`*            | string | Motivo da rejeição da devolução, caso seja fechada com REJECTED.                          | **[Enumeradores reject_reason](#enumeradores-reject_reason)**                       |
| `refund_transfer_key`*      | string | pix_transfer_key da transação de devolução, caso seja fechada com aceite.                 | -                                                                                   |
| `refunded_amount`*          | float  | Valor devolvido na transação de devolução.                                                | -                                                                                   |
| `refund_request_direction`* | string | Direção da solicitação de devolução.                                                      | **[Enumeradores refund_request_direction](#enumeradores-refund_request_direction)** |
| `created_at` *              | string | Data de criação da Solicitação de Devolução                                               | 24                                                                                  |

### Enumeradores refund_request_status
| Campo       | Descrição                                                                    |
| ----------- | ---------------------------------------------------------------------------- |
| `open`      | Solicitação de Devolução foi <strong>criada</strong> e está aberta no BACEN. |
| `cancelled` | Solicitação de Devolução está <strong>cancelada</strong> no BACEN            |
| `closed`    | Solicitação de Devolução está <strong>fechada</strong> no BACEN              |

### Enumeradores refund_request_type
| Campo              | Descrição                                              |
| ------------------ | ------------------------------------------------------ |
| `fraud`            | Solicitação de Devolução originada de uma fraude.      |
| `operational_flaw` | Solicitação de Devolução originada de um erro interno. |

### Enumeradores analysis_result
| Campo                | Descrição                                         |
| -------------------- | ------------------------------------------------- |
| `totally_accepted`   | Solicitação de Devolução foi totalmente aceita.   |
| `partially_accepted` | Solicitação de Devolução foi parcialmente aceita; |
| `rejected`           | Solicitação de Devolução foi rejeitada.           |

### Enumeradores reject_reason
| Campo             | Descrição                                                                  |
| ----------------- | -------------------------------------------------------------------------- |
| `no_balance`      | Conta não possui saldo para realizar a devolução.                          |
| `account_closure` | Conta se encontra fechada e, portanto, não é possível realizar a devolução |
| `other`           | Outro motivo                                                               |

### Enumeradores refund_request_direction
| Campo      | Descrição                                         |
| ---------- | ------------------------------------------------- |
| `outgoing` | Participante é originador do pedido de devolução. |
| `incoming` | Participante é o alvo do pedido de devolução      |

---

# Listar Solicitações de Devolução

URL: /documentation/pix_indireto/devolucao/listar_solicitacoes

Caso o Participante Indireto solicite a listagem de Solicitações de Devolução, pode fazê-lo por meio da rota abaixo.

:::danger IMPORTANTE
O Banco Central do Brasil define que, dentro de um período de 1 dia do recebimento da Solicitação de Devolução pelo Participante Indireto, a Devolução precisa ser fechada .

Caso haja atraso por parte do Participante Indireto, a QI Tech irá fechar a Solicitação de Devolução, com o status de totally_accepted , a fim de que a instituição não seja penalizada pelo Banco Central do Brasil.
:::

## Request

ENDPOINT /pix/refund_requests
MÉTODO GET

### Query Params
| Campo                   | Tipo    | Descrição                               | Caracteres                                                                    |
| ----------------------- | ------- | --------------------------------------- | ----------------------------------------------------------------------------- |
| `refund_request_status` | enum    | Status do Relato de Infração.           | **[Enumeradores refund_request_status](#enumeradores-refund_request_status)** |
| `refund_request_type`   | enum    | Tipo do Relato de Infração.             | **[Enumeradores refund_request_type](#enumeradores-refund_request_type)**     |
| `initial_date`          | string  | Data inicial de busca.                  | **[Formato de data](#formato-de-data)**                                       |
| `final_date`            | string  | Data final de busca.                    | **[Formato de data](#formato-de-data)**                                       |
| `page_number`           | integer | Página atual que está sendo consultada. | -                                                                             |
| `page_size`             | integer | Quantidade de resultados por página.    | -                                                                             |

### Enumeradores refund_request_status
| Campo       | Tipo   | Descrição                                                                    | Caracteres |
| ----------- | ------ | ---------------------------------------------------------------------------- | ---------- |
| `open`      | string | Solicitação de Devolução foi <strong>criada</strong> e está aberto no BACEN. | 4          |
| `cancelled` | string | Solicitação de Devolução está <strong>cancelada</strong> no BACEN.           | 9          |
| `closed`    | string | Solicitação de Devolução está <strong>fechada</strong> no BACEN.             | 6          |

### Enumeradores refund_request_type
| Campo              | Tipo   | Descrição                                              | Caracteres |
| ------------------ | ------ | ------------------------------------------------------ | ---------- |
| `fraud`            | string | Solicitação de Devolução originada de uma fraude.      | 5          |
| `operational_flaw` | string | Solicitação de Devolução originada de um erro interno. | 16         |

### Formato de data

| Campo          | Tipo   | Descrição                                                                   | Caracteres |
| -------------- | ------ | --------------------------------------------------------------------------- | ---------- |
| `initial_date` | string | Data de inicio para a procura, em formato "%Y-%m-%d. Exemplo: "2023-10-09". | 10         |
| `final_date`   | string | Data final para a procura, em formato "%Y-%m-%d. Exemplo: "2023-10-11".     | 10         |

## Response

STATUS 200

**Response Body**

```json
{
  "data": [
    {
      "refund_request_key": "817c9331-fe1d-4178-aff2-8bed87ce3099",
      "pix_transfer_key": "029efb4e-ad3b-4ba5-a73c-c724f0d9c02b",
      "end_to_end_id": "E73856642202406282112pEBgwN7kkqD",
      "requested_amount": 10,
      "refund_request_status": "cancelled",
      "refund_request_type": "operational_flaw",
      "infraction_report_key": null,
      "refund_request_details": "Foi identificada uma fraude na transação.",
      "requesting_participant": "73856642",
      "contested_participant": "99999999",
      "analysis_result": null,
      "analysis_details": null,
      "reject_reason": null,
      "refund_transfer_key": null,
      "refunded_amount": 0.00,
      "refund_request_direction": "outgoing",
      "created_at": "2024-06-28T21:25:20Z",
      "refund_events": [
        {
          "event_type": "open",
          "event_details": "Solicitação de Devolução criada pelo participante indireto",
          "created_at": "2024-06-28T21:25:20Z"
        },
        {
          "event_type": "cancelled",
          "event_details": "Solicitação de Devolução cancelada pelo participante indireto",
          "created_at": "2024-06-28T21:27:19Z"
        }
      ]
    },
    {
      "refund_request_key": "5d174097-3d5c-41a2-a548-b24c41eecfb4",
      "pix_transfer_key": "d5856a5f-378f-43ed-818b-df33b9fae703",
      "end_to_end_id": "E60701190202406281828JCBxFsqssCf",
      "requested_amount": 10,
      "refund_request_status": "closed",
      "refund_request_type": "operational_flaw",
      "infraction_report_key": null,
      "refund_request_details": "Foi identificada uma fraude na transação.",
      "requesting_participant": "99999999",
      "contested_participant": "73856642",
      "analysis_result": "rejected",
      "analysis_details": null,
      "reject_reason": "no_balance",
      "refund_transfer_key": null,
      "refunded_amount": 0.00,
      "refund_request_direction": "incoming",
      "created_at": "2024-07-01T12:47:41Z",
      "refund_events": [
        {
          "event_type": "open",
          "event_details": "Solicitação de Devolução criada por outra instituição financeira",
          "created_at": "2024-07-01T12:47:41Z"
        }
      ]
    }
  ]
}
```

### Body Params
| Campo                       | Tipo   | Descrição                                                                                 | Caracteres                                                                         |
| --------------------------- | ------ | ----------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| `pix_transfer_key`*         | string | Identificador único da transação PIX.                                                     | 36                                                                                 |
| `refund_request_key`*       | string | Identificador único da devolução.                                                         | 36                                                                                 |
| `infraction_report_key`*    | string | Identificador único da infração relacionada à devolução. Somente quando o tipo for FRAUDE | 36                                                                                 |
| `refund_request_type`       | enum   | Tipo de solicitação de devolução.                                                         | **[Enumeradores refund_request_type](#enumeradores-refund_request_type)**           |
| `requested_amount`*         | float  | Valor da devolução                                                                        | -                                                                                  |
| `refund_request_status`*    | enum   | Status .                                                                                  | **[Enumeradores refund_request_status](#enumeradores-refund_request_status)**       |
| `contested_participant`*    | string | ISPB do Participante Creditado (Contestado).                                              | 8                                                                                  |
| `requesting_participant`*   | string | ISPB do Participante Debitado (Requisitante, o qual está pedindo a devolução).            | 8                                                                                  |
| `refund_request_details`*   | string | Detalhes da devolução.                                                                    | -                                                                                  |
| `analysis_result`*          | enum   | Resultado da análise de fechamento da devolução.                                          | **[Enumeradores analysis_result](#enumeradores-analysis_result)**                   |
| `analysis_details`*         | string | Detalhes da análise de fechamento da devolução.                                           | -                                                                                  |
| `reject_reason`*            | string | Motivo da rejeição da devolução, caso seja fechada com REJECTED.                          | **[Enumeradores reject_reason](#enumeradores-reject_reason)**                       |
| `refund_transfer_key`*      | string | pix_transfer_key da transação de devolução, caso seja fechada com aceite.                 | -                                                                                  |
| `refunded_amount`*          | float  | Valor devolvido na transação de devolução.                                                | -                                                                                  |
| `refund_events`*            | object | Objeto eventos de pedido de devolução.                                                    | **[Objeto refund_events](#objetos-refund_events)**                                 |
| `refund_request_direction`* | string | Direção da solicitação de devolução.                                                      | **[Enumeradores refund_request_direction](#enumeradores-refund_request_direction)** |
| `created_at` *              | string | Data de criação da Solicitação de Devolução                                               | 24                                                                                 |

### Enumeradores refund_request_status
| Campo       | Descrição                                                                    |
| ----------- | ---------------------------------------------------------------------------- |
| `open`      | Solicitação de Devolução foi <strong>criada</strong> e está aberta no BACEN. |
| `cancelled` | Solicitação de Devolução está <strong>cancelada</strong> no BACEN            |
| `closed`    | Solicitação de Devolução está <strong>fechada</strong> no BACEN              |

### Enumeradores refund_request_type
| Campo              | Descrição                                              |
| ------------------ | ------------------------------------------------------ |
| `fraud`            | Solicitação de Devolução originada de uma fraude.      |
| `operational_flaw` | Solicitação de Devolução originada de um erro interno. |

### Enumeradores analysis_result
| Campo                | Descrição                                         |
| -------------------- | ------------------------------------------------- |
| `totally_accepted`   | Solicitação de Devolução foi totalmente aceita.   |
| `partially_accepted` | Solicitação de Devolução foi parcialmente aceita; |
| `rejected`           | Solicitação de Devolução foi rejeitada.           |

### Enumeradores reject_reason
| Campo             | Descrição                                                                  |
| ----------------- | -------------------------------------------------------------------------- |
| `no_balance`      | Conta não possui saldo para realizar a devolução.                          |
| `account_closure` | Conta se encontra fechada e, portanto, não é possível realizar a devolução |
| `other`           | Outro motivo                                                               |

### Enumeradores refund_request_direction
| Campo      | Descrição                                         |
| ---------- | ------------------------------------------------- |
| `outgoing` | Participante é originador do pedido de devolução. |
| `incoming` | Participante é o alvo do pedido de devolução      |

### Objetos refund_events
| Campo           | Descrição                                                                                                             |
| --------------- | --------------------------------------------------------------------------------------------------------------------- |
| `event_type`    | Tipo do evento de mudança da devolução. **[Enumeradores refund_request_status](#enumeradores-refund_request_status)** |
| `event_details` | Detalhes acerca do evento.                                                                                            |
| `created_at`    | Data de criação do evento.                                                                                            |

---

# Introdução ao fluxo de Devolução

URL: /documentation/pix_indireto/devolucao/maquina_estados

## Introdução

O Banco Central do Brasil permite que, caso o Participante Indireto queira solicitar de volta para a conta um valor debitado em uma transação feita via PIX, este pode abrir uma Solicitação de Devolução.

:::info 

Ressalta-se que apenas o Participante debitado pode abrir uma Solicitação de Devolução. Formalmente, o Participante o qual abre uma Solicitação de Devolução é chamado de requesting_participant .

:::

| Enumerador | Tradução | Descrição|
|---|---|---|
|  open  | aberto | Após o processamento da <strong>criação</strong> da Solicitação de Devolução, o mesmo fica aberto no BACEN.  
|  cancelled  | cancelado | O cancelamento da Solicitação de Devolução foi processado pela QI Tech e está <strong>cancelado</strong> no BACEN.
|  closed  | fechado | O fechamento da Solicitação de Devolução foi processado pela QI Tech e está <strong>fechado</strong> no BACEN.

## Controle da Máquina de Estados

Mesmo o fluxo sendo síncrono , é necesário que se conheça os possíveis status os quais uma Solicitação de Devolução pode ter. Abaixo, está descrito o que o Participante Indireto pode esperar após abrir, cancelar, completar e receber uma Solicitação de Devolução.

### Participante Abre Solicitação de Devolução

O Participante Indireto pode solicitar a abertura de devolução de duas maneiras:

Por erro operacional (operational_flaw).
Por um relato de infração já fechado e aceito (refund_request)

Após a abertura, o status da devolução será de open

### Participante Cancela Solicitação de Devolução

Após o Participante ter aberto uma Solicitação de Devolução, é possível realizar o cancelamento desta, caso seja solicitado.

O Participante Indireto receberá uma resposta com o status de cancelled .

### Participante Recebe Solicitação de Devolução

Visto que outros Participantes podem abrir uma Solicitação de Devolução, é necessário que a outra ponta envolvida no fluxo possa saber recebê-lo, a fim de fechá-lo .

Diferentemente do Relato de Infração, o qual há um status intermediário de acknowledged , o Participante Indireto receberá, via webhook , uma requisição informando que há uma Solicitação de Devolução com o status open .

A diferença é de que, para esta requisição, o Participante Contestado é o Participante Indireto.

### Participante Fecha Solicitação de Devolução

Após a QI Tech, via webhook , informar o Participante Indireto de que há uma Solicitação de Devolução disponível, este pode fechar o relato.

Quando o Participante Indireto realizar este fluxo, enviará a requisição de fechamento para a QI Tech e receberá um status de closed

---

# Simulação de Cenários

URL: /documentation/pix_indireto/devolucao/simulacao_de_cenarios

Passo a passo para simular a efetivação de ações feitas por agentes externos. Essas simulações incluem recebimentos e atualizações de solicitações de devolução.

:::info Informação
Não há payload de retorno (response body) nessas requisições, somente response status de 201.
:::

## 1 - Simulação de recebimento de solicitação de devolução

Simula o recebimento de uma solicitação de devolução aberta por outra instituição.

:::info IMPORTANTE
É essencial possuir uma pix_transfer_key válida para mandar a request, não importando necessariamente as informações da outra parte da transferencia, visto que todas as informações do segundo participante serão substituidas no processo de mock.
:::

### Request

ENDPOINT /mock/pix/refund_request
MÉTODO POST

Request Body

:::info IMPORTANTE
Caso o tipo de devolução seja de FRAUD, é necessário haver um relato de infração fechado para a mesma pix_transfer_key.
:::

```json
{
    "pix_transfer_key": "d5856a5f-378f-43ed-818b-df33b9fae703",
    "refund_request_type": "fraud",
    "refund_request_details": "Foi identificada uma fraude na transação.",
    "refund_request_status": "open",
}
```

### Objeto Request Body

| Campo                      | Tipo   | Descrição                                                          | Máx. Caract.                                                              |
| -------------------------- | ------ | ------------------------------------------------------------------ | ------------------------------------------------------------------------- |
| `pix_transfer_key` *      | string | Chave de identificação da transferência Pix no sistema QI (UUIDv4) | 36                                                                        |
| `refund_request_type` *   | enum   | Tipo de solicitação de devolução.                                  | **[Enumeradores refund_request_type](#enumeradores-refund_request_type)** |
| `refund_request_status` * | string | Status inicial da solicitação de devolução. "open"                 | 36                                                                        |
| `refund_request_details`  | string | Detalhes do relato da solicitação de devolução                     | 2000                                                                      |

### Enumeradores refund_request_type
| Campo              | Tipo   | Descrição                                              | Caracteres |
| ------------------ | ------ | ------------------------------------------------------ | ---------- |
| `fraud`            | string | Solicitação de Devolução originada de uma fraude.      | 5          |
| `operational_flaw` | string | Solicitação de Devolução originada de um erro interno. | 16         |

## 2 - Simulação de atualização de uma solicitação de devolução

Simula a atualização de status de uma solicitação de devolução aberta pelo participante indireto.

As opções de simulação para atualização de uma solicitação de devolução são:

1 - Cancelamento: Simula o cancelamento (cancel), feito por um participante "alvo", sobre uma solicitação de devolução aberta por ele mesmo previamente.

2 - Fechamento: Simula o fechamento (close), feito por um participante "alvo", sobre uma solicitação de devolução aberta pelo participante indireto. É importante que esse relato ja tenha sido reconhecido aberto.

### Request

ENDPOINT /mock/pix/refund_request
MÉTODO PATCH

Request Body - Cancelamento

:::info IMPORTANTE
A Solicitação de devolução identificada pela refund_request_key ja deve ter sido previamente criada na simulação de criação de solicitação de devolução.
:::

```json
{
    "refund_request_status": "cancelled",
    "refund_request_key": "c3e5664f-04bb-4625-9ef3-c8555d210c71"
}
```

Request Body - Fechamento com Aceite Total

:::info IMPORTANTE
A Solicitação de devolução identificada pela refund_request_key ja deve ter sido previamente criado pelo participante indireto.
:::
:::info IMPORTANTE
A refund transfer key deve ter sido préviamente criada pelo mock de recebimento de devolução com valor IGUAL à transação original.
:::

```json
{
    "refund_request_key": "42035bdd-0551-41c5-aaae-cb27d108160a",
    "refund_request_status": "closed",
    "analysis_result": "totally_accepted",
    "analysis_details": "Teste",
    "refund_transfer_key": "6f421127-892f-415f-8efc-4e20cf5d622d"
}
```

Request Body - Fechamento com Aceite Parcial

:::info IMPORTANTE
A Solicitação de devolução identificada pela refund_request_key ja deve ter sido previamente criado pelo participante indireto. Além disso, o valor devolvido não deve ser igual ou superior ao valor total da transação original.
:::
:::info IMPORTANTE
A refund transfer key deve ter sido préviamente criada pelo mock de recebimento de devolução com valor MENOR à transação original.
:::

```json
{
    "refund_request_key": "42035bdd-0551-41c5-aaae-cb27d108160a",
    "refund_request_status": "closed",
    "analysis_result": "partially_accepted",
    "analysis_details": "Teste",
    "refund_transfer_key": "6f421127-892f-415f-8efc-4e20cf5d622d"
}
```

Request Body - Fechamento com Recusa

:::info IMPORTANTE
A Solicitação de devolução identificada pela refund_request_key ja deve ter sido previamente criado pelo participante indireto.
:::

```json
{
    "refund_request_key": "47633091-7d44-4d10-9d00-1f937104e537",
    "refund_request_status": "closed",
    "analysis_result": "rejected",
    "analysis_details": "Teste",
    "reject_reason": "no_balance"
}
```

### Objeto Request Body

| Campo                      | Tipo   | Descrição                                                                                                                   | Máx. Caract. |
| -------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------- | ------------ |
| `refund_request_status` * | string | Status inicial da solicitação de devolução. "cancelled", "closed"                                                           | 36           |
| `refund_request_key` *    | string | Chave única da solicitação de devolução                                                                                     | 36           |
| `analysis_result` *       | string | Resultado da análise da solicitação de devolução. "totally_accepted" ou "partially_accepted", "rejected".                   | 36           |
| `analysis_details`        | string | Detalhes da análise da solicitação de devolução                                                                             | 2000         |
| `refund_transfer_key`      | float  | Identificador da transferência de devolução, obrigatório no caso de aceite                                                  | 20           |
| `reject_reason`            | string | Motivo da recusa de uma devolução (somente em analysis_result igual a rejected). "no_balance", "account_closure" ou "other" | 15           |

---

# Receber Solicitação de Devolução

URL: /documentation/pix_indireto/devolucao/webhooks_devolucao

:::danger Atenção!
Os webhooks da QI Tech não devem ser mapeadas de forma restrita. 
Campos adicionais podem ser incluídos aos payloads dos webhooks retornados em nossas APIs.
:::

:::info Reenvio de Webhooks
Você pode consultar e reenviar webhooks seguindo as instruções detalhadas na documentação: [Reenvio de Webhooks](/documentation/notificacoes/reenvio_de_notificacoes).
:::

Visto que um outro Participante pode abrir uma Solicitação de Devoluçao, tendo como alvo o Participante Indireto, é necessário que a QI Tech notifique o Participante Indireto acerca da Solicitação de Devolução aberta por outro Participante.

A QI Tech notificará o Participante Indireto via webhook .

:::danger IMPORTANTE
O Banco Central do Brasil define que, dentro de um período de 1 dia do recebimento da Solicitação de Devolução pelo Participante Indireto, a Devolução precisa ser fechada .

Caso haja atraso por parte do Participante Indireto, a QI Tech irá fechar a Solicitação de Devolução, com o status de totally_accepted , a fim de que a instituição não seja penalizada pelo Banco Central do Brasil.
:::

## Webhook recebimento de Devolução (Falha Operacional)
**Request Body**

```json
{
  "requesting_participant": "99999999",
  "requested_amount": 10,
  "refund_request_key": "2e42116f-4bdb-4f07-931f-c4dc7a78ed99",
  "infraction_report_key": null,
  "end_to_end_id": "E60701190202406281828JCBxFsqssCf",
  "contested_participant": "73856642",
  "refund_request_details": "Foi identificada uma fraude na transação.",
  "pix_transfer_key": "d5856a5f-378f-43ed-818b-df33b9fae703",
  "refund_request_type": "operational_flaw",
  "refund_request_status": "open",
  "refunded_amount": 0.00,
  "analysis_result": null,
  "analysis_details": null,
  "refund_transfer_key": null,
  "reject_reason": null,
  "refund_request_direction": "incoming",
  "created_at": "2024-07-01T15:46:18Z"
}
```

## Webhook recebimento de Devolução (Fraude)
**Request Body**

```json
{
  "requesting_participant": "99999999",
  "requested_amount": 10,
  "refund_request_key": "2e42116f-4bdb-4f07-931f-c4dc7a78ed99",
  "infraction_report_key": "9b36f112-ee56-4b26-9ba5-fde7b68b2d3b",
  "end_to_end_id": "E60701190202406281828JCBxFsqssCf",
  "contested_participant": "73856642",
  "refund_request_details": "Foi identificada uma fraude na transação.",
  "pix_transfer_key": "d5856a5f-378f-43ed-818b-df33b9fae703",
  "refund_request_type": "fraud",
  "refund_request_status": "open",
  "refunded_amount": 0.00,
  "analysis_result": null,
  "analysis_details": null,
  "refund_transfer_key": null,
  "reject_reason": null,
  "refund_request_direction": "incoming",
  "created_at": "2024-07-01T15:46:18Z"
}
```

---

# Consulta de uma entidade Alias

URL: /documentation/pix_indireto/gerenciamento_de_alias/consultar_alias

Consulta de uma entidade Alias, ja cadastrada para uma conta existente.

## Request

ENDPOINT /account/ ACCOUNT_KEY /alias/ ALIAS_KEY
MÉTODO GET

### Path Params

| Campo         | Tipo   | Descrição             | Caracteres |
|---------------|--------|-----------------------|------------|
| `account_key` | uuidv4 | Chave única da conta. | 36         |
| `alias_key`   | uuidv4 | Chave única do alias. | 36         |

## Response

STATUS 200

**Response Body**

```json
{
  "alias_key": "c446e513-131c-4741-bbc2-b7e6b6282899",
  "ispb": "12345678",
  "account_branch": "0001",
  "account_number": "4968688",
  "account_digit": "3",
  "account_type": "checking_account",
  "account_created_at": "2021-10-22T20:30:23.459Z",
  "owner_person_type": "legal",
  "owner_document_number": "89248771384257",
  "owner_name": " Vinicius De Oliveira",
  "owner_trading_name": "Pix Ltda",
  "created_at": "2021-10-22T20:30:23.459Z"
}
```

### Response Body Params

| Campo                   | Tipo       | Descrição                                          | Max. Caracteres                                         |
|-------------------------|------------|----------------------------------------------------|---------------------------------------------------------|
| `alias_key`             | string     | Chave única do alias                               | 36                                                      |
| `ispb`                  | string     | Ispb da instituição financeira vinculada ao Alias  | 36                                                      |
| `account_branch`        | string     | Agência, sem o dígito verificador                  | 4                                                       |
| `account_number`        | string     | Número de conta, sem o dígito verificador          | 20                                                      |
| `account_digit`         | string     | Dígito verificador da conta                        | 1                                                       |
| `account_type`          | enumerador | Tipo da conta                                      | **[Enumerador account_type](#enumerador-account_type)** |
| `account_created_at`    | string     | Data de criação da conta                           | 20                                                      |
| `owner_document_number` | string     | Numero de CPF ou CNPJ                              | 14                                                      |
| `owner_name`            | string     | Nome do dono da conta                              | 120                                                     |
| `owner_trading_name`    | string     | Nome fantasia do dono da conta (somente para CNPJ) | 100                                                     |
| `created_at`            | string     | Data de criação da requisição                      | 20                                                      |

### Enumerador account_type

| Enumerador           | Descrição           |
|----------------------|---------------------|
| **checking_account** | Conta Corrente      |
| **salary_account**   | Conta Salário       |
| **saving_account**   | Conta Poupança      |
| **payment_account**  | Conta de Pagamentos |

STATUS 404

Response Body: Not Found

```json

{
  "title": "Not Found", 
  "description": "Account not found for the given key \{account_key\}", 
  "translation": "A account_key \{account_key\} não foi encontrada",
  "extra_fields": {}, 
  "code": "ACC000006"
}
```

Response Body: Not found

```json

{
  "title": "Not found", 
  "description": "Alias \{alias_key\} not found", 
  "translation": "Alias \{alias_key\} n\u00e3o encontrado",
  "extra_fields": {}, 
  "code": "ACC000181"
}
```

---

# Consulta de Alias por Request Control Key

URL: /documentation/pix_indireto/gerenciamento_de_alias/consultar_request_control_key

Retorno da alias_key obtida na criação de um Alias, utilizando a request_control_key originalmente atribuida para ela no
corpo da requisição original.

## Request

ENDPOINT /account/ ACCOUNT_KEY /alias
MÉTODO GET

### Path Params

| Campo         | Tipo   | Descrição             | Caracteres |
|---------------|--------|-----------------------|------------|
| `account_key` | uuidv4 | Chave única da conta. | 36         |

### Query Params

| Campo                   | Tipo   | Descrição                                             | Caracteres |
|-------------------------|--------|-------------------------------------------------------|------------|
| `request_control_key` * | uuidv4 | UUID4 para fins de consulta sobre a requisição feita. | 36         |

## Response

STATUS 200

**Response Body**

```json
{
  "alias_key": "c446e513-131c-4741-bbc2-b7e6b6282899",
  "ispb": "12345678",
  "account_branch": "0001",
  "account_number": "4968688",
  "account_digit": "3",
  "account_type": "checking_account",
  "account_created_at": "2021-10-22T20:30:23.459Z",
  "owner_person_type": "legal",
  "owner_document_number": "89248771384257",
  "owner_name": " Vinicius De Oliveira",
  "owner_trading_name": "Pix Ltda",
  "created_at": "2021-10-22T20:30:23.459Z"
}
```

### Response Body Params

| Campo                   | Tipo       | Descrição                                          | Max. Caracteres                                         |
|-------------------------|------------|----------------------------------------------------|---------------------------------------------------------|
| `alias_key`             | string     | Chave única do alias                               | 36                                                      |
| `ispb`                  | string     | Ispb da instituição financeira vinculada ao Alias  | 36                                                      |
| `account_branch`        | string     | Agência, sem o dígito verificador                  | 4                                                       |
| `account_number`        | string     | Número de conta, sem o dígito verificador          | 20                                                      |
| `account_digit`         | string     | Dígito verificador da conta                        | 1                                                       |
| `account_type`          | enumerador | Tipo da conta                                      | **[Enumerador account_type](#enumerador-account_type)** |
| `account_created_at`    | string     | Data de criação da conta                           | 20                                                      |
| `owner_document_number` | string     | Numero de CPF ou CNPJ                              | 14                                                      |
| `owner_name`            | string     | Nome do dono da conta                              | 120                                                     |
| `owner_trading_name`    | string     | Nome fantasia do dono da conta (somente para CNPJ) | 100                                                     |
| `created_at`            | string     | Data de criação da requisição                      | 20                                                      |

### Enumerador account_type

| Enumerador           | Descrição           |
|----------------------|---------------------|
| **checking_account** | Conta Corrente      |
| **salary_account**   | Conta Salário       |
| **saving_account**   | Conta Poupança      |
| **payment_account**  | Conta de Pagamentos |

STATUS 404

Response Body: Not Found

```json
  {
  "title": "Not Found",
  "description": "Account not found for the given key \{account_key\}",
  "translation": "A account_key \{account_key\} não foi encontrada",
  "extra_fields": {},
  "code": "ACC000006"
}
```

STATUS 404

Response Body: Request Control Key Not found

```json
{
  "title": "Request Control Key Not found",
  "description": "The informed request_control_key \{request_control_key\} has no original registered entry associated",
  "translation": "A request_control_key informada \{request_control_key\} n\u00e3o possui entrada original associada",
  "extra_fields": {},
  "code": "ACC000186"
}
```

---

# Criação de uma entidade Alias

URL: /documentation/pix_indireto/gerenciamento_de_alias/criacao_de_alias

É o Fluxo responsável por criar entidades Alias, atreladas a uma conta jś existente.

## Request

ENDPOINT /account/ ACCOUNT_KEY /alias
MÉTODO POST

**Request Body**

```json
{
    "request_control_key":"5b4259a4-dc4a-489f-a050-3391e13d9850",
    "account_branch": "0001",
    "account_number": "4968698",
    "account_digit": "3",
    "account_type": "checking_account",
    "account_created_at": "2022-09-24T19:46:43.001Z",
    "owner_person_type": "legal",
    "owner_document_number": "89248771384257",
    "owner_name": "Vinicius De Oliveira",
    "owner_trading_name": "Pix Ltda"
}

```

### Path Params

| Campo         | Tipo   | Descrição             | Caracteres |
|---------------|--------|-----------------------|------------|
| `account_key` | uuidv4 | Chave única da conta. | 36         |

### Request Body Params

| Campo                     | Tipo       | Descrição                                                                        | Max. Caracteres                                         |
|---------------------------|------------|----------------------------------------------------------------------------------|---------------------------------------------------------|
| `request_control_key` *   | string     | Chave única de identificação da request utilizada pelo cliente no formato uuidv4 | 36                                                      |
| `account_branch` *        | string     | Agência, sem o dígito verificador                                                | 4                                                       |
| `account_number` *        | string     | Número de conta, sem o dígito verificador                                        | 20                                                      |
| `account_digit` *         | string     | Dígito verificador da conta                                                      | 1                                                       |
| `account_type`*           | enumerador | Tipo da conta                                                                    | **[Enumerador account_type](#enumerador-account_type)** |
| `account_created_at` *    | string     | Data de criação da conta. Ex: "2022-09-24T19:46:43.001Z"                         | 20                                                      |
| `owner_document_number` * | string     | Numero de CPF ou CNPJ                                                            | 11(CPF) ou 14(CNPJ)                                     |
| `owner_person_type` *     | string     | Tipo de dono da conta. Pode ser **legal** ou **natural**                         | 7                                                       |
| `owner_name` *            | string     | Nome do dono da conta                                                            | 120                                                     |
| `owner_trading_name`      | string     | Nome fantasia do dono da conta (opcional, e somente para CNPJ)                   | 100                                                     |

### Enumerador account_type

| Enumerador           | Descrição           |
|----------------------|---------------------|
| **checking_account** | Conta Corrente      |
| **salary_account**   | Conta Salário       |
| **saving_account**   | Conta Poupança      |
| **payment_account**  | Conta de Pagamentos |

## Response

STATUS 201 created

**Response Body**

```json
{
  "alias_key": "e04f496b-47be-4762-a6e2-8f2b05b46780",
  "created_at": "2022-09-24T19:46:43.001Z"
}
```

### Response Body Params

| Campo        | Tipo          | Descrição                        | Max. Caracteres |
|--------------|---------------|----------------------------------|-----------------|
| `alias_key`  | uuidv4        | Chave única do alias             | 36              |
| `created_at` | datetime Zulu | Data de realização da requisição | 20              |

STATUS 404

Response Body: Not Found

```json

  {
    "title": "Not Found", 
  "description": "Account not found for the given key \{account_key\}", 
  "translation": "A account_key \{account_key\} não foi encontrada",
  "extra_fields": {}, 
  "code": "ACC000006"
}
```

STATUS 400

Response Body: Repeted Request Control Key

```json

  {
  "title": "Repeated Request Control Key", 
  "description": "The request_control_key sent \{request_control_key\}, was already been used in other requisition", 
  "translation": "A request_control_key enviada \{request_control_key\}, já foi utilizada em outra requisição",
  "extra_fields": {}, 
  "code": "ACC000179"
}
```

Response Body: Invalid owner trading name

```json

  {
  "title": "Bad Request", 
  "description": "The owner_trading_name can only be sent by a legal person type", 
  "translation": "O owner_trading_name s\u00f3 pode ser utilizado por uma pessoa jur\u00eddica",
  "extra_fields": {}, 
  "code": "ACC000180"
}
```

---

# Deleção de uma entidade Alias

URL: /documentation/pix_indireto/gerenciamento_de_alias/deletar_alias

Deleção de uma entidade Alias, já cadastrada para uma conta account existente.
## Request

ENDPOINT /account/ ACCOUNT_KEY /alias/ ALIAS_KEY
MÉTODO DELETE

### Path Params

| Campo | Tipo | Descrição | Caracteres |
|-------|------|-----------|------------|
| `account_key` | uuidv4 | Chave única da conta. | 36 |
| `alias_key` | uuidv4 | Chave única do alias. | 36 |

## Response

STATUS 200

**Response Body**

```json
{}
```

STATUS 404

Response Body: Not Found

```json

  {
  "data": "{\"title\": \"Not Found\", \"description\": \"Account not found for the given key \{account_key\}\", \"translation\": \"A account_key \{account_key\} não foi encontrada\", \"extra_fields\": {}, \"code\": \"ACC000006\"}",
  "title": "Not Found", 
  "description": "Account not found for the given key \{account_key\}", 
  "translation": "A account_key \{account_key\} não foi encontrada",
  "extra_fields": {}, 
  "code": "ACC000006"
}
```

STATUS 404

Response Body: Not found

```json

  {
  "data": "{\"title\": \"Not found\", \"description\": \"Alias \{alias_key\} not found\", \"translation\": \"Alias \{alias_key\} n\u00e3o encontrado\", \"extra_fields\": {}, \"code\": \"ACC000181\"}",
  "title": "Not found", 
  "description": "Alias \{alias_key\} not found", 
  "translation": "Alias \{alias_key\} n\u00e3o encontrado",
  "extra_fields": {}, 
  "code": "ACC000181"
}
```

STATUS 400

Response Body: Alias Key Dont Match with Account Key

```json

  {
  "data": "{\"title\": \"Alias Key Dont Match with Account Key\", \"description\": \"The alias_key \{alias_key\} Dont Match with the account_key \{account_key\}\", \"translation\": \"AA alias_key \{alias_key\} não combina com a account_key \{account_key\}\", \"extra_fields\": {}, \"code\": \"ACC000181\"}",
  "title": "Alias Key Dont Match with Account Key", 
  "description": "The alias_key \{alias_key\} Dont Match with the account_key \{account_key\}", 
  "translation": "A alias_key \{alias_key\} não combina com a account_key \{account_key\}",
  "extra_fields": {}, 
  "code": "ACC000181"
}
```

---

# Introdução à entidade de Alias

URL: /documentation/pix_indireto/gerenciamento_de_alias/introducao_alias

A fim de manter e alinhar os dados em relação ao cadastro de chave PIX, conforme o Banco Central do Brasil requisita, o Participante Indireto deve registrar um Alias na QI Tech,

Todo Alias está, necessariamente, vinculado a uma conta a qual o Participante Indireto possui na QI Tech.

:::info Informação

Tudo o descrito nesta seção de introdução também está, de forma detalhada como o Participante Indireto deve tratar via API, na seções seguintes.

:::

## O que a entidade Alias representa?

A entidade Alias é uma 'máscara' dos dados da conta o qual o cliente do Participante Indireto possui cadastrado no próprio Participante Indireto. Ressalta-se que a QI Tech fará apenas as verificações de formatação em relação aos dados enviados pelo Participante Indireto a nós.

Por exemplo: validação de CPF, CNPJ, tamanho máximo de caracteres de um nome fantasia, etc.

Os dados os quais a QI Tech pede ao Participante Indireto enviar, em relação à conta de seu cliente, são apenas os necessários para o âmbito das funcionalidades do PIX.

## Alias na prática

Na prática, a entidade de Alias representa o cliente do Participante Indireto.

Um exemplo acerca da necessidade de criação de um Alias seria:
Participante Indireto possui uma conta, de account_key a520b977-d6b2-4f27-bef5-29760ebfd6a7 cadastrada na QI Tech,
Participante Indireto deseja vincular um cliente próprio a esta conta cadastrada na QI Tech,
Participante Indireto envia os dados do cliente (número da conta, agência, nome, nome fantasia, etc) para vincular a esta conta cadastrada na QI Tech,
QITech vincula o cliente do Participante Indireto à conta do Participante Indireto cadastrada.
Participante Indireto recebe uma chave única de identificaçã do Alias cadastrado.

Deste modo, o Participante Indireto pode solicitar a criação de uma chave PIX e a QI Tech conseguirá, efetivamente, comunicar-se com o Banco Central do Brasil com os dados necessários para o cadastro.

##### Representação de uso de Alias com relação de 1:N:
![Uso de Alias com relação de 1:N](/img/diagrams/pix-indireto-gerenciamento-de-alias-introducao-alias-1.svg)

##### Representação de uso de Alias com relação de 1:1:

![Uso de Alias com relação de 1:1](/img/diagrams/pix-indireto-gerenciamento-de-alias-introducao-alias-2.svg)

---

# Listagem de Alias

URL: /documentation/pix_indireto/gerenciamento_de_alias/listagem_de_alias

Listagem dos Alias de uma conta

## Request

ENDPOINT /account/ ACCOUNT_KEY /alias
MÉTODO GET

### Path Params

| Campo         | Tipo   | Descrição             | Caracteres |
|---------------|--------|-----------------------|------------|
| `account_key` | uuidv4 | Chave única da conta. | 36         |

### Query Params

| Campo         | Tipo    | Descrição                               | Max Value |
|---------------|---------|-----------------------------------------|-----------|
| `page_number` | integer | Página atual que está sendo consultada. | -         |
| `page_size`   | integer | Quantidade de resultados por página.    | 100       |

## Response

STATUS 200

**Response Body**

```json
{
  "data": [
    {
      "alias_key": "a446e513-131c-4741-bbc2-b7e6b6282899",
      "ispb": "12345678",
      "account_type": "checking_account",
      "account_branch": "0001",
      "account_number": "4968688",
      "account_digit": "3",
      "account_created_at": "2021-10-22T20:30:23.459Z",
      "owner_person_type": "legal",
      "owner_document_number": "89248771384257",
      "owner_name": " Vinicius De Oliveira",
      "owner_trading_name": "Pix Ltda",
      "created_at": "2021-10-22T20:30:23.459Z"
    },
    {
      "alias_key": "c246a573-131c-4741-bbc2-b7e6b6282424",
      "ispb": "12345678",
      "account_type": "checking_account",
      "account_branch": "0001",
      "account_number": "2987685",
      "account_digit": "1",
      "account_created_at": "2021-10-22T20:30:23.459Z",
      "owner_person_type": "legal",
      "owner_document_number": "23448771384689",
      "owner_name": " Roberto Moraes",
      "owner_trading_name": "Pix Ltda",
      "created_at": "2021-10-22T20:30:23.459Z"
    }
  ],
  "pagination": {
    "current_page": 1,
    "next_page": null,
    "rows_per_page": 10
  }
}
```

### Response Body Params

| Campo                   | Tipo       | Descrição                                          | Max. Caracteres                                         |
|-------------------------|------------|----------------------------------------------------|---------------------------------------------------------|
| `alias_key`             | string     | Chave única do alias                               | 36                                                      |
| `ispb`                  | string     | Ispb da instituição financeira vinculada ao Alias  | 36                                                      |
| `account_branch`        | string     | Agência, sem o dígito verificador                  | 4                                                       |
| `account_number`        | string     | Número de conta, sem o dígito verificador          | 20                                                      |
| `account_digit`         | string     | Dígito verificador da conta                        | 1                                                       |
| `account_type`          | enumerador | Tipo da conta                                      | **[Enumerador account_type](#enumerador-account_type)** |
| `account_created_at`    | string     | Data de criação da conta                           | 20                                                      |
| `owner_document_number` | string     | Numero de CPF ou CNPJ                              | 14                                                      |
| `owner_name`            | string     | Nome do dono da conta                              | 120                                                     |
| `owner_trading_name`    | string     | Nome fantasia do dono da conta (somente para CNPJ) | 100                                                     |
| `created_at`            | string     | Data de criação da requisição                      | 20                                                      |

### Enumerador account_type

| Enumerador           | Descrição           |
|----------------------|---------------------|
| **checking_account** | Conta Corrente      |
| **salary_account**   | Conta Salário       |
| **saving_account**   | Conta Poupança      |
| **payment_account**  | Conta de Pagamentos |

STATUS 404

Response Body: Not Found

```json

  {
  "title": "Not Found", 
  "description": "Account not found for the given key \{account_key\}", 
  "translation": "A account_key \{account_key\} não foi encontrada",
  "extra_fields": {}, 
  "code": "ACC000006"
}
```

STATUS 400

Response Body: Wrong Pagination Query Parameter Set

```json
{
  "title": "Wrong Pagination Query Parameter Set",
  "description": "If page_number was informed, the page_size should also be informed",
  "translation": "Se o page_number foi informado, o page_size deve ser informado tambem",
  "extra_fields": {},
  "code": "ACC000183"
}
```

STATUS 400

Response Body: Wrong Pagination Query Parameter Format

```json
{
  "title": "Wrong Pagination Query Parameter Format",
  "description": "The page_number and page_formar should be formatad as an integer",
  "translation": "O page_number e o page_size devem ter formato de integer",
  "extra_fields": {},
  "code": "ACC000184"
}
```

---

# Introdução

URL: /documentation/pix_indireto/introducao

Na QI Tech, estamos orgulhosos de expandir nossos serviços através do serviço de PIX Indireto. Reconhecemos os desafios que algumas instituições podem enfrentar ao tentar se integrar ao PIX e, por isso, estamos comprometidos em tornar isso uma realidade fácil e acessível para todos.

Como participante direto do PIX, que opera com eficiência e segurança, implementamos uma solução de alta tecnologia que permite a bancos, instituições de pagamento e fintechs de todos os tamanhos se tornarem participantes indiretos, garantindo a todos os benefícios do PIX sem o peso dos custos operários e técnicos.

Nosso serviço de PIX Indireto proporciona uma integração simplificada e uma operação sem complicações, com custos reduzidos e compliance regulatório. Além disso, você não precisará se preocupar com os complexos processos técnicos; cuidaremos de tudo, permitindo que você se concentre no que é mais importante - seus clientes.

Com a QI Tech, você estará equipado para proporcionar aos seus clientes uma experiência de pagamento rápida, segura e disponível 24 horas por dia, 7 dias por semana. Nosso objetivo é facilitar sua transição para o PIX, permitindo que você ofereça o melhor serviço ao cliente.

Nas seções seguintes a esta introdução estão descritas as funcionalidades que um Participante Indireto pode executar, via API, no âmbito do PIX Indireto.

---

# Chaves PIX mockadas em ambiente de sandbox

URL: /documentation/pix_indireto/movimentacoes/chaves_pix_mockadas

## 104 - CAIXA ECONOMICA FEDERAL

| Chave Pix | Tipo | Nome do titular | Documento do titular | Número da conta | Agencia da conta | ISPB |
|---|---|---|---|---|---|---|
| +5568970000000 | phone_number | Vivo Test | 65322181032 | 21837-5 | 4458 | 360305 | 
| d6e2d611-6c68-4f84-9be5-962ad2f2bcb6 | random_key | Vivo Test | 61295118092 | 100091086-1 | 465 | 360305 | 
| 61295118092 | cpf | Vivo Test | 61295118092 | 1300005670-8 | 4289 | 360305 | 
| pix03@pix03.com | email | Vivo Test | 96969879003 | 363214578-8 | 8615 | 360305 | 
| +5568911106520 | phone_number | Vivo Test | 66702118805 | 100071086-1 | 465 | 360305 | 
| 5e6ce02a-e0da-4d56-73b8-84f118b4f371 | random_key | Vivo Test | 52720072800 | 100061086-1 | 465 | 360305 | 
| 52720072800 | cpf | Vivo Test | 52720072800 | 100071076-1 | 465 | 360305 | 
| pix10@pix10.com | email | Vivo Test | 24182533410 | 100071066-1 | 465 | 360305 | 
| pix33@pix33.com | email | Vivo Test | 56151446887 | 96764-6 | 919 | 360305 | 
| 88253032978 | cpf | Vivo Test | 88253032978 | 96764-6 | 919 | 360305 | 

## 341 - ITAÚ UNIBANCO S.A.

| Chave Pix | Tipo | Nome do titular | Documento do titular | Número da conta | Agencia da conta | ISPB |
|---|---|---|---|---|---|---|
| 22156083070 | cpf | Vivo Test | 22156083070 | 19413-2 | 8534 | 60701190 | 
| 96969879003 | cpf | Vivo Test | 96969879003 | 22110-1 | 8615 | 60701190 | 
| 5e6ce06a-e0da-4d56-93b8-84f118b4f371 | random_key | Vivo Test | 43135154025 | 57980-4 | 5067 | 60701190 | 
| pix11@pix11.com | email | Vivo Test | 66702118805 | 86091-8 | 3101 | 60701190 | 
| 24182533410 | cpf | Vivo Test | 24182533410 | 20467-1 | 5807 | 60701190 | 
| pix07@pix07.com | email | Vivo Test | 11646288874 | 33087-6 | 8872 | 60701190 | 

## 237 - BCO BRADESCO S.A.

| Chave Pix | Tipo | Nome do titular | Documento do titular | Número da conta       | Agencia da conta | ISPB |
|---|---|---|----------------------|-----------------------|---|---|
| 65322181032 | cpf | Vivo Test | 65322181032          | 1017372-2             | 1 | 60746948 | 
| b9380607-dac6-4e17-8ca7-eb761e3aa1dd | random_key | José Alves | 24080025327          | 0001000000000022279-9 | 1 | 08744817 | 
| b9380607-dac6-4e17-8ca7-eb761e3aa1dd | random_key | José Alves | 24080025327          | 0003000000000000288-9 | 1 | 08744817 | 
| b9380607-dac6-4e17-8ca7-eb761e3aa1dd | random_key | José Alves | 24080025327          | 0013000000000013609-9 | 1 | 08744817 | 
| b9380607-dac6-4e17-8ca7-eb761e3aa1dd | random_key | José Alves | 24080025327          | 1288000000884535174-9 | 1 | 08744817 | 
| b9380607-dac6-4e17-8ca7-eb761e3aa1dd | random_key | José Alves | 24080025327          | 3701000000593070593-9 | 1 | 08744817 | 
| pix01@pix01.com | email | Vivo Test | 65322181032          | 1017372-2             | 1 | 60746948 | 
| pix01@pix01.com | email | Vivo Test | 65322181032          | 1925255-8             | 3952 | 60746948 | 
| pix12@pix12.com | email | Vivo Test | 11085087824          | 1071659-4             | 427 | 60746948 | 
| 5e6ce08a-e0da-4d56-93b8-84f118b4f371 | random_key | Vivo Test | 66702118805          | 1751795-3             | 6162 | 60746948 | 
| +5568911137576 | phone_number | Vivo Test | 82104056080          | 1587784-7             | 1340 | 60746948 | 

## 33 - BCO SANTANDER (BRASIL) S.A.

| Chave Pix | Tipo | Nome do titular | Documento do titular | Número da conta | Agencia da conta | ISPB |
|---|---|---|---|---|---|---|
| 5e6ce05a-e0da-4d56-93b8-84f118b4f371 | random_key | Vivo Test | 42759960030 | 9206744-2 | 4187 | 90400888 | 
| 34175131205 | cpf | Vivo Test | 34175131205 | 9206744-2 | 4187 | 90400888 | 
| 5e6ce05a-e0da-4d56-53b8-74f118b4f371 | random_key | Vivo Test | 11646288874 | 9206744-2 | 4187 | 90400888 | 
| 82104056080 | cpf | Vivo Test | 82104056080 | 2850903-2 | 214 | 90400888 | 

## 77 - BANCO INTER
ISPB: 416968

| Chave Pix | Tipo | Nome do titular | Documento do titular | Número da conta | Agencia da conta | ISPB |
|---|---|---|---|---|---|---|
| 22156083070 | cpf | Vivo Test | 22156083070 | 4810813-8 | 1 | 416968 | 
| pix13@pix13.com | email | Vivo Test | 43135154025 | 4830813-8 | 1 | 416968 | 
| 66702118805 | cpf | Vivo Test | 66702118805 | 4820813-8 | 1 | 416968 | 
| 5e6ce05a-e0da-4d56-93b7-84f118b4f371 | random_key | Vivo Test | 24182533410 | 4850813-8 | 1 | 416968 | 
| +5568911168384 | phone_number | Vivo Test | 17413005255 | 4850813-8 | 1 | 416968 | 
| pix06@pix06.com | email | Vivo Test | 81035632691 | 4750813-8 | 1 | 416968 | 
| pix31@pix31.com | email | Vivo Test | 55125236780 | 1768538-4 | 2960 | 416968 | 

## 260 - NU PAGAMENTOS - IP

| Chave Pix | Tipo | Nome do titular | Documento do titular | Número da conta | Agencia da conta | ISPB |
|---|---|---|---|---|---|---|
| pix04@pix04.com | email | Vivo Test | 69017362073 | 81648459-8 | 1 | 18236120 | 
| pix09@pix09.com | email | Vivo Test | 34175131205 | 81538459-8 | 1 | 18236120 | 
| 5e6ce01a-e0da-4d56-93b8-44f118b4f371 | random_key | Vivo Test | 17413005255 | 81548459-8 | 1 | 18236120 | 
| +5568911186420 | phone_number | Vivo Test | 81035632691 | 81538459-8 | 1 | 18236120 | 
| pix32@pix32.com | email | Vivo Test | 56151446887 | 293201-6 | 2811 | 18236120 | 

## 336 - BCO C6 S.A.

| Chave Pix | Tipo | Nome do titular | Documento do titular | Número da conta | Agencia da conta | ISPB |
|---|---|---|---|---|---|---|
| dbbf965d-677c-49ff-b9da-5131da1505f3 | random_key | Vivo Test | 65322181032 | 1019902-6 | 1 | 31872495 | 
| 5e6ce07a-e0da-4d56-93b8-84f118b4f371 | random_key | Vivo Test | 11085087824 | 1018902-6 | 1 | 31872495 | 
| 11646288874 | cpf | Vivo Test | 11646288874 | 1017902-6 | 1 | 31872495 | 

## 403 - CORA SCD S.A.

| Chave Pix | Tipo | Nome do titular | Documento do titular | Número da conta | Agencia da conta | ISPB |
|---|---|---|---|---|---|---|
| 39284100000000 | cnpj | Parcela Mais | 39284100000000 | 1708315-8 | 1 | 37880206 | 

## 422 - BCO SAFRA S.A.

| Chave Pix | Tipo | Nome do titular | Documento do titular | Número da conta | Agencia da conta | ISPB |
|---|---|---|---|---|---|---|
| pix02@pix02.com | email | Vivo Test | 69017362073 | 364522-5 | 284 | 58160789 | 
| pix08@pix08.com | email | Vivo Test | 34175131205 | 264522-5 | 284 | 58160789 | 
| +5568911106070 | phone_number | Vivo Test | 11646288874 | 354522-5 | 284 | 58160789 | 
| 53465252110 | cpf | Vivo Test | 53465252110 | 364422-5 | 284 | 58160789 | 
| +5568911122488 | phone_number | Vivo Test | 10632271 | 1558321-5 | 907 | 58160789 | 

## 655 - BCO VOTORANTIM S.A.

| Chave Pix | Tipo | Nome do titular | Documento do titular | Número da conta | Agencia da conta | ISPB |
|---|---|---|---|---|---|---|
| 5301321099 | cpf | Vivo Test | 5301321099 | 622660113-8 | 1111 | 59588111 | 

## DOCK SOLUCOES EM MEIOS DE PAGAMENTO S A

| Chave Pix | Tipo | Nome do titular | Documento do titular | Número da conta | Agencia da conta | ISPB |
|---|---|---|---|---|---|---|
| +5568911165580 | phone_number | Vivo Test | 53465252110 | 622470112-8 | 1111 | 8744817 | 
| 17413005255 | cpf | Vivo Test | 17413005255 | 622450112-8 | 1111 | 8744817 | 
| 81035632691 | cpf | Vivo Test | 81035632691 | 622450113-8 | 1111 | 8744817 | 
| 5e6ce05a-e0da-4d56-93b8-64f118b4f371 | random_key | Vivo Test | 81035632691 | 622650113-8 | 1111 | 8744817 | 

## Empresas com CNPJ Alfanumérico

| Chave Pix | Tipo | Nome do titular | Documento do titular | Número da conta | Agencia da conta | ISPB | Participante |
|---|---|---|---|---|---|---|---|
| HSRMASY3000160 | cnpj | Empresa Alfa Mock 1 | HSRMASY3000160 | 1050001-2 | 1 | 416968 | BANCO INTER |
| 0ZSD0MBG000135 | cnpj | Empresa Alfa Mock 2 | 0ZSD0MBG000135 | 81550001-2 | 1 | 18236120 | NU PAGAMENTOS - IP |
| DDA9RHST000100 | cnpj | Empresa Alfa Mock 3 | DDA9RHST000100 | 1750001-9 | 1 | 37880206 | CORA SCD S.A. |

## COMPANHIA GLOBAL DE SOLUCOES E SERVICOS DE PAGAMENTOS S.A.

| Chave Pix | Tipo | Nome do titular | Documento do titular | Número da conta | Agencia da conta | ISPB |
|---|---|---|---|---|---|---|
| 96755229091 | cpf | Teste sem Compe | 96755229091 | 1444301-8 | 1 | 32024691 |

---

# Consulta de Dados de Chave Pix no Banco Central

URL: /documentation/pix_indireto/movimentacoes/consultar_chave_pix

## Request

ENDPOINT /pix_key/ PIX_KEY
MÉTODO GET

### Request Path Params

| Campo       | Tipo   | Descrição                      | Caracteres |
|-------------|--------|--------------------------------|------------|
| `pix_key` * | string | Chave PIX que será consultada. | 77         |

:::info Tipos de Chave Pix
A “pix_key” pode ser um CPF, CNPJ, E-mail, Celular ou uma Chave Aleatória (UUID), seguindo as seguintes formatações:

**CPF**: Número inteiro com 11 dígitos.

**CNPJ**: Número inteiro com 14 dígitos.

**E-mail**: Texto contendo ao menos um “@”.

**Celular**: Texto contendo os seguintes valores: “+55” + “DDD do celular“ + “Número Inteiro do Celular com no mínimo 8
e no máximo 9 dígitos”. Ex: “+5511987654321“.

**Chave Aleatória**: UUID4.
:::

### Request Query Params

| Campo         | Tipo   | Descrição             | Caracteres |
|---------------|--------|-----------------------|------------|
| `alias_key` * | uuidv4 | Chave única do alias. | 36         |

:::info Utilização de tokens de consulta
Para que o token de consulta de chave pix seja cobrado da pessoa correta, é obrigatório que o `alias_key` seja enviado.
:::

## Response

STATUS 200

Response Body: Chave Ativa

```json
{
  "account_branch": "0001",
  "account_created_at": "2023-09-06T22:03:34.000Z",
  "account_digit": "8",
  "account_number": "2897775",
  "account_type": "checking",
  "bank_code": null,
  "end_to_end_id": "E73856642202309201429bZKfklNlbwu",
  "financial_institution": "BANCO INDIRETO PRUPRU",
  "ispb": "32402502",
  "owner_masked_document_number": "**.458.****/0001-**",
  "owner_name": "Empresa teste 01",
  "owner_person_type": "legal",
  "owner_trading_name": null,
  "pix_key": "0f723f66-b333-4187-be16-97fc37c86052"
}

```

| Campo                          | Tipo   | Descrição                                          | Max. Caracteres |
|--------------------------------|--------|----------------------------------------------------|-----------------|
| `pix_key`                      | string | Chave pix da consulta                              | 4               |
| `account_branch`               | string | Agência, sem o dígito verificador                  | 4               |
| `account_digit`                | string | Dígito verificador da conta                        | 1               |
| `account_number`               | string | Número de conta, sem o dígito verificador          | 20              |
| `account_type`                 | string | Definição do tipo de conta                         | 20              |
| `owner_person_type`            | string | Tipo de dono da contaPode ser "legal" ou "natural" | 7               |
| `owner_masked_document_number` | string | Numero de CPF ou CNPJ                              | 14              |
| `end_to_end_id`                | string | Chave unitária da transação PIX                    | 32              |
| `owner_name`                   | string | Nome do dono da conta                              | 120             |
| `owner_trading_name`           | string | Nome fantasia do dono da conta (somente para CNPJ) | 100             |
| `ispb`                         | string | ISPB do Participate detentor da chave              | 8               |
| `bank_code`                    | string | Código COMPE da instituição financeira             | 3               |
| `financial_institution`        | string | Nome da instituição financeira detentora da chave  | 100             |
| `account_created_at`           | string | Data de criação da conta                           | 20              |

STATUS 4XX

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`               | Descrição (eng)<br/>`Description`                                             | Descrição (ptbr)<br/>`translation`                                               |
|-------------|----------------------|----------------------------------|-------------------------------------------------------------------------------|----------------------------------------------------------------------------------|
| 400         | PIX000086            | Invalid Query Params Combination | Account_key and Alias_key are mutually exclusive query parameters. Choose one | Account_key e Alias_key são parâmetros mutualmente exclusivos. Escolha apenas um |
| 403         | PIX000080            | Not enough permission            | The selected agent is not an Pix Indirect Participant                         | O agente selecionado não é um Participante Indireto do Pix                       |
| 404         | PIX000082            | Alias not found                  | Alias \{alias_key\} not found                                                   | Alias \{alias_key\} não encontrado                                                 |
| 404         | PIX000017            | Pix Key is Unregistered          | Pix key \{pix_key\} is not currently used                                       | A chave pix \{pix_key\} não está sendo utilizada                                   |
| 400         | PIX000081            | Rate Limit Exceeded              | Rate Limit Exceeded                                                           | Limite de requisições excedido                                                   |

---

# Consultar Transação Pix

URL: /documentation/pix_indireto/movimentacoes/consultar_pix

## Request

ENDPOINT /account/ ACCOUNT_KEY /alias/ ALIAS_KEY /pix_transfer/ PIX_TRANSFER_KEY / PIX_TRANSFER_DIRECTION
MÉTODO GET

### Request Path Params

| Campo                      | Tipo   | Descrição                                                                                        |
|----------------------------|--------|--------------------------------------------------------------------------------------------------|
| `pix_transfer_direction` * | string | Filtro para indicar se uma transação é de entrada ou saída. Valores: **incoming** e **outgoing** |
| `account_key` *            | string | Chave única de identificação da conta QI                                                         |
| `alias_key` *              | string | Chave única do Alias                                                                             |
| `pix_transfer_key` *       | string | Chave única de identificação da transferência Pix                                                |

:::caution Atenção
Será apenas permitida a visualização de uma transferência caso o requisitante tenha permissões no alias de saída da
transação. Caso o contrário um erro de não encontrado será retornado.
:::

## Response

STATUS 201

Response Body: Transferência Enviada (outgoing)

```json
{
  "request_control_key": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3",
  "pix_message": "Bom dia",
  "pix_transfer_type": "manual",
  "account_key": "fc6862c4-2b20-4057-8063-b8809866e494",
  "alias_key": "c4332971-7cff-42eb-a117-7e6f0cd74db2",
  "updated_at": "2021-10-22T20:30:23.459Z",
  "created_at": "2021-10-22T20:30:23.459Z",
  "target_account": {
    "account_branch": "0001",
    "account_digit": "3",
    "account_number": "12345678",
    "owner_document_number": "***02502000***",
    "owner_person_type": "legal",
    "owner_name": "Qi Tech",
    "account_type": "checking_account",
    "ispb": "32402502",
    "pix_key": null
  },
  "receiver_conciliation_id": null,
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "end_to_end_id": "E3240250220211022203051750897529",
  "pix_transfer_status": "sent",
  "transfer_amount": 126.97,
  "fee_amount": 0.0,
  "rejection_reason": null,
  "reversals": [
    {
      "end_to_end_id": "D35713491202309182058jlqdBkkHSWU",
      "transfer_amount": 0.01,
      "reversal_reason": "client_request",
      "pix_transfer_status": "received",
      "pix_transfer_key": "423866cd-0f3f-4cdd-904b-0d2e33273afd",
      "request_control_key": "7c5a1425-73eb-420e-b4fb-0ce3386c7d0a",
      "created_at": "2021-10-23T20:30.459Z"
    }
  ]
}

```

Response Body: Transferência Rejeitada (outgoing)

```json
{
  "request_control_key": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3",
  "pix_message": "Bom dia",
  "pix_transfer_type": "manual",
  "account_key": "fc6862c4-2b20-4057-8063-b8809866e494",
  "alias_key": "c4332971-7cff-42eb-a117-7e6f0cd74db2",
  "updated_at": "2021-10-22T20:30:23.459Z",
  "created_at": "2021-10-22T20:30:23.459Z",
  "target_account": {
    "account_branch": "0001",
    "account_digit": "3",
    "account_number": "12345678",
    "owner_document_number": "***02502000***",
    "owner_person_type": "legal",
    "owner_name": "Qi Tech",
    "account_type": "checking_account",
    "ispb": "32402502",
    "pix_key": null
  },
  "receiver_conciliation_id": null,
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "end_to_end_id": "E3240250220211022203051750897529",
  "pix_transfer_status": "rejected",
  "transfer_amount": 126.97,
  "fee_amount": 0.0,
  "error_code": "PXT000132",
  "error_description": "Target account number is invalid.",
  "error_translation": "Número da conta de destino é inexistente ou inválido.",
  "reversals": []
}

```

Response Body: Devolução Enviada (outgoing)

```json
{
  "request_control_key": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3",
  "pix_message": "Bom dia",
  "pix_transfer_type": "reversal",
  "account_key": "fc6862c4-2b20-4057-8063-b8809866e494",
  "alias_key": "c4332971-7cff-42eb-a117-7e6f0cd74db2",
  "updated_at": "2021-10-22T20:30:23.459Z",
  "created_at": "2021-10-22T20:30:23.459Z",
  "target_account": {
    "account_branch": "0001",
    "account_digit": "3",
    "account_number": "12345678",
    "owner_document_number": "***02502000***",
    "owner_person_type": "legal",
    "owner_name": "Qi Tech",
    "account_type": "checking_account",
    "ispb": "32402502",
    "pix_key": null
  },
  "receiver_conciliation_id": null,
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "end_to_end_id": "E3240250220211022203051750897529",
  "pix_transfer_status": "sent",
  "transfer_amount": 126.97,
  "fee_amount": 0.0,
  "rejection_reason": null,
  "reversals": [],
  "original_incoming_pix_transfer": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3"
}

```

Response Body: Transferência Recebida (incoming)

```json
{
  "request_control_key": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3",
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "account_key": "fc6862c4-2b20-4057-8063-b8809866e494",
  "alias_key": "c4332971-7cff-42eb-a117-7e6f0cd74db2",
  "end_to_end_id": "E18236120202308111235s14fddf2801",
  "pix_transfer_status": "received",
  "receiver_conciliation_id": "745c28c780bc4822bbade86dd875d10b",
  "transfer_amount": 126.97,
  "fee_amount": 0.0,
  "source_account": {
    "account_branch": "0001",
    "account_digit": "3",
    "account_number": "12345678",
    "owner_document_number": "***02502000***",
    "owner_person_type": "legal",
    "owner_name": "Qi Tech",
    "account_type": "checking_account",
    "ispb": "32402502"
  },
  "pix_transfer_type": "dynamic_qr_code",
  "reversals": []
}
```

Response Body: Devolução Recebida (incoming)

```json
{
  "request_control_key": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3",
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "account_key": "fc6862c4-2b20-4057-8063-b8809866e494",
  "alias_key": "c4332971-7cff-42eb-a117-7e6f0cd74db2",
  "end_to_end_id": "E18236120202308111235s14fddf2801",
  "pix_transfer_status": "received",
  "receiver_conciliation_id": "745c28c780bc4822bbade86dd875d10b",
  "transfer_amount": 126.97,
  "fee_amount": 0.0,
  "source_account": {
    "account_branch": "0001",
    "account_digit": "3",
    "account_number": "12345678",
    "owner_document_number": "***02502000***",
    "owner_person_type": "legal",
    "owner_name": "Qi Tech",
    "account_type": "checking_account",
    "ispb": "32402502"
  },
  "pix_transfer_type": "reversal",
  "reversals": [],
  "original_outgoing_pix_transfer": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3"
}
```

Response Body: Transferência Rejeitada (incoming)

```json
{
  "request_control_key": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3",
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "account_key": "fc6862c4-2b20-4057-8063-b8809866e494",
  "alias_key": "c4332971-7cff-42eb-a117-7e6f0cd74db2",
  "end_to_end_id": "E18236120202308111235s14fddf2801",
  "pix_transfer_status": "rejected",
  "receiver_conciliation_id": "745c28c780bc4822bbade86dd875d10b",
  "transfer_amount": 126.97,
  "fee_amount": 0.0,
  "source_account": {
    "account_branch": "0001",
    "account_digit": "3",
    "account_number": "12345678",
    "owner_document_number": "***02502000***",
    "owner_person_type": "legal",
    "owner_name": "Qi Tech",
    "account_type": "checking_account",
    "ispb": "32402502"
  },
  "pix_transfer_type": "dynamic_qr_code",
  "reversals": []
}
```

STATUS 4XX

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                          | Descrição (eng)<br/>`Description`                 | Descrição (ptbr)<br/>`translation`                                          |
|-------------|----------------------|---------------------------------------------|---------------------------------------------------|-----------------------------------------------------------------------------|
| 400         | PXT000075            | Pix Transfer Key or End To End Not Provided | No pix transfer key or end to end id provided.    | Não foram fornecidos uma pix transfer key ou end to end id.                 |
| 404         | PXT000023            | Outgoing PIX Transfer Not Found             | Pix transfer key \{pix_transfer_key\} was not found | Transferência PIX de saída com chave \{pix_transfer_key\} não foi encontrada. |
| 403         | PIT000001            | User is not allowed to do this transaction  | User is not allowed to do this transaction        | Usuário não tem autorização para fazer essa transação                       |

---

# Efetuar devolução de um Pix

URL: /documentation/pix_indireto/movimentacoes/devolucao_pix

A devolução de um Pix pode ser efetuada em até 90 dias a partir de seu recebimento.

## Request

ENDPOINT /account/ ACCOUNT_KEY /alias/ ALIAS_KEY /pix_transfer/ PIX_TRANSFER_KEY /reversal
MÉTODO POST

### Request Path Params

| Campo              | Tipo   | Descrição                                                          | Caracteres |
|--------------------|--------|--------------------------------------------------------------------|------------|
| `account_key`      | string | Chave única da conta (UUIDv4)                                      | 36         |
| `alias_key`        | string | Chave única do alias (UUIDv4)                                      | 36         |
| `pix_transfer_key` | string | chave de identificação da transferência Pix no sistema QI (UUIDv4) | 36         |

Request Body

```json
{
  "request_control_key": "303393bf-8f2e-4ff0-b326-ee7ad612e8ca",
  "reversal_amount": 147.00,
  "reversal_reason": "client_request",
  "reversal_message": "Mensagem Pix da Devolução"
}
```

### Request Body

| Campo                  | Tipo   | Descrição                                 | Caracteres                                                    |
|------------------------|--------|-------------------------------------------|---------------------------------------------------------------|
| `request_control_key`* | string | Chave de unicidade da requisição (UUIDv4) | 36                                                            |
| `reversal_amount`*     | number | Valor da devolução                        | 11                                                            |
| `reversal_reason`*     | string | Motivo da devolução                       | **[Enumerador reversal_reason](#enumerador-reversal_reason)** |
| `reversal_message`     | string | Mensagem da devolução                     | 140                                                           |

### Enumerador reversal_reason

| Enumerador         | Descrição                                    |
|--------------------|----------------------------------------------|
| **client_request** | Caso tenha sido requerido pelo dono da conta |
| **reconciliation** | Para reconciliação devido a erro operacional |

## Response

### Response Body

| Campo                 | Tipo   | Descrição                                                                                   | Caracteres |
|-----------------------|--------|---------------------------------------------------------------------------------------------|------------|
| `reversal_status`     | string | Enumerador de status da transação de devolução. Pode ser 'pending', 'sent' e 'rejected'     | 36         |
| `transfer_amount`     | number | Valor da transferência de devolução                                                         | 11         |
| `pix_transfer_key`    | string | Chave da transação pix executada na devolução (UUIDv4)                                      | 36         |
| `end_to_end_id`       | string | Chave de idempotência de uma transação Pix dentro do SPI (Sistema de Pagamento Instantâneo) | 32         |
| `request_control_key` | string | Chave única de identificação da request utilizada pelo cliente (UUIDv4)                     | 36         |
| `created_at`          | string | Data e hora da devolução                                                                    | ---        |

STATUS 201 created

Response Body: Reversão Enviada

```json
{
  "reversal_status": "sent",
  "transfer_amount": 147.00,
  "pix_transfer_key": "cdcf0d25-08a1-46e3-902a-6d7ca75e6c48",
  "end_to_end_id": "E32402502202407112211Id9JbxoaiTf",
  "request_control_key": "7c5a1425-73eb-420e-b4fb-0ce3386c7d0c",
  "created_at": "2021-10-22T20:30:23.459Z"
}
```

STATUS 202

:::info Informação

Caso seja retornado uma `pix_transfer_status` no estado de **pending**, a solicitação de Pix não deve ser retentada.
Esta transferência será reprocessada. É necessário verificar o status da transferência por meio da consulta de
transferência pix.

:::

Response Body: Reversão Pendente

```json
{
  "reversal_status": "pending",
  "transfer_amount": 147.00,
  "pix_transfer_key": "cdcf0d25-08a1-46e3-902a-6d7ca75e6c48",
  "end_to_end_id": "E32402502202407112211Id9JbxoaiTf",
  "request_control_key": "7c5a1425-73eb-420e-b4fb-0ce3386c7d0c",
  "created_at": "2021-10-22T20:30:23.459Z"
}
```

STATUS 4XX

Response Body: Reversão Rejeitada

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {
    "pix_transfer_data": {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "end_to_end_id": "E32402502202407112211Id9JbxoaiTf",
      "pix_transfer_status": "rejected",
      "created_at": "2021-10-22T20:30:23.459Z"
    }
  }
}
```

STATUS 400

:::info Informação

Além dos erros discriminados abaixo, a devolução pix pode receber como erro os demais estabelecidos
em [Transação Pix](./transacao/transacao_pix_manual_sync)

:::

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                   | Descrição (eng)<br/>`Description`                                      | Descrição (ptbr)<br/>`translation`                                                        |
|-------------|----------------------|--------------------------------------|------------------------------------------------------------------------|-------------------------------------------------------------------------------------------|
| 400         | QIT000001            | Bad Request                          | Schema Error                                                           | Erro de Schema                                                                            |
| 404         | PXT000018            | Reversal Original Transfer not Found | Reversal original pix transfer not found.                              | Transferência original da devolução não foi encontrada.                                   |
| 400         | PXT000017            | Reversal Too Great                   | Reversal transfers sum amount surpasses that of original pix transfer. | A soma das transferências de devolução ultrapassam o valor da transferência pix original. |
| 400         | PXT000015            | Reversal date expired                | Reversal original transaction is older than 90 days                    | A data de criação da transação original é mais antiga que 90 dias                         |
| 400         | PXT0000127           | Invalid Reversal Reason              | Reversal reason \{reversal_reason\} is not valid                       | Razão de reversão \{reversal_reason\} não é válida                                        |

---

# Introdução à movimentações no âmbito do PIX

URL: /documentation/pix_indireto/movimentacoes/introducao_movimentacoes

O cliente do Participante Indireto (Alias) pode solicitar diversas funcionalidades em relação à transações no âmbito do
PIX. Dentre elas, estão:

Transação PIX manual
Transação PIX por chave
Transação PIX QRCode
Devolução de um PIX

### Tipos de transferência Pix (pix_transfer_type)

| Enumerador          | Descrição                                                                                                                                                                                                                 |
|---------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **manual**          | Pix utilizando os dados da conta destino. Obrigatório enviar `target_account`                                                                                                                                             |
| **key**             | Pix utilizando uma chave pix. Obrigatório enviar `target_pix_key`. Recomendado enviar `end_to_end_id` da [consulta de chave](/documentation/pix_indireto/movimentacoes/consultar_chave_pix) pix caso tenha sido realizada |
| **static_qr_code**  | Pix utilizando um QR code estático. Obrigatório enviar o `end_to_end_id` retornado na [decodificação do QR code](/documentation/pix/decodificar_qr_code)                                                                  |
| **dynamic_qr_code** | Pix utilizando um QR code dinâmico. Obrigatório enviar o `end_to_end_id` retornado na [decodificação do QR code](/documentation/pix/decodificar_qr_code)                                                                  |
| **reversal**        | Devolução de um Pix                                                                                                                                                                                                       |

Dentre estas funcionalidades, há o tipo de 'sincronicidade' de transação que um Participante Indireto pode optar por
fazer, de acordo com suas necessidades.

:::info Informação

Tudo o descrito nesta seção de introdução também está, de forma detalhada como o Participante Indireto deve tratar via
API, na seções seguintes.

:::

## End to end ID

Toda transação pix possui um identificador único no banco central. End to End ID é o identificador fim-a-fim de uma
transferência pix. É utilizado para controle de rate-limiting no Banco Central.

![Fluxo End to End ID na consulta de chave Pix](/img/diagrams/pix-indireto-movimentacoes-introducao-movimentacoes.svg)

Cada cadastro de pessoa física ou jurídica possui um bucket para com o Banco Central. As requisições de consulta de
chave pix, consomem tokens desse bucket, que são recuperadas ao efetuar uma transação pix vinculada a uma consulta. O
vinculo entre uma consulta de chave pix e uma transação se dá por meio do End to End ID.

## Sincronicidade de uma movimentação

O Participante Indireto pode optar por realizar uma transação PIX de forma síncrona ou assíncrona. Em ambos os modos,
tem-se que a movimentação PIX será executada dentro do tempo estabelecido pelo Banco Central do Brasil.

:::info Informação

Nossa equipe configurará a o regime de sincronicidade a ser utilizado conforme acordado com o cliente.

:::

:::info Informação

Os endpoints, métodos, payloads e demais componentes da requisição são idênticos para o regime síncrono e assíncrono. A
diferença seria apenas que para o regime assíncrono, a resposta será sempre uma `pix_transfer` com status **pending**
caso tenha sido aprovada nas validações iniciais. Em seguida um webhook será enviado informando o status final da
transação (**sent** ou **rejected** ).

:::

## Retentativa de movimentações

Devido aos possíveis atrasos no sistema de mensageria no Banco Central do Brasil, em relação às movimentações PIX, a
QITech possui um mecanismo de retentativa das movimentações PIX, tanto para o modelo síncrono quanto assíncrono.

Caso este cenário aconteça, o Participante Indireto receberá um status HTTP 202, indicando que a transação foi enviada à
QITech e está pendente de confirmação por parte do Banco Central do Brasil. Assim que esta for retentada, o Participante
Indireto será informado, via webhook acerca da efetivação da transação.

---

# Simulação de cenários

URL: /documentation/pix_indireto/movimentacoes/simulacao

Passo a passo para simular a efetivação de ações feitas por agentes externos. Essas simulações inclúi transações de
entrada e devolução .

:::info Informação
Não há payload de retorno (response body) nessas requisições.
:::

## 1 - Simulação de entrada de PIX

### Request

ENDPOINT /mock/pix_transfer/incoming_pix_transfer
MÉTODO POST

Request Body

```json
{
  "target_account_key": "fc6862c4-2b20-4057-8063-b8809866e494",
  "target_alias_key": "c4332971-7cff-42eb-a117-7e6f0cd74db2",
  "amount": 100.01
}

```

### Objeto Request Body

| Campo                   | Tipo   | Descrição                       | Máx. Caract. |
|-------------------------|--------|---------------------------------|--------------|
| **target_account_key*** | string | Chave única da conta de destino | 36           |
| **target_alias_key**    | string | Chave única do alias de destino | 36           |
| **amount***             | number | Valor da transação              | 6            |                        |

## 2 - Simulação de pagamento de PIX QR Code

### Request

ENDPOINT /mock/pix_transfer/incoming_pix_qrcode
MÉTODO POST

Request Body

```json
{
  "target_alias_key": "\<Chave única do alias de destino\>",
  "amount": "\<Valor da transação\>",
  "receiver_conciliation_id": "\<id do receiver conciliation do qr code\>"
}

```

### Objeto Request Body

| Campo                         | Tipo    | Descrição                                 | Máx. Caract. | Exemplo                                | Observação              |
|-------------------------------|---------|-------------------------------------------|--------------|----------------------------------------|-------------------------|
| **target_alias_key***         | string  | Chave única do alias de destino           | 36           | "41112f46-0034-4007-85687-5e592173db2" |                         |
| **amount***                   | decimal | Valor da transação                        | 6            | 1000.00                                | Valor máximo de 100.000 |                        |
| **receiver_conciliation_id*** | string  | id de conciliação do recebedor do qr code | 36           | 1000                                   |                         |                        |

## 3 - Simulação de devolução de PIX

Simula a devolução de uma transferência de saída Pix. Para isso o valor total das devoluções não deve exceder o valor da
transferência original. Para identificar a transação alvo, envie o `end_to_end_id` da transferência original.

### Request

ENDPOINT /mock/pix_transfer/reversal
MÉTODO POST

Request Body

```json
{
  "end_to_end_id": "E35713491202309182110sSCNh25ooX2",
  "amount": 100.00
}

```

### Objeto Request Body

| Campo              | Tipo   | Descrição                                   | Máx. Caract. |
|--------------------|--------|---------------------------------------------|--------------|
| **end_to_end_id*** | string | Chave unitária da transação a ser devolvida | 32           |
| **amount***        | number | Valor a ser devolvido                       | 6            |                     |

## 4 - Simulação de transação em estado pendente de confirmação

Transações pix podem entrar em status **pending_confirmation** quando ocorre alguma demora no retorno da resposta da
transação Pix pelo Banco Central. Para simular este cenário, realize uma transação com a chave
pix `"target_pix_key": "0476f803-0129-430a-a66c-d2f0d7cf4aaa"` ou, para transferências pix do tipo **manual**,
utilize `"owner_document_number": "35586870002"` como número de documento do proprietário da conta de destino.

Para que o status da transação seja atualizado, realize a requisição abaixo com `transaction_status` de **sent** para
aprovar a transação, ou **rejected** para reprová-la.

### Request

ENDPOINT /mock/pix_transfer/pending_confirmation
MÉTODO POST

Request Body

```json
{
  "end_to_end_id": "E32402502202308181802vSHbiqNCk9i",
  "transaction_status": "rejected",
  "status_reason_information": {
    "error_description": "description",
    "error_translation": "translation",
    "error_short_description": "short_description"
  },
  "error_code": "test_error"
}
```

### Body Parameters

| Campo                       | Tipo   | Descrição                                                             | Máx. Caract. |
|-----------------------------|--------|-----------------------------------------------------------------------|--------------|
| `end_to_end_id`*            | string | Chave unitária da transação PIX                                       | 36           |
| `transaction_status`*       | enum   | [Enumerador Transaction Status](#enumerador-transaction-status)       |
| `status_reason_information` | objeto | [Objeto Status Reason Information](#objeto-status-reason-information) |
| `error_code`                | string | Código de erro                                                        |

### Enumerador Transaction Status

| Enumerador   | Descrição |
|--------------|-----------|
| **sent**     | Concluído |
| **rejected** | Rejeitado |

### Objeto Status Reason Information

| Campo                     | Tipo   | Descrição                         | Máx. Caract. |
|---------------------------|--------|-----------------------------------|--------------|
| `error_description`       | string | Descrição do erro em inglês       | 100          |
| `error_translation`       | string | Descrição do erro em português    | 100          |
| `error_short_description` | string | Descrição curta do erro em inglês | 100          |

## 5 - Simulação de transação rejeitada

Transações pix podem entrar em status **rejected** quando ocorre algum retorno esperado de recusa da
transação Pix pelo Banco Central ou PSP recebedor. Para simular este cenário, realize uma transação com a chave
pix `"target_pix_key": "b9380607-dac6-4e17-8ca7-eb761e3aa1dc"` ou, para transferências pix do tipo **manual**,
utilize `"owner_document_number": "66972913039"` ou `"owner_document_number": "50305556000164"` como número de documento do proprietário da conta de destino.

---

# Efetuar Transferencia Assíncrona para Pix Manual

URL: /documentation/pix_indireto/movimentacoes/transacao_async/transacao_pix_manual

## Request Manual

ENDPOINT /account/ ACCOUNT_KEY /alias/ ALIAS_KEY /pix_transfer
MÉTODO POST

Request Body

```json

{
    "request_control_key": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3",
    "pix_transfer_type": "manual",
    "target_account": {
      "account_branch": "0001",
      "account_digit": "1",
      "account_number": "2983779",
      "account_type": "checking_account",
      "ispb": "99999004",
      "owner_document_number": "36188081866",
      "owner_name": "USER PF LIMIT LEDGER",
      "owner_person_type": "natural"
    },
    "pix_message": "Bom dia", 
    "transaction_amount": 500.00,
    "schedule_date": "2021-08-04"
}

```

### Body Param

| Campo | Tipo | Descrição | Caracteres |
|-------|------|-----------|------------|
| `request_control_key` *| uuidv4 | UUID4 para fins de consulta sobre a requisição feita. | 36 |
| `pix_transfer_type` * | string | O Pix possui diferentes tipos de iniciação, o "manual" onde o usuário deve enviar os campos da conta de destino e conta de origem e o "key" onde o usuário deve enviar os campos da chave Pix do recebedor (conta de destino) e os dados da conta de origem. | 6 |
| `target_account` *| Object | Conta destino - Só deve ser enviada em transações do tipo "manual". | **[Objeto target_account](#objeto-target_account)** |
| `pix_message`  | string | Mensagem opcional que acompanhará o Pix | 140 |
| `transaction_amount` * | float | Valor da transação realizada | 20 |
| `schedule_date` | date | Data de agendamento da transação (caso não seja enviado a transferência é realizada no momento da aprovação). | 10 |

### Objeto target_account

| Campo | Tipo | Descrição | Caracteres |
|-------|------|-----------|------------|
| `account_branch` * | string | Agência.   | 4 |
| `account_digit` * | string | Dígito da conta  | 1 |
| `account_number` *  | string | Número da conta.  | 8 |
| `owner_document_number` * | string | CPF ou CNPJ (apenas números) do titular da conta.| 14 |
| `owner_name` * | string | Nome do titular da conta. | 120 |
| `account_type` * | string | Tipo de conta, podendo ser `checking_account`, `deposit_account`, `guaranteed_account`, `investment_account`, `saving_account` | 20 |
| `owner_trading_name` | string | Nome fantasia para pessoa jurídica. Usado somente para CNPJ| 10 |
| `ispb` *| string | Código de oito dígitos que identifica os bancos no sistema de transferência de reserva do Banco Central. | 8 |

:::info HTTP Status 202 Accepted
No pix assíncrono, toda transação retorna **http status 202 Accepted**, a solicitação de Pix **não deve ser retentada**. Neste cenário, a transação será efetuada oportunamente e será atualizada por meio do [Webhook de Atualização de Transação](/documentation/pix_indireto/movimentacoes/webhook/webhook_transacao).
É possível ainda consultar o status da transação por meio do endpoint [/account/ACCOUNT_KEY/alias/ALIAS_KEY/pix_transfer/PIX_TRANSFER_KEY](/documentation/pix_indireto/movimentacoes/consultar_pix).
:::

## Response

STATUS 202 Accepted

Response Body: Transferência manual

```json
{
  "request_control_key": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3",
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "pix_transfer_status": "pending_confirmation",
  "created_at": "2021-10-22T20:30:23.459Z"
}

```

STATUS 400

Response Body

```json
{
  "data": {
    "title": "Bad Request",
    "description": "Invalid request body.",
    "translation": "Corpo da requisição inválido.",
    "extra_fields": {},
    "code": "LEG000069"
  }
}

```

---

# Efetuar Transferencia Assíncrona via Chave Pix

URL: /documentation/pix_indireto/movimentacoes/transacao_async/transacao_pix_normal

## Request Normal

ENDPOINT /account/ ACCOUNT_KEY /alias/ ALIAS_KEY /pix_transfer
MÉTODO POST

Request Body

```json
{
  "request_control_key": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3",
  "pix_transfer_type": "key",
  "target_pix_key": "pix@qitech.com.br",
  "pix_message": "Bom dia", 
  "transaction_amount": 500.00,
  "end_to_end_id": "E3240250220211022203051750897529",
  "schedule_date": "2021-08-04"
}

```

### Request Path Params

| Campo               | Tipo   | Descrição             | Caracteres |
|---------------------|--------|-----------------------|------------|
| `account_key`       | uuidv4 | Chave única da conta. | 36         |
| `alias_key` | uuidv4 | Chave única do alias. | 36         |

### Body Param

|  Campo  | Tipo | Descrição | Max. Caracteres |
|---------|------|-----------|------------|
| `request_control_key` *| uuidv4 | UUID4 para fins de consulta sobre a requisição feita. | 36 |
| `pix_transfer_type` * | string | O Pix possui diferentes tipos de iniciação, o "manual" onde o usuário deve enviar os campos da conta de destino e conta de origem e o "key" onde o usuário deve enviar os campos da chave Pix do recebedor (conta de destino) e os dados da conta de origem. | 6 |
| `transfer_time` * | string | Informação de sincronicidade da trasação, utilizada para definir quando a transação será processada. Caso seja "synchronous", a transação sera efetuada imediatamente, porém respeitando-se um limite maximo de transações por minuto. Ja se for "asynchronous", a transação será processada em um  | 200 |
| `target_pix_key` * | string | Chave Pix que irá receber a transação. | 200 |
| `pix_message` *  | string | Mensagem opcional que acompanhará o Pix | 140 |
| `transaction_amount` * | float | Valor da transação realizada | 20 |
| `end_to_end_id` | string | chave de identificação única de uma transação ou consulta no Banco Central. Exemplo: E3240250220210615135810450327042 | 32 |
| `schedule_date` | date | Data de agendamento da transação (caso não seja enviado a transferência é realizada no momento da aprovação). | 10 |

:::info HTTP Status 202 Accepted
No pix assíncrono, toda transação retorna **http status 202 Accepted**, a solicitação de Pix **não deve ser retentada**. Neste cenário, a transação será efetuada oportunamente e será atualizada por meio do [Webhook de Atualização de Transação](/documentation/pix_indireto/movimentacoes/webhook/webhook_transacao).
É possível ainda consultar o status da transação por meio do endpoint [/account/ACCOUNT_KEY/alias/ALIAS_KEY/pix_transfer/PIX_TRANSFER_KEY](/documentation/pix_indireto/movimentacoes/consultar_pix).
:::
## Response

STATUS 202 Accepted

Response Body

```json
{
  "request_control_key": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3",
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "pix_transfer_status": "pending_confirmation",
  "created_at": "2021-10-22T20:30:23.459Z"
}

```

STATUS 400

Response Body: Invalid Request Body

```json
{
  "data": {
    "title": "Bad Request",
    "description": "Invalid request body.",
    "translation": "Corpo da requisição inválido.",
    "extra_fields": {},
    "code": "LEG000069"
  }
}

```

---

# Efetuar Transferencia Assíncrona para Pix Qr Code

URL: /documentation/pix_indireto/movimentacoes/transacao_async/transacao_pix_qr_code

## Request Qr Code 

ENDPOINT /account/ ACCOUNT_KEY /alias/ ALIAS_KEY /pix_transfer
MÉTODO POST

Request Body

```json
{
  "request_control_key": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3",
  "pix_transfer_type": "qr_code",
  "target_pix_key": "pix@qitech.com.br",
  "pix_message": "Bom dia", 
  "transaction_amount": 500.00,
  "end_to_end_id": "E3240250220211022203051750897529",
  "schedule_date": "2021-08-04",
  "receiver_conciliation_id": "REC00000000000000000000009459463343"
}
```

### Body Param

|  Campo  | Tipo | Descrição | Max. Caracteres |
|---------|------|-----------|------------|
| `request_control_key` *| uuidv4 | UUID4 para fins de consulta sobre a requisição feita. | 36 |
| `pix_transfer_type` * | string | O Pix possui diferentes tipos de iniciação, o "manual" onde o usuário deve enviar os campos da conta de destino e conta de origem e o "key" onde o usuário deve enviar os campos da chave Pix do recebedor (conta de destino) e os dados da conta de origem. | 6 |
| `target_pix_key` * | string | Chave Pix que irá receber a transação. | 200 |
| `pix_message`  | string | Mensagem opcional que acompanhará o Pix | 140 |
| `transaction_amount` * | float | Valor da transação realizada | 20 |
| `end_to_end_id` | string | chave de identificação única de uma transação ou consulta no Banco Central. Exemplo: E3240250220210615135810450327042 | 32 |
| `schedule_date` | date | Data de agendamento da transação (caso não seja enviado a transferência é realizada no momento da aprovação). | 10 |
| `receiver_conciliation_id` * | string | Identicação de conciliação do recebedor. Gerada ao decodar um Qr Code  | 10 |

:::info HTTP Status 202 Accepted
No pix assíncrono, toda transação retorna **http status 202 Accepted**, a solicitação de Pix **não deve ser retentada**. Neste cenário, a transação será efetuada oportunamente e será atualizada por meio do [Webhook de Atualização de Transação](/documentation/pix_indireto/movimentacoes/webhook/webhook_transacao).
É possível ainda consultar o status da transação por meio do endpoint [/account/ACCOUNT_KEY/alias/ALIAS_KEY/pix_transfer/PIX_TRANSFER_KEY](/documentation/pix_indireto/movimentacoes/consultar_pix).
:::

## Response

STATUS 202 Accepted

Response Body

```json
{
  "request_control_key": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3",
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "pix_transfer_status": "pending_confirmation",
  "created_at": "2021-10-22T20:30:23.459Z"
}

```

STATUS 400

Response Body: Invalid Request Body

```json
{
  "data": {
    "title": "Bad Request",
    "description": "Invalid request body.",
    "translation": "Corpo da requisição inválido.",
    "extra_fields": {},
    "code": "LEG000069"
  }
}

```

STATUS 202

Response Body: Pending Transfer

```json
{
  "request_control_key": "6e290347-330d-4b3a-8ebb-2ac217ad6eb3",
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "pix_transfer_status": "pending_confirmation",
  "created_at": "2021-10-22T20:30:23.459Z"
}
```

:::danger HTTP Status 202
Caso seja retornado **http status 202**, a solicitação de Pix **não deve ser retentada**. É preciso checar o status da solicitação de transferência Pix através de um GET na rota [/baas/pix/pix_transfer](/documentation/pix/pesquisar_por_transferencia_pix_de_saida).
:::

---

# Transação Pix por Chave Pix

URL: /documentation/pix_indireto/movimentacoes/transacao/transacao_pix_chave_sync

## Request Manual

ENDPOINT /account/ ACCOUNT_KEY /alias/ ALIAS_KEY /pix_transfer
MÉTODO POST

Request Body

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_type": "key",
  "target_pix_key": "target_pix_key@email.com",
  "transaction_amount": 500.65,
  "end_to_end_id": "E73856642202309201429bZKfklNlbwu",
  "pix_message": "Ola Mundo"
}

```

### Body Params

| Campo                   | Tipo       | Descrição                                                                                             | Caracteres |
|-------------------------|------------|-------------------------------------------------------------------------------------------------------|------------|
| `request_control_key` * | string     | Chave única de identificação da request utilizada pelo cliente no formato uuid v4                     | 36         | 
| `pix_transfer_type` *   | enumerador | Tipo do pix a ser realizado. Para o caso de transferência por chave deve ser **key**                  | "key"      |
| `target_pix_key` *      | string     | Chave pix da conta a ser enviada a transação                                                          | 100        |
| `transaction_amount` *  | number     | Valor da transferencia                                                                                | 10         |
| `end_to_end_id` *       | string     | Chave de idempotência de uma transação Pix - só deve ser enviado se o tipo de transferência for "key" | 32         |
| `pix_message`           | string     | Mensagem a ser enviada junto à transferência Pix                                                      | 140        |

:::info Aviso
Um `end_to_end_id` deve ser enviado referente
á [consulta de chave](/documentation/pix_indireto/movimentacoes/consultar_chave_pix).
:::

:::danger Aviso
O `end_to_end_id` da consulta deve ter sido feito em nome do alias que solicitará a movimentação!
:::

:::danger Aviso
Um `end_to_end_id` só pode ser utilizado para uma única transferência, não importando se tenha sido bem sucedida ou não.
:::

## Response

STATUS 201

Response Body: Transferência Enviada

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "alias_key": "68908c98-59cb-4fbf-9321-5d223ec78376",
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "pix_transfer_status": "sent",
  "created_at": "2021-10-22T20:30:23.459Z"
}
```

STATUS 202

:::info Informação

Caso seja retornado uma `pix_transfer_status` no estado de **pending**, a solicitação de Pix não deve ser retentada.
Esta transferência será reprocessada. É necessário verificar o status da transferência por meio da consulta de
transferência pix.

:::

Response Body: Transferência Pendente

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "alias_key": "68908c98-59cb-4fbf-9321-5d223ec78376",
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "pix_transfer_status": "pending",
  "created_at": "2021-10-22T20:30:23.459Z"
}
```

STATUS 4XX

Response Body: Transferência Rejeitada

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {
    "pix_transfer_data": {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "alias_key": "68908c98-59cb-4fbf-9321-5d223ec78376",
      "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "pix_transfer_status": "rejected",
      "created_at": "2021-10-22T20:30:23.459Z"
    }
  }
}
```

STATUS 4XX

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`Description`                                                                                       | Descrição (ptbr)<br/>`translation`                                                                                     |
|-------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400         | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Erro de Schema                                                                                                         |
| 406         | PXT000103            | request_control_key must be a valid uuid v4 string | request_control_key was not accepted for not being a valid uuid v4 string                                               | request_control_key não foi aceito por não ser uma palavra uuid v4 válida                                              |
| 400         | PXT000048            | Bad Request                                        | Emoji not allowed in pix message.                                                                                       | Emoji não é permitido na mensagem pix.                                                                                 |
| 400         | PXT000104            | Invalid Transaction Amount                         | Transaction amount of \{transaction_amount\} is not valid. It must be a positive value with at maximum 2 decimal places | O valor de transação \{transaction_amount\} não é válido. Deve ser um valor positivo com no máximo duas casas decimais |
| 404         | PXT000004            | Account not found                                  | Account not found for: \{account_datum\}                                                                                | Conta não encontrada para: \{account_datum\}                                                                           |
| 400         | PXT000003            | Account is Closed                                  | Account \{account_key\} is closed.                                                                                      | Conta \{account_key\} está fechada.                                                                                    |
| 422         | PXT000092            | Invalid Account Type                               | Pix is not yet implemented for non-checking or non-escrow account types                                                 | Transações Pix não estão implementadas para conta que não sejam escrow ou livres                                       |
| 403         | PIT000001            | User is not allowed to do this transaction         |                                                                                                                         | Usuário não tem autorização para fazer essa transação                                                                  |
| 400         | PXT000010            | Account is Blocked                                 | Account \{account_key\} is blocked.                                                                                     | Conta \{account_key\} está bloqueada.                                                                                  |
| 400         | PXT000003            | Account is Closed                                  | Account \{account_key\} is closed.                                                                                      | Conta \{account_key\} está fechada.                                                                                    |
| 400         | PIT000003            | Bad Request                                        | Insufficient account balance for transfer and fee amount.                                                               | Saldo de conta insuficiente para a transferência e a taxa.                                                             |
| 400         | PXT000118            | Requester is not Pix Participant                   | The requester sent an alias key but is not a indirect pix participant                                                   | O requisitante enviou uma alias key no entanto não é um participante do pix indireto                                   |
| 404         | PXT000120            | Alias sent not found                               | Alias key attached to this account not found                                                                            | Alias key vinculada à conta não encontrada                                                                             |
| 406         | PXT000105            | Invalid end_to_end_id                              | The end_to_end_id sent \{end_to_end_id\} is not valid.                                                                  | O end_to_end_id enviado \{end_to_end_id\} não é válido.                                                                |
| 400         | PXT000108            | Bad Request                                        | Billing account closed or blocked                                                                                       | Conta de cobrança encerrada ou bloqueada                                                                               |
| 400         | PXT000079            | Bad Request                                        | Insufficient billing account balance for fee.                                                                           | Saldo de conta de cobrança insuficiente para a taxa.                                                                   |
| 400         | PIT000004            | Bad Request                                        | Transaction amount is over limit.                                                                                       | O total da transferência é superior ao limite.                                                                         |
| 404         | PIX000056            | Not Found                                          | Pix key inquiry not found                                                                                               | Consulta de chave pix não encontrada                                                                                   |
| 404         | PXT000041            | Not Found                                          | Qr Code not found                                                                                                       | Qr Code não encontrado                                                                                                 |
| 400         | PXT000053            | Bad Request                                        | QrCode already paid                                                                                                     | Qr Code já Pago                                                                                                        |
| 400         | PXT000118            | Requester is not Pix Participant                   | The requester sent an alias key but is not a indirect pix participant                                                   | O requisitante enviou uma alias key no entanto não é um participante do pix indireto                                   |
| 404         | PXT000120            | Alias sent not found                               | Alias key attached to this account not found                                                                            | Alias key vinculada à conta não encontrada                                                                             |
| 400         | PXT000115            | Bad Request                                        | Insufficient account balance for transfer and fee amount.                                                               | Saldo de conta insuficiente para a transferência e a taxa                                                              |
| 400         | PXT000128            | Bad Request                                        | Pix key \{pix_key\} sent does match inquiry pix key. Verify if end_to_end_id sent is correct                            | Chave Pix \{pix_key\} enviada não condiz com consulta. Verifique se end_to_end_id enviado está correto                 |
| 400         | PXT000109            | Bad Request                                        | request_control_key \{request_control_key\} already in use                                                              | request_control_key \{request_control_key\} já utilizada                                                               |
| 400         | PXT000061            | Bad Request                                        | End to end id invalid. A pix transfer with the end to end id \{end_to_end\} has already been registered!                | End to end id inválido. Uma transação pix com o identificador único \{end_to_end\} já foi registrada!                  |
| 400         | PXT000129            | SPI Error message                                  | Message rejected by SPI-ICOM                                                                                            | Mensagem rejeitada pela SPI-ICOM                                                                                       |
| 408         | PXT000130            | SPI Timeout Control                                | SPI Timeout Control                                                                                                     | Controle de timeout no SPI                                                                                             |
| 400         | PXT000131            | Receiver Internal Error                            | Cancelled transaction due to receiver's internal error                                                                  | Transação interrompida devido a erro no PSP do Recebedor                                                               |
| 400         | PXT000132            | Invalid Target Account Number                      | Target account number is invalid                                                                                        | Número da conta de destino é inexistente ou inválido                                                                   |
| 400         | PXT000133            | Blocked Target Account                             | Target account is blocked.                                                                                              | A conta de destino encontra-se bloqueada.                                                                              |
| 400         | PXT000134            | Closed Target Account                              | Target account is closed.                                                                                               | A conta de destino encontra-se encerrada.                                                                              |
| 400         | PXT000135            | Unsupported Transaction                            | Unsupported transaction for given target account.                                                                       | A conta de destino não suporta este tipo de transação.                                                                 |
| 400         | PXT000136            | Invalid Participant                                | SPI participant is not PSP settler agent of payer nor receiver.                                                         | Participante direto do SPI não é liquidante do PSP do Pagador / Recebedor.                                             |
| 400         | PXT000137            | Zero Value Payment Order                           | Zero value payment order.                                                                                               | Ordem de pagamento com valor zero.                                                                                     |
| 400         | PXT000138            | Insufficient Funds                                 | Insufficient funds in PI account from payer.                                                                            | Saldo insuficiente na conta PI do pagador.                                                                             |
| 400         | PXT000139            | Return Value Too Great                             | Return value greater than corresponding payment order.                                                                  | Valor de devolução acima do valor de pagamento correspondente.                                                         |
| 400         | PXT000140            | Invalid Transactions Number                        | Invalid transactions number.                                                                                            | Quantidade de transações inválida.                                                                                     |
| 400         | PXT000141            | Unrelated Beneficiary Document Number              | Beneficiary document number is not that of target account owner.                                                        | CPF/CNPJ do usuário recebedor não é compatível com o titular da conta de destino.                                      |
| 400         | PXT000142            | Invalid Beneficiary Document Number                | Invalid beneficiary document number                                                                                     | CPF/CNPJ da conta de destino está incorreto.                                                                           |
| 400         | PXT000143            | Incorrect Message Element                          | Incorrect message element.                                                                                              | Elemento da mensagem incorreto.                                                                                        |
| 403         | PXT000144            | Rejected Payment Order                             | Beneficiary's PSP has rejected payment order.                                                                           | Ordem de pagamento foi rejeitada pelo banco recebedor.                                                                 |
| 403         | PXT000145            | Unauthorized Payer                                 | Signing participant is unauthorized to make a payment order for paying account.                                         | Participante que assinou a mensagem não é autorizado a realizar a operação na conta PI debitada.                       |
| 400         | PXT000146            | Invalid Datetime                                   | Invalid datetime for message delivery.                                                                                  | Data e Hora do envio da mensagem inválida.                                                                             |
| 400         | PXT000147            | Generic Error                                      | Error while processing payment (generic error).                                                                         | Erro no processamento do pagamento (erro genérico).                                                                    |
| 400         | PXT000148            | Bad Format Operation Identifier                    | Badly formatted operation's identifier.                                                                                 | Identificador da operação mal formatado.                                                                               |
| 400         | PXT000149            | Invalid Payer ISPB                                 | Invalid or non-existent payer's PSP ISPB number.                                                                        | Número ISPB do PSP do Pagador é inválido ou inexistente.                                                               |
| 400         | PXT000150            | Invalid Beneficiary ISPB                           | Invalid or non-existent beneficiary's PSP ISPB number.                                                                  | Número ISPB do banco recebedor é inválido ou inexistente.                                                              |
| 400         | PXT000151            | Incorrect Type                                     | Incorrect type for target account.                                                                                      | Tipo incorreto para a conta transacional especificada.                                                                 |
| 400         | PXT000152            | Repeated End-to-End ID Error                       | The end_to_end_id was already used                                                                                      | O end_to_end_id já foi utilizado                                                                                       |
| 400         | PXT000153            | Invalid Target Account Type                        | The target account type cannot receive PIX transactions                                                                 | O tipo de conta destino não pode receber transações PIX                                                                |
| 400         | PXT000154            | Invalid ISPB                                       | Invalid or non-existent ISPB number.                                                                                    | Número ISPB é inválido ou inexistente.                                                                                 |
| 400         | PXT000155            | Amount too Great                                   | Amount too great for credited account.                                                                                  | Valor de pagamento/devolução acima do permitido para a conta de destino creditada.                                     |
| 400         | PXT000156            | QR Code Rejected                                   | QR Code rejected by beneficiary's PSP.                                                                                  | QR Code rejeitado pelo PSP do usuário recebedor.                                                                       |
| 503         | PXT000157            | Bacen Service Unavailable Error                    | Could not send the message to ICOM after 3 retries                                                                      | Não pode enviar a mensagem para a ICOM depois de 3 tentativas                                                          |
| 400         | PXT000158            | Invalid Amount                                     | Paid amount diverges from expected amount of \{expected_amount\}                                                        | O valor do pagamento diverge do valor esperado de \{expected_amount\}                                                  |
| 400         | PXT000159            | QR code inactive                                   | QR code is not active at the time of payment                                                                            | QR code não está ativo no instante do pagamento                                                                        |

---

# Transação Pix Manual

URL: /documentation/pix_indireto/movimentacoes/transacao/transacao_pix_manual_sync

## Request Manual

ENDPOINT /account/ ACCOUNT_KEY /alias/ ALIAS_KEY /pix_transfer
MÉTODO POST

Request Body

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_type": "manual",
  "target_account": {
    "account_branch": "0001",
    "account_digit": "3",
    "account_number": "12345678",
    "owner_document_number": "32402502000135",
    "owner_name": "Qi Tech",
    "account_type": "checking_account",
    "ispb": "32402502"
  },
  "transaction_amount": 500.65,
  "pix_message": "Ola Mundo"
}

```

### Body Params

| Campo                   | Tipo       | Descrição                                                                            | Caracteres                                          |
|-------------------------|------------|--------------------------------------------------------------------------------------|-----------------------------------------------------|
| `request_control_key` * | string     | Chave única de identificação da request utilizada pelo cliente no formato uuid v4    | 36                                                  | 
| `pix_transfer_type` *   | enumerador | Tipo do pix a ser realizado. Para o caso de transferência manual deve ser **manual** | "manual"                                            |
| `target_account` *      | Object     | Conta destino - Só deve ser enviada em transações do tipo "manual"                   | **[Objeto target_account](#objeto-target_account)** | 10 |
| `transaction_amount` *  | number     | Valor da transferencia                                                               | 10                                                  |
| `pix_message`           | string     | Mensagem a ser enviada junto à transferência Pix                                     | 140                                                 |

:::warning Aviso
Um `end_to_end_id` só pode ser utilizado para uma única transferência, não importando se tenha sido bem sucedida ou não.
:::

### Objeto target_account

| Campo                     | Tipo       | Descrição                                                                                               | Caracteres                                              |
|---------------------------|------------|---------------------------------------------------------------------------------------------------------|---------------------------------------------------------|
| `account_branch` *        | string     | Agência da conta                                                                                        | 6                                                       |
| `account_digit` *         | string     | Dígito da conta                                                                                         | 1                                                       |
| `account_number` *        | string     | Número da conta                                                                                         | 20                                                      |
| `owner_document_number` * | string     | CPF ou CNPJ (apenas números) do titular da conta                                                        | 14                                                      |
| `owner_name` *            | string     | Nome do titular da conta                                                                                | 150                                                     |
| `account_type`*           | enumerador | Tipo da conta                                                                                           | **[Enumerador account_type](#enumerador-account_type)** |
| `ispb` *                  | string     | Código de oito dígitos que identifica os bancos no sistema de transferência de reserva do Banco Central | 8                                                       |

### Enumerador account_type

| Enumerador           | Descrição           |
|----------------------|---------------------|
| **checking_account** | Conta Corrente      |
| **salary_account**   | Conta Salário       |
| **saving_account**   | Conta Poupança      |
| **payment_account**  | Conta de Pagamentos |

## Response

STATUS 201

Response Body: Transferência Enviada

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "alias_key": "68908c98-59cb-4fbf-9321-5d223ec78376",
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "pix_transfer_status": "sent",
  "created_at": "2021-10-22T20:30:23.459Z"
}
```

STATUS 202

:::info Informação

Caso seja retornado uma `pix_transfer_status` no estado de **pending**, a solicitação de Pix não deve ser retentada.
Esta transferência será reprocessada. É necessário verificar o status da transferência por meio da consulta de
transferência pix.

:::

Response Body: Transferência Pendente

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "alias_key": "68908c98-59cb-4fbf-9321-5d223ec78376",
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "pix_transfer_status": "pending",
  "created_at": "2021-10-22T20:30:23.459Z"
}
```

STATUS 4XX

Response Body: Transferência Rejeitada

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {
    "pix_transfer_data": {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "alias_key": "68908c98-59cb-4fbf-9321-5d223ec78376",
      "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "pix_transfer_status": "rejected",
      "created_at": "2021-10-22T20:30:23.459Z"
    }
  }
}
```

STATUS 4XX

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`Description`                                                                                       | Descrição (ptbr)<br/>`translation`                                                                                     |
|-------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400         | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Erro de Schema                                                                                                         |
| 406         | PXT000103            | request_control_key must be a valid uuid v4 string | request_control_key was not accepted for not being a valid uuid v4 string                                               | request_control_key não foi aceito por não ser uma palavra uuid v4 válida                                              |
| 400         | PXT000048            | Bad Request                                        | Emoji not allowed in pix message.                                                                                       | Emoji não é permitido na mensagem pix.                                                                                 |
| 400         | PXT000104            | Invalid Transaction Amount                         | Transaction amount of \{transaction_amount\} is not valid. It must be a positive value with at maximum 2 decimal places | O valor de transação \{transaction_amount\} não é válido. Deve ser um valor positivo com no máximo duas casas decimais |
| 404         | PXT000004            | Account not found                                  | Account not found for: \{account_datum\}                                                                                | Conta não encontrada para: \{account_datum\}                                                                           |
| 400         | PXT000003            | Account is Closed                                  | Account \{account_key\} is closed.                                                                                      | Conta \{account_key\} está fechada.                                                                                    |
| 422         | PXT000092            | Invalid Account Type                               | Pix is not yet implemented for non-checking or non-escrow account types                                                 | Transações Pix não estão implementadas para conta que não sejam escrow ou livres                                       |
| 403         | PIT000001            | User is not allowed to do this transaction         |                                                                                                                         | Usuário não tem autorização para fazer essa transação                                                                  |
| 400         | PXT000010            | Account is Blocked                                 | Account \{account_key\} is blocked.                                                                                     | Conta \{account_key\} está bloqueada.                                                                                  |
| 400         | PXT000003            | Account is Closed                                  | Account \{account_key\} is closed.                                                                                      | Conta \{account_key\} está fechada.                                                                                    |
| 400         | PIT000003            | Bad Request                                        | Insufficient account balance for transfer and fee amount.                                                               | Saldo de conta insuficiente para a transferência e a taxa.                                                             |
| 400         | PXT000118            | Requester is not Pix Participant                   | The requester sent an alias key but is not a indirect pix participant                                                   | O requisitante enviou uma alias key no entanto não é um participante do pix indireto                                   |
| 404         | PXT000120            | Alias sent not found                               | Alias key attached to this account not found                                                                            | Alias key vinculada à conta não encontrada                                                                             |
| 406         | PXT000105            | Invalid end_to_end_id                              | The end_to_end_id sent \{end_to_end_id\} is not valid.                                                                  | O end_to_end_id enviado \{end_to_end_id\} não é válido.                                                                |
| 400         | PXT000108            | Bad Request                                        | Billing account closed or blocked                                                                                       | Conta de cobrança encerrada ou bloqueada                                                                               |
| 400         | PXT000079            | Bad Request                                        | Insufficient billing account balance for fee.                                                                           | Saldo de conta de cobrança insuficiente para a taxa.                                                                   |
| 400         | PIT000004            | Bad Request                                        | Transaction amount is over limit.                                                                                       | O total da transferência é superior ao limite.                                                                         |
| 404         | PIX000056            | Not Found                                          | Pix key inquiry not found                                                                                               | Consulta de chave pix não encontrada                                                                                   |
| 404         | PXT000041            | Not Found                                          | Qr Code not found                                                                                                       | Qr Code não encontrado                                                                                                 |
| 400         | PXT000053            | Bad Request                                        | QrCode already paid                                                                                                     | Qr Code já Pago                                                                                                        |
| 400         | PXT000118            | Requester is not Pix Participant                   | The requester sent an alias key but is not a indirect pix participant                                                   | O requisitante enviou uma alias key no entanto não é um participante do pix indireto                                   |
| 404         | PXT000120            | Alias sent not found                               | Alias key attached to this account not found                                                                            | Alias key vinculada à conta não encontrada                                                                             |
| 400         | PXT000115            | Bad Request                                        | Insufficient account balance for transfer and fee amount.                                                               | Saldo de conta insuficiente para a transferência e a taxa                                                              |
| 400         | PXT000128            | Bad Request                                        | Pix key \{pix_key\} sent does match inquiry pix key. Verify if end_to_end_id sent is correct                            | Chave Pix \{pix_key\} enviada não condiz com consulta. Verifique se end_to_end_id enviado está correto                 |
| 400         | PXT000109            | Bad Request                                        | request_control_key \{request_control_key\} already in use                                                              | request_control_key \{request_control_key\} já utilizada                                                               |
| 400         | PXT000061            | Bad Request                                        | End to end id invalid. A pix transfer with the end to end id \{end_to_end\} has already been registered!                | End to end id inválido. Uma transação pix com o identificador único \{end_to_end\} já foi registrada!                  |
| 400         | PXT000129            | SPI Error message                                  | Message rejected by SPI-ICOM                                                                                            | Mensagem rejeitada pela SPI-ICOM                                                                                       |
| 408         | PXT000130            | SPI Timeout Control                                | SPI Timeout Control                                                                                                     | Controle de timeout no SPI                                                                                             |
| 400         | PXT000131            | Receiver Internal Error                            | Cancelled transaction due to receiver's internal error                                                                  | Transação interrompida devido a erro no PSP do Recebedor                                                               |
| 400         | PXT000132            | Invalid Target Account Number                      | Target account number is invalid                                                                                        | Número da conta de destino é inexistente ou inválido                                                                   |
| 400         | PXT000133            | Blocked Target Account                             | Target account is blocked.                                                                                              | A conta de destino encontra-se bloqueada.                                                                              |
| 400         | PXT000134            | Closed Target Account                              | Target account is closed.                                                                                               | A conta de destino encontra-se encerrada.                                                                              |
| 400         | PXT000135            | Unsupported Transaction                            | Unsupported transaction for given target account.                                                                       | A conta de destino não suporta este tipo de transação.                                                                 |
| 400         | PXT000136            | Invalid Participant                                | SPI participant is not PSP settler agent of payer nor receiver.                                                         | Participante direto do SPI não é liquidante do PSP do Pagador / Recebedor.                                             |
| 400         | PXT000137            | Zero Value Payment Order                           | Zero value payment order.                                                                                               | Ordem de pagamento com valor zero.                                                                                     |
| 400         | PXT000138            | Insufficient Funds                                 | Insufficient funds in PI account from payer.                                                                            | Saldo insuficiente na conta PI do pagador.                                                                             |
| 400         | PXT000139            | Return Value Too Great                             | Return value greater than corresponding payment order.                                                                  | Valor de devolução acima do valor de pagamento correspondente.                                                         |
| 400         | PXT000140            | Invalid Transactions Number                        | Invalid transactions number.                                                                                            | Quantidade de transações inválida.                                                                                     |
| 400         | PXT000141            | Unrelated Beneficiary Document Number              | Beneficiary document number is not that of target account owner.                                                        | CPF/CNPJ do usuário recebedor não é compatível com o titular da conta de destino.                                      |
| 400         | PXT000142            | Invalid Beneficiary Document Number                | Invalid beneficiary document number                                                                                     | CPF/CNPJ da conta de destino está incorreto.                                                                           |
| 400         | PXT000143            | Incorrect Message Element                          | Incorrect message element.                                                                                              | Elemento da mensagem incorreto.                                                                                        |
| 403         | PXT000144            | Rejected Payment Order                             | Beneficiary's PSP has rejected payment order.                                                                           | Ordem de pagamento foi rejeitada pelo banco recebedor.                                                                 |
| 403         | PXT000145            | Unauthorized Payer                                 | Signing participant is unauthorized to make a payment order for paying account.                                         | Participante que assinou a mensagem não é autorizado a realizar a operação na conta PI debitada.                       |
| 400         | PXT000146            | Invalid Datetime                                   | Invalid datetime for message delivery.                                                                                  | Data e Hora do envio da mensagem inválida.                                                                             |
| 400         | PXT000147            | Generic Error                                      | Error while processing payment (generic error).                                                                         | Erro no processamento do pagamento (erro genérico).                                                                    |
| 400         | PXT000148            | Bad Format Operation Identifier                    | Badly formatted operation's identifier.                                                                                 | Identificador da operação mal formatado.                                                                               |
| 400         | PXT000149            | Invalid Payer ISPB                                 | Invalid or non-existent payer's PSP ISPB number.                                                                        | Número ISPB do PSP do Pagador é inválido ou inexistente.                                                               |
| 400         | PXT000150            | Invalid Beneficiary ISPB                           | Invalid or non-existent beneficiary's PSP ISPB number.                                                                  | Número ISPB do banco recebedor é inválido ou inexistente.                                                              |
| 400         | PXT000151            | Incorrect Type                                     | Incorrect type for target account.                                                                                      | Tipo incorreto para a conta transacional especificada.                                                                 |
| 400         | PXT000152            | Repeated End-to-End ID Error                       | The end_to_end_id was already used                                                                                      | O end_to_end_id já foi utilizado                                                                                       |
| 400         | PXT000153            | Invalid Target Account Type                        | The target account type cannot receive PIX transactions                                                                 | O tipo de conta destino não pode receber transações PIX                                                                |
| 400         | PXT000154            | Invalid ISPB                                       | Invalid or non-existent ISPB number.                                                                                    | Número ISPB é inválido ou inexistente.                                                                                 |
| 400         | PXT000155            | Amount too Great                                   | Amount too great for credited account.                                                                                  | Valor de pagamento/devolução acima do permitido para a conta de destino creditada.                                     |
| 400         | PXT000156            | QR Code Rejected                                   | QR Code rejected by beneficiary's PSP.                                                                                  | QR Code rejeitado pelo PSP do usuário recebedor.                                                                       |
| 503         | PXT000157            | Bacen Service Unavailable Error                    | Could not send the message to ICOM after 3 retries                                                                      | Não pode enviar a mensagem para a ICOM depois de 3 tentativas                                                          |
| 400         | PXT000158            | Invalid Amount                                     | Paid amount diverges from expected amount of \{expected_amount\}                                                        | O valor do pagamento diverge do valor esperado de \{expected_amount\}                                                  |
| 400         | PXT000159            | QR code inactive                                   | QR code is not active at the time of payment                                                                            | QR code não está ativo no instante do pagamento                                                                        |

---

# Transação Pix por QR Code

URL: /documentation/pix_indireto/movimentacoes/transacao/transacao_pix_qr_code_sync

## Request Manual

ENDPOINT /account/ ACCOUNT_KEY /alias/ ALIAS_KEY /pix_transfer
MÉTODO POST

Request Body

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "pix_transfer_type": "static_qr_code",
  "transaction_amount": 500.65,
  "end_to_end_id": "E73856642202309201429bZKfklNlbwu",
  "receiver_conciliation_id": "REC00000000000000000000009459463343",
  "target_pix_key": "target_pix_key@email.com",
  "pix_message": "Ola Mundo"
}

```

### Body Params

| Campo                      | Tipo       | Descrição                                                                                                                | Caracteres                            |
|----------------------------|------------|--------------------------------------------------------------------------------------------------------------------------|---------------------------------------|
| `request_control_key` *    | string     | Chave única de identificação da request utilizada pelo cliente no formato uuid v4                                        | 36                                    | 
| `pix_transfer_type` *      | enumerador | Tipo do pix a ser realizado. Para o caso de transferência por QR code deve ser **static_qr_code** ou **dynamic_qr_code** | "static_qr_code" ou "dynamic_qr_code" |
| `target_pix_key` *         | string     | Chave pix da conta a ser enviada a transação                                                                             | 100                                   |
| `receiver_conciliation_id` | string     | Identicação de conciliação do recebedor                                                                                  | 35                                    |
| `transaction_amount` *     | number     | Valor da transferencia                                                                                                   | 10                                    |
| `end_to_end_id` *          | string     | Chave de idempotência de uma transação Pix - só deve ser enviado se o tipo de transferência for "key"                    | 32                                    |
| `pix_message`              | string     | Mensagem a ser enviada junto à transferência Pix                                                                         | 140                                   |

:::info Aviso
Um `end_to_end_id` deve ser enviado referente
á [decodificação do QR code](/documentation/pix/decodificar_qr_code).
:::

:::danger Aviso
O `end_to_end_id` da consulta deve ter sido feito em nome do alias que solicitará a movimentação!
:::

:::danger Aviso
Um `end_to_end_id` só pode ser utilizado para uma única transferência, não importando se tenha sido bem sucedida ou não.
:::

## Response

STATUS 201

Response Body: Transferência Enviada

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "alias_key": "68908c98-59cb-4fbf-9321-5d223ec78376",
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "pix_transfer_status": "sent",
  "created_at": "2021-10-22T20:30:23.459Z"
}
```

STATUS 202

:::info Informação

Caso seja retornado uma `pix_transfer_status` no estado de **pending**, a solicitação de Pix não deve ser retentada.
Esta transferência será reprocessada. É necessário verificar o status da transferência por meio da consulta de
transferência pix.

:::

Response Body: Transferência Pendente

```json
{
  "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
  "alias_key": "68908c98-59cb-4fbf-9321-5d223ec78376",
  "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
  "pix_transfer_status": "pending",
  "created_at": "2021-10-22T20:30:23.459Z"
}
```

STATUS 4XX

Response Body: Transferência Rejeitada

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {
    "pix_transfer_data": {
      "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
      "alias_key": "68908c98-59cb-4fbf-9321-5d223ec78376",
      "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
      "pix_transfer_status": "rejected",
      "created_at": "2021-10-22T20:30:23.459Z"
    }
  }
}
```

STATUS 4XX

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`Description`                                                                                       | Descrição (ptbr)<br/>`translation`                                                                                     |
|-------------|----------------------|----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
| 400         | QIT000001            | Bad Request                                        | Schema Error                                                                                                            | Erro de Schema                                                                                                         |
| 406         | PXT000103            | request_control_key must be a valid uuid v4 string | request_control_key was not accepted for not being a valid uuid v4 string                                               | request_control_key não foi aceito por não ser uma palavra uuid v4 válida                                              |
| 400         | PXT000048            | Bad Request                                        | Emoji not allowed in pix message.                                                                                       | Emoji não é permitido na mensagem pix.                                                                                 |
| 400         | PXT000104            | Invalid Transaction Amount                         | Transaction amount of \{transaction_amount\} is not valid. It must be a positive value with at maximum 2 decimal places | O valor de transação \{transaction_amount\} não é válido. Deve ser um valor positivo com no máximo duas casas decimais |
| 404         | PXT000004            | Account not found                                  | Account not found for: \{account_datum\}                                                                                | Conta não encontrada para: \{account_datum\}                                                                           |
| 400         | PXT000003            | Account is Closed                                  | Account \{account_key\} is closed.                                                                                      | Conta \{account_key\} está fechada.                                                                                    |
| 422         | PXT000092            | Invalid Account Type                               | Pix is not yet implemented for non-checking or non-escrow account types                                                 | Transações Pix não estão implementadas para conta que não sejam escrow ou livres                                       |
| 403         | PIT000001            | User is not allowed to do this transaction         |                                                                                                                         | Usuário não tem autorização para fazer essa transação                                                                  |
| 400         | PXT000010            | Account is Blocked                                 | Account \{account_key\} is blocked.                                                                                     | Conta \{account_key\} está bloqueada.                                                                                  |
| 400         | PXT000003            | Account is Closed                                  | Account \{account_key\} is closed.                                                                                      | Conta \{account_key\} está fechada.                                                                                    |
| 400         | PIT000003            | Bad Request                                        | Insufficient account balance for transfer and fee amount.                                                               | Saldo de conta insuficiente para a transferência e a taxa.                                                             |
| 400         | PXT000118            | Requester is not Pix Participant                   | The requester sent an alias key but is not a indirect pix participant                                                   | O requisitante enviou uma alias key no entanto não é um participante do pix indireto                                   |
| 404         | PXT000120            | Alias sent not found                               | Alias key attached to this account not found                                                                            | Alias key vinculada à conta não encontrada                                                                             |
| 406         | PXT000105            | Invalid end_to_end_id                              | The end_to_end_id sent \{end_to_end_id\} is not valid.                                                                  | O end_to_end_id enviado \{end_to_end_id\} não é válido.                                                                |
| 400         | PXT000108            | Bad Request                                        | Billing account closed or blocked                                                                                       | Conta de cobrança encerrada ou bloqueada                                                                               |
| 400         | PXT000079            | Bad Request                                        | Insufficient billing account balance for fee.                                                                           | Saldo de conta de cobrança insuficiente para a taxa.                                                                   |
| 400         | PIT000004            | Bad Request                                        | Transaction amount is over limit.                                                                                       | O total da transferência é superior ao limite.                                                                         |
| 404         | PIX000056            | Not Found                                          | Pix key inquiry not found                                                                                               | Consulta de chave pix não encontrada                                                                                   |
| 404         | PXT000041            | Not Found                                          | Qr Code not found                                                                                                       | Qr Code não encontrado                                                                                                 |
| 400         | PXT000053            | Bad Request                                        | QrCode already paid                                                                                                     | Qr Code já Pago                                                                                                        |
| 400         | PXT000118            | Requester is not Pix Participant                   | The requester sent an alias key but is not a indirect pix participant                                                   | O requisitante enviou uma alias key no entanto não é um participante do pix indireto                                   |
| 404         | PXT000120            | Alias sent not found                               | Alias key attached to this account not found                                                                            | Alias key vinculada à conta não encontrada                                                                             |
| 400         | PXT000115            | Bad Request                                        | Insufficient account balance for transfer and fee amount.                                                               | Saldo de conta insuficiente para a transferência e a taxa                                                              |
| 400         | PXT000128            | Bad Request                                        | Pix key \{pix_key\} sent does match inquiry pix key. Verify if end_to_end_id sent is correct                            | Chave Pix \{pix_key\} enviada não condiz com consulta. Verifique se end_to_end_id enviado está correto                 |
| 400         | PXT000109            | Bad Request                                        | request_control_key \{request_control_key\} already in use                                                              | request_control_key \{request_control_key\} já utilizada                                                               |
| 400         | PXT000061            | Bad Request                                        | End to end id invalid. A pix transfer with the end to end id \{end_to_end\} has already been registered!                | End to end id inválido. Uma transação pix com o identificador único \{end_to_end\} já foi registrada!                  |
| 400         | PXT000129            | SPI Error message                                  | Message rejected by SPI-ICOM                                                                                            | Mensagem rejeitada pela SPI-ICOM                                                                                       |
| 408         | PXT000130            | SPI Timeout Control                                | SPI Timeout Control                                                                                                     | Controle de timeout no SPI                                                                                             |
| 400         | PXT000131            | Receiver Internal Error                            | Cancelled transaction due to receiver's internal error                                                                  | Transação interrompida devido a erro no PSP do Recebedor                                                               |
| 400         | PXT000132            | Invalid Target Account Number                      | Target account number is invalid                                                                                        | Número da conta de destino é inexistente ou inválido                                                                   |
| 400         | PXT000133            | Blocked Target Account                             | Target account is blocked.                                                                                              | A conta de destino encontra-se bloqueada.                                                                              |
| 400         | PXT000134            | Closed Target Account                              | Target account is closed.                                                                                               | A conta de destino encontra-se encerrada.                                                                              |
| 400         | PXT000135            | Unsupported Transaction                            | Unsupported transaction for given target account.                                                                       | A conta de destino não suporta este tipo de transação.                                                                 |
| 400         | PXT000136            | Invalid Participant                                | SPI participant is not PSP settler agent of payer nor receiver.                                                         | Participante direto do SPI não é liquidante do PSP do Pagador / Recebedor.                                             |
| 400         | PXT000137            | Zero Value Payment Order                           | Zero value payment order.                                                                                               | Ordem de pagamento com valor zero.                                                                                     |
| 400         | PXT000138            | Insufficient Funds                                 | Insufficient funds in PI account from payer.                                                                            | Saldo insuficiente na conta PI do pagador.                                                                             |
| 400         | PXT000139            | Return Value Too Great                             | Return value greater than corresponding payment order.                                                                  | Valor de devolução acima do valor de pagamento correspondente.                                                         |
| 400         | PXT000140            | Invalid Transactions Number                        | Invalid transactions number.                                                                                            | Quantidade de transações inválida.                                                                                     |
| 400         | PXT000141            | Unrelated Beneficiary Document Number              | Beneficiary document number is not that of target account owner.                                                        | CPF/CNPJ do usuário recebedor não é compatível com o titular da conta de destino.                                      |
| 400         | PXT000142            | Invalid Beneficiary Document Number                | Invalid beneficiary document number                                                                                     | CPF/CNPJ da conta de destino está incorreto.                                                                           |
| 400         | PXT000143            | Incorrect Message Element                          | Incorrect message element.                                                                                              | Elemento da mensagem incorreto.                                                                                        |
| 403         | PXT000144            | Rejected Payment Order                             | Beneficiary's PSP has rejected payment order.                                                                           | Ordem de pagamento foi rejeitada pelo banco recebedor.                                                                 |
| 403         | PXT000145            | Unauthorized Payer                                 | Signing participant is unauthorized to make a payment order for paying account.                                         | Participante que assinou a mensagem não é autorizado a realizar a operação na conta PI debitada.                       |
| 400         | PXT000146            | Invalid Datetime                                   | Invalid datetime for message delivery.                                                                                  | Data e Hora do envio da mensagem inválida.                                                                             |
| 400         | PXT000147            | Generic Error                                      | Error while processing payment (generic error).                                                                         | Erro no processamento do pagamento (erro genérico).                                                                    |
| 400         | PXT000148            | Bad Format Operation Identifier                    | Badly formatted operation's identifier.                                                                                 | Identificador da operação mal formatado.                                                                               |
| 400         | PXT000149            | Invalid Payer ISPB                                 | Invalid or non-existent payer's PSP ISPB number.                                                                        | Número ISPB do PSP do Pagador é inválido ou inexistente.                                                               |
| 400         | PXT000150            | Invalid Beneficiary ISPB                           | Invalid or non-existent beneficiary's PSP ISPB number.                                                                  | Número ISPB do banco recebedor é inválido ou inexistente.                                                              |
| 400         | PXT000151            | Incorrect Type                                     | Incorrect type for target account.                                                                                      | Tipo incorreto para a conta transacional especificada.                                                                 |
| 400         | PXT000152            | Repeated End-to-End ID Error                       | The end_to_end_id was already used                                                                                      | O end_to_end_id já foi utilizado                                                                                       |
| 400         | PXT000153            | Invalid Target Account Type                        | The target account type cannot receive PIX transactions                                                                 | O tipo de conta destino não pode receber transações PIX                                                                |
| 400         | PXT000154            | Invalid ISPB                                       | Invalid or non-existent ISPB number.                                                                                    | Número ISPB é inválido ou inexistente.                                                                                 |
| 400         | PXT000155            | Amount too Great                                   | Amount too great for credited account.                                                                                  | Valor de pagamento/devolução acima do permitido para a conta de destino creditada.                                     |
| 400         | PXT000156            | QR Code Rejected                                   | QR Code rejected by beneficiary's PSP.                                                                                  | QR Code rejeitado pelo PSP do usuário recebedor.                                                                       |
| 503         | PXT000157            | Bacen Service Unavailable Error                    | Could not send the message to ICOM after 3 retries                                                                      | Não pode enviar a mensagem para a ICOM depois de 3 tentativas                                                          |
| 400         | PXT000158            | Invalid Amount                                     | Paid amount diverges from expected amount of \{expected_amount\}                                                        | O valor do pagamento diverge do valor esperado de \{expected_amount\}                                                  |
| 400         | PXT000159            | QR code inactive                                   | QR code is not active at the time of payment                                                                            | QR code não está ativo no instante do pagamento                                                                        |

---

# Webhook para Devoluções de Pix

URL: /documentation/pix_indireto/movimentacoes/webhook/webhook_devolucao_outgoing_pix

Webhook que servirá para avisar sobre devoluções Pix que chegaram para um Alias.

## Webhook Request Body

**Request Body: Pix Recebido**

```json
{
  "webhook_type": "baas.pix_transfer.incoming_pix",
  "webhook_datetime": "2021-10-22T20:30:23.459Z",
  "data": {
    "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "end_to_end_id": "E18236120202308111235s14fddf2801",
    "pix_transfer_status": "received",
    "account_key": "7c5a1425-73eb-420e-b4fb-0ce3386c7d0c",
    "alias_key": "fc6862c4-2b20-4057-8063-b8809866e494",
    "receiver_conciliation_id": "745c28c780bc4822bbade86dd875d10b",
    "transfer_amount": 126.97,
    "fee_amount": 0.0,
    "source_account": {
      "account_branch": "0001",
      "account_digit": "3",
      "account_number": "12345678",
      "owner_document_number": "***02502000***",
      "owner_person_type": "legal",
      "owner_name": "Qi Tech",
      "account_type": "checking_account",
      "ispb": "32402502"
    },
    "pix_transfer_type": "reversal",
    "pix_message": "pix message received",
    "created_at": "2021-10-22T20:30:23.459Z",
    "reversals": [],
    "original_outgoing_pix_transfer": "b56862c4-2b20-4057-8063-b8809866e494"
  }
}
```

### Webhook Body Param

| Campo                            | Tipo       | Descrição                                                                                             | Max. Caracteres                                                   |
|----------------------------------|------------|-------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|
| `webhook_type`                   | string     | Um enumerador que define o tipo de evento sendo reportado                                             | 23                                                                |
| `webhook_datetime`               | string     | Data e hora do envio do webhook                                                                       | 20                                                                |
| `pix_transfer_type`              | enumerador | Tipo do pix realizado                                                                                 | **[Enumerador pix_transfer_type](#enumerador-pix_transfer_type)** |
| `target_pix_key`                 | string     | Chave pix da conta a ser enviada a transação                                                          | 100                                                               |
| `source_account`                 | Object     | Conta destino - Só deve ser enviada em transações do tipo "manual"                                    | **[Objeto source_account](#objeto-source_account)**               |
| `transfer_amount`                | number     | Valor da transferencia                                                                                | 10                                                                |
| `receiver_conciliation_id`       | string     | Identicação de conciliação do recebedor                                                               | 35                                                                |
| `end_to_end_id`                  | string     | Chave de idempotência de uma transação Pix - só deve ser enviado se o tipo de transferência for "key" | 32                                                                |
| `pix_message`                    | string     | Mensagem a ser enviada junto à transferência Pix                                                      | 140                                                               |
| `fee_amount`                     | number     | Valor da transferencia                                                                                | 10                                                                |
| `pix_transfer_status`            | string     | Status da transação pix                                                                               | 10                                                                |
| `account_key`                    | string     | Chave única de identificação da conta QI                                                              | 36                                                                |
| `alias_key`                      | string     | Chave única do Alias                                                                                  | 36                                                                |
| `pix_transfer_key`               | string     | Chave única de identificação da transferência Pix                                                     | 36                                                                |
| `original_outgoing_pix_transfer` | string     | Chave única de identificação da transferência Pix de saída Original                                   | 36                                                                |

### Enumerador pix_transfer_type

| Enumerador          | Descrição                                |
|---------------------|------------------------------------------|
| **manual**          | Pix utilizando os dados da conta destino |
| **key**             | Pix utilizando uma chave pix             |
| **static_qr_code**  | Pix utilizando um QR code estático       |
| **dynamic_qr_code** | Pix utilizando um QR code dinâmico       |
| **reversal**        | Devolução Pix                            |

### Objeto source_account

| Campo                   | Tipo       | Descrição                                                                                               | Caracteres                                              |
|-------------------------|------------|---------------------------------------------------------------------------------------------------------|---------------------------------------------------------|
| `account_branch`        | string     | Agência da conta                                                                                        | 6                                                       |
| `account_digit`         | string     | Dígito da conta                                                                                         | 1                                                       |
| `account_number`        | string     | Número da conta                                                                                         | 20                                                      |
| `owner_document_number` | string     | CPF ou CNPJ (apenas números) do titular da conta                                                        | 14                                                      |
| `owner_name`            | string     | Nome do titular da conta                                                                                | 150                                                     |
| `account_type`          | enumerador | Tipo da conta                                                                                           | **[Enumerador account_type](#enumerador-account_type)** |
| `ispb`                  | string     | Código de oito dígitos que identifica os bancos no sistema de transferência de reserva do Banco Central | 8                                                       |

### Enumerador account_type

| Enumerador           | Descrição           |
|----------------------|---------------------|
| **checking_account** | Conta Corrente      |
| **salary_account**   | Conta Salário       |
| **saving_account**   | Conta Poupança      |
| **payment_account**  | Conta de Pagamentos |

---

# Webhook para Pix de Entrada

URL: /documentation/pix_indireto/movimentacoes/webhook/webhook_incoming_pix

Webhook que servirá para avisar sobre transações Pix que chegaram para um Alias.

## Webhook Request Body

**Request Body: Pix Recebido**

```json
{
  "webhook_type": "baas.pix_transfer.incoming_pix",
  "webhook_datetime": "2021-10-22T20:30:23.459Z",
  "data": {
    "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "end_to_end_id": "E18236120202308111235s14fddf2801",
    "pix_transfer_status": "received",
    "account_key": "7c5a1425-73eb-420e-b4fb-0ce3386c7d0c",
    "alias_key": "fc6862c4-2b20-4057-8063-b8809866e494",
    "receiver_conciliation_id": "745c28c780bc4822bbade86dd875d10b",
    "transfer_amount": 126.97,
    "fee_amount": 0.0,
    "source_account": {
      "account_branch": "0001",
      "account_digit": "3",
      "account_number": "12345678",
      "owner_document_number": "***02502000***",
      "owner_person_type": "legal",
      "owner_name": "Qi Tech",
      "account_type": "checking_account",
      "ispb": "32402502"
    },
    "pix_transfer_type": "dynamic_qr_code",
    "pix_message": "pix message received",
    "created_at": "2021-10-22T20:30:23.459Z",
    "reversals": []
  }
}
```

### Webhook Body Param

| Campo                      | Tipo       | Descrição                                                                                             | Max. Caracteres                                                   |
|----------------------------|------------|-------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|
| `webhook_type`             | string     | Um enumerador que define o tipo de evento sendo reportado                                             | 23                                                                |
| `webhook_datetime`         | string     | Data e hora do envio do webhook                                                                       | 20                                                                |
| `pix_transfer_type`        | enumerador | Tipo do pix realizado                                                                                 | **[Enumerador pix_transfer_type](#enumerador-pix_transfer_type)** |
| `target_pix_key`           | string     | Chave pix da conta a ser enviada a transação                                                          | 100                                                               |
| `source_account`           | Object     | Conta destino - Só deve ser enviada em transações do tipo "manual"                                    | **[Objeto source_account](#objeto-source_account)**               |
| `transfer_amount`          | number     | Valor da transferencia                                                                                | 10                                                                |
| `receiver_conciliation_id` | string     | Identicação de conciliação do recebedor                                                               | 35                                                                |
| `end_to_end_id`            | string     | Chave de idempotência de uma transação Pix - só deve ser enviado se o tipo de transferência for "key" | 32                                                                |
| `pix_message`              | string     | Mensagem a ser enviada junto à transferência Pix                                                      | 140                                                               |
| `fee_amount`               | number     | Valor da transferencia                                                                                | 10                                                                |
| `pix_transfer_status`      | string     | Status da transação pix                                                                               | 10                                                                |
| `account_key`              | string     | Chave única de identificação da conta QI                                                              | 36                                                                |
| `alias_key`                | string     | Chave única do Alias                                                                                  | 36                                                                |
| `pix_transfer_key`         | string     | Chave única de identificação da transferência Pix                                                     | 36                                                                |

### Enumerador pix_transfer_type

| Enumerador          | Descrição                                |
|---------------------|------------------------------------------|
| **manual**          | Pix utilizando os dados da conta destino |
| **key**             | Pix utilizando uma chave pix             |
| **static_qr_code**  | Pix utilizando um QR code estático       |
| **dynamic_qr_code** | Pix utilizando um QR code dinâmico       |
| **reversal**        | Devolução Pix                            |

### Objeto source_account

| Campo                     | Tipo       | Descrição                                                                                               | Caracteres                                              |
|---------------------------|------------|---------------------------------------------------------------------------------------------------------|---------------------------------------------------------|
| `account_branch` *        | string     | Agência da conta                                                                                        | 6                                                       |
| `account_digit` *         | string     | Dígito da conta                                                                                         | 1                                                       |
| `account_number` *        | string     | Número da conta                                                                                         | 20                                                      |
| `owner_document_number` * | string     | CPF ou CNPJ (apenas números) do titular da conta                                                        | 14                                                      |
| `owner_name`              | string     | Nome do titular da conta                                                                                | 150                                                     |
| `account_type`*           | enumerador | Tipo da conta                                                                                           | **[Enumerador account_type](#enumerador-account_type)** |
| `ispb` *                  | string     | Código de oito dígitos que identifica os bancos no sistema de transferência de reserva do Banco Central | 8                                                       |

### Enumerador account_type

| Enumerador           | Descrição           |
|----------------------|---------------------|
| **checking_account** | Conta Corrente      |
| **salary_account**   | Conta Salário       |
| **saving_account**   | Conta Poupança      |
| **payment_account**  | Conta de Pagamentos |

---

# Webhook para Transações Pendentes

URL: /documentation/pix_indireto/movimentacoes/webhook/webhook_transacao

Webhook que servirá para avisar sobre conclusão de transações que foram originalmente respondidas como pendentes (retornaram com http status 202).

## Webhook Request Body
**Request Body: Transação Enviada**

```json
{
  "webhook_type": "baas.pix_transfer.outgoing_pix",
  "webhook_datetime": "2021-10-22T20:30:23.459Z",
  "data": {
    "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
    "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "pix_transfer_status": "sent",
    "created_at": "2021-10-22T20:30:23.459Z"
  }
}
```

**Request Body: Transação Rejeitada**

```json
{
  "webhook_type": "baas.pix_transfer.outgoing_pix",
  "webhook_datetime": "2021-10-22T20:30:23.459Z",
  "data": {
    "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
    "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "pix_transfer_status": "rejected",
    "created_at": "2021-10-22T20:30:23.459Z",
    "error_code": "PXT000132",
    "error_description": "Target account number is invalid.",
    "error_translation": "Número da conta de destino é inexistente ou inválido.",
    "error_short_description": null
  }
}
```

### Webhook Body Param

|  Campo  | Tipo    | Descrição                                                 | Max. Caracteres |
|---------|---------|-----------------------------------------------------------|------------|
| `webhook_type` | string  | Um enumerador que define o tipo de evento sendo reportado | 23 |
| `webhook_datetime` | string  | Data e hora do envio do webhook                          | 20 |
| `request_control_key` | string  | UUID4 para fins de consulta sobre a requisição feita.     | 36 |
| `pix_transfer_key` | string  | Chave de identificação da transferência Pix no sistema QI | 36 |
| `pix_transfer_status` | string  | Status da transação.                                      | 200 |
| `created_at` | string  | Data e hora de criação da transação.                      | 20 |

---

# Cancelar um Pedido de Portabilidade

URL: /documentation/pix_indireto/portabilidade/cancelar_pedido_de_portabilidade

:::info
Cancelamentos de Pedido de Portabilidade podem ser realizados com as seguintes condições:

Status deve ser `waiting resolution`.

Se razão de cancelamento for `default`, prazo definido pelo campo `max_resolution_date` deve ter passado.
:::
A tabela abaixo define, a depender da razão, quem pode cancelar uma portabilidade.

| Razão             | Doador | Reivindicador |
| ----------------- | ------ | ------------- |
| `client_request`    | ✓      | ✓             |
| `account_closure`   | ✓      |               |
| `default` |        | ✓             |
| `fraud`             | ✓      | ✓             |

## Request

ENDPOINT /account/ ACCOUNT_KEY /alias/ ALIAS_KEY /claim/ CLAIM_REQUEST_KEY
MÉTODO PATCH

**Request Body**

```json
{
    "request_control_key": "8a923886-afce-4116-ac1f-69bdffcf8da9",
    "claim_request_status": "cancelled",
    "cancellation_reason": "client_request",
}
```

| cancellation_reason | Descrição                                                                 |
| ------------------- |---------------------------------------------------------------------------|
| `client_request`    | O usuário reivindicador solicitou cancelamento do pedido de portabilidade |
| `account_closure`   | A conta foi encerrada durante o processo de portabilidade                 |
| `default` | O prazo de validação de posse da chave do usuário reivindicador expirou   |
| `fraud`             | Houve fraude na abertura do pedido de portabilidade                       |

## Response

STATUS 200

**Response Body**

```json
{
	"request_control_key": "95968498-5ad0-465a-9174-969d0bd1e84a",
	"claim_request_status": "cancelled",
    "created_at": "2024-05-25T12:13:25"
}
```

| Value                     | Description                                                                                                | type            |
| ------------------------- | ---------------------------------------------------------------------------------------------------------- | --------------- |
| `claim_request_status`    | Status do pedido de portabilidade.                                                                         | string          |
| `created_at`              | Data de criação do pedido de portabilidade                                                                 | datetime string |
| `request_control_key`     | Identificador UUID4 único da request.                                                                      | uuid4 string    |

| claim_request_status | Descrição                                                                                |
| -------------------- | ---------------------------------------------------------------------------------------- |
| `waiting_resolution` | A notificação foi recebida pela contraparte                                              |
| `confirmed`          | O doador confirmou a reivindicação. Está aguardando o reivindicador encerrar o processo. |
| `cancelled`          | O doador ou reivindicador cancelou o pedido de portabilidade                             |
| `completed`          | Tanto o DICT quanto o reivindicador atualizaram suas bases com o novo vínculo            |

---

# Completa um Pedido de Portabilidade

URL: /documentation/pix_indireto/portabilidade/completar_pedido_de_portabilidade

:::info
Completa a operação de reivindicação. Como consequência, o vínculo com a chave é criado.

## Request

ENDPOINT /account/ ACCOUNT_KEY /alias/ ALIAS_KEY /claim/ CLAIM_REQUEST_KEY
MÉTODO PATCH

**Request Body**

```json
{
    "request_control_key": "8a923886-afce-4116-ac1f-69bdffcf8da9",
    "claim_request_status": "completed",
}
```

## Response

STATUS 200

**Response Body**

```json
{
	"request_control_key": "95968498-5ad0-465a-9174-969d0bd1e84a",
	"claim_request_status": "completed",
    "created_at": "2024-05-25T12:13:25"
}
```

| Value                     | Description                                                                                                | type            |
| ------------------------- | ---------------------------------------------------------------------------------------------------------- | --------------- |
| `claim_request_status`    | Status do pedido de portabilidade.                                                                         | string          |
| `created_at`              | Data de criação do pedido de portabilidade                                                                 | datetime string |
| `request_control_key`     | Identificador UUID4 único da request.                                                                      | uuid4 string    |

| claim_request_status | Descrição                                                                                |
| -------------------- | ---------------------------------------------------------------------------------------- |
| `waiting_resolution` | A notificação foi recebida pela contraparte                                              |
| `confirmed`          | O doador confirmou a reivindicação. Está aguardando o reivindicador encerrar o processo. |
| `cancelled`          | O doador ou reivindicador cancelou o pedido de portabilidade                             |
| `completed`          | Tanto o DICT quanto o reivindicador atualizaram suas bases com o novo vínculo            |

---

# Confirmar um Pedido de Portabilidade

URL: /documentation/pix_indireto/portabilidade/confirmar_pedido_de_portabilidade

Confirma a operação de reivindicação. Como consequência, vínculo da chave com participante doador é removido.

Status deve estar em `waiting_resolution`.

Para reivindicação de posse, caso razão seja `default`, o prazo de resolução (`max_resolution_date`) deve ter passado. Se a razão informada for `client_request`, o prazo de encerramento (`max_conclusion_date`) será adiantado para permitir o encerramento imediato pelo reivindicador.

As tabelas abaixo definem, a depender da razão e do tipo, quem pode confirmar.

| Ownership           | Doador | Reivindicador |
|---------------------|--------|---------------|
| `client_request`    | ✓      |               |
| `account_closure`   |        |               |
| `default` | ✓      |               |

| Portability         | Doador | Reivindicador |
|---------------------|--------|---------------|
| `client_request`    | ✓      |               |
| `account_closure`   | ✓      |               |
| `default` |        |               |

## Request

ENDPOINT /account/ ACCOUNT_KEY /alias/ ALIAS_KEY /claim/ CLAIM_REQUEST_KEY
MÉTODO PATCH

**Request Body**

```json
{
    "request_control_key": "8a923886-afce-4116-ac1f-69bdffcf8da9",
    "claim_request_status": "confirmed",
    "confirmation_reason": "client_request",
}

```

## Response

STATUS 200

**Response Body**

```json
{
	"request_control_key": "95968498-5ad0-465a-9174-969d0bd1e84a",
	"claim_request_status": "confirmed",
    "created_at": "2024-05-25T12:13:25"
}
```

| Value                  | Description                                | type            |
| ---------------------- | ------------------------------------------ | --------------- |
| `claim_request_status` | Status do pedido de portabilidade.         | string          |
| `created_at`           | Data de criação do pedido de portabilidade | datetime string |
| `request_control_key`  | Identificador UUID4 único da request.      | uuid4 string    |

---

# Consultar Pedidos de Portabilidade

URL: /documentation/pix_indireto/portabilidade/consultar_pedido_de_portabilidade

Descrição

## Request

ENDPOINT /account/ ACCOUNT_KEY /alias/ ALIAS_KEY /claim_request/ CLAIM_REQUEST_KEY
MÉTODO GET

## Response

STATUS 200

**Response Body**

```json
{
  {
    "request_control_key": "be0884bc-44a4-4907-8627-ef976e477aef",
    "claim_request_status": "pending",
    "claim_request_direction": "incoming",
    "claim_request_key": "fe3ab7c5-e907-4a66-b9c5-7ea156429f83",
    "pix_key": "12345678000190",
    "claim_request_type": "ownership",
    "pix_key_type": "cnpj",
    "cancellation_reason": null,
    "cancelled_by": "donor",
    "confirmation_reason": null,
    "created_at": "2024-05-25T12:13:25",
    "max_resolution_date": "2023-11-13T17:29:00",
    "claim_request_events": [
      {
       "event_type": "waiting_resolution",
       "event_details": "Relato de Infração recebido e em análise",
       "created_at": "2023-03-03T12:04:06.179Z"
      },
     {
       "event_type": "cancelled",
       "event_details": "Relato de Infração cancelado",
       "created_at": "2023-03-03T12:04:06.179Z"
     },
    ],
  }
} 
```

| Value                     | Description                                                                                                | type            |
| ------------------------- | ---------------------------------------------------------------------------------------------------------- | --------------- |
| `cancellation_reason`     | Razão do cancelamento. "client_request", "account_closure", "fraud", "default", "reconciliation" | string          |
| `cancelled_by`            | Agente que cancelou o pedido de portabilidade. "donor", "claimer"                                          | string          |
| `claim_request_direction` | Indica se o pedido de portabilidade foi recebido ou enviado. "incoming" ou "outgoing"                      | string          |
| `claim_request_key`       | Chave única de identificação da claim                                                              | string          |
| `claim_request_status`    | Status do pedido de portabilidade.                                                                         | string          |
| `claim_request_type`      | Tipo de pedido de portabilidade. "ownership" ou "portability"                                              | string          |
| `confirmation_reason`     | Razão da confirmação. "client_request", "account_closure", "fraud", "default", "reconciliation"  | string          |
| `created_at`              | Data de criação do pedido de portabilidade                                                                 | datetime string |
| `max_conclusion_date`     | Data limite para encerrar o pedido de portabilidade. apenas para portabilidades do tipo "ownership"        | string          |
| `max_resolution_date`     | Data limite para a resolução do pedido de portabilidade                                                    | string          |
| `pix_key`                 | Chave pix do pedido de portabilidade                                                                       | string          |
| `pix_key_type`            | Tipo de chave pix do pedido de portabilidade                                                               | string          |
| `request_control_key`     | Identificador UUID4 único da request.                                                                      | uuid4 string    |
| `claim_request_events`    | Grupo de eventos relacionados ao pedido de portabilidade                                                   | uuid4 string    |

| claim_request_status | Descrição                                                                                |
| -------------------- | ---------------------------------------------------------------------------------------- |
| `waiting_resolution` | A notificação foi recebida pela contraparte                                              |
| `confirmed`          | O doador confirmou a reivindicação. Está aguardando o reivindicador encerrar o processo. |
| `cancelled`          | O doador ou reivindicador cancelou o pedido de portabilidade                             |
| `completed`          | Tanto o DICT quanto o reivindicador atualizaram suas bases com o novo vínculo            |

---

# Criação de um Pedido de Portabilidade

URL: /documentation/pix_indireto/portabilidade/criar_pedido_de_portabilidade

## Request

ENDPOINT /account/ ACCOUNT_KEY /alias/ ALIAS_KEY /claim_request
MÉTODO POST

**Request Body**

```json
{
  "request_control_key": "4b61f25d-b8b5-49cb-a391-e4878091ac3f",
  "pix_key": "12345678000190",
  "claim_request_type": "ownership",
  "pix_key_type": "cnpj"
}
```

| Campo                   | Tipo   | Descrição                                                                                | Max. Caracteres |
| ----------------------- | ------ | ---------------------------------------------------------------------------------------- | --------------- |
| `request_control_key` * | string | UUID4 para fins de consulta sobre a requisição feita.                                    | 36              |
| `pix_key` *             | string | Chave pix referente ao pedido de portabilidade                                           | 36              |
| `claim_request_type` *          | string | Tipo de portabilidade. "ownership" para reivindicação e "portability" para portabilidade | 36              |
| `pix_key_type` *        | string | Definição do tipo de chave. Podendo ser "cpf", "cnpj", "email", "phone_number".          | 10              |

## Response

STATUS 201 created

**Response Body**

```json
{
    "request_control_key": "8a923886-afce-4116-ac1f-69bdffcf8da9",
    "claim_request_status": "pending",
    "claim_request_key": "fe3ab7c5-e907-4a66-b9c5-7ea156429f83",
    "max_conclusion_date": "2024-05-26T12:13:25",
    "created_at": "2024-05-25T12:13:25"
}
```

---

# Introdução a Pedidos de Portabilidade

URL: /documentation/pix_indireto/portabilidade/introducao_portabilidade

As reivindicações e portabilidades de chave são mecanismos especiais disponibilizados pelo banco central, para eventuais trocas de posse de chaves pix.

- Reivindicações são utilizadas nos casos que haja troca de posse de uma chave (**telefone** ou **email**) e o novo dono deseja criar um vínculo para sua conta, mas o dono anterior (antigo detentor do **telefone** ou **email**) já possui vínculo registrado no DICT com essa chave.
- Portabilidades são utilizadas em situações que o dono da chave deseja mudar a vinculação dela para outra conta sua, que está domiciliada em um participante diferente do atual.

Para cada tipo de recurso de mudança de posse, existem somente alguns tipos de chave habilitados, que são:

| Compatível   | Reivindicação | Portabilidade |
|--------------|---------------|---------------|
| cpf          | ✓             |               |
| cnpj         | ✓             |               |
| phone_number | ✓             | ✓             |
| email        | ✓             | ✓             |
| random_key   |               |               |

No âmbito do Pix indireto, os mecanismos de mudança de posse funcionarão com os mesmos preceitos, sendo disponibilizadas rotas especiais na infraestrutura QI Tech para que as contas habilitadas a usar o Pix indireto sejam capazes de realizar requisições e receber respostas dos fluxos apresentados acima.

### 1. Fluxo de Reivindicador 
:::info
Os fluxogramas abaixo representam os comportamentos pertinentes ao **fluxo de reivindicação** de chave pix
:::
##### 1.1. Participante Indireto QI Tech solicita abertura de pedido de portabilidade
![Participante Indireto QI Tech solicita abertura de pedido de portabilidade](/img/diagrams/pix-indireto-portabilidade-introducao-portabilidade-1.svg)
##### 1.2. Banco Doador confirma o recebimento de pedido de portabilidade
![Banco Doador confirma o recebimento de pedido de portabilidade](/img/diagrams/pix-indireto-portabilidade-introducao-portabilidade-2.svg)
##### 1.3. Participante Indireto QI Tech completa o pedido de portabilidade e vínculo de chave pix é criado
![Participante Indireto QI Tech completa o pedido e vínculo de chave pix é criado](/img/diagrams/pix-indireto-portabilidade-introducao-portabilidade-3.svg)
##### 1.4. Participante Indireto QI Tech completa o pedido de portabilidade e vínculo de chave pix é criado
:::warning Importante
Pedidos de Portabilidade com status **confirmed** só podem ser cancelados se forem do tipo **"fraud"**
:::
![Participante Indireto QI Tech cancela pedido de portabilidade](/img/diagrams/pix-indireto-portabilidade-introducao-portabilidade-4.svg)
### 2. Fluxo de Doador 
:::info
Os fluxogramas abaixo representam os comportamentos pertinentes ao **fluxo de doação** de chave pix
:::
#### 2.1. Banco Reivindicador abre um pedido de portabilidade
![Banco Reivindicador abre um pedido de portabilidade](/img/diagrams/pix-indireto-portabilidade-introducao-portabilidade-5.svg)

#### 2.2. Participante Indireto QI Tech confirma recebimento de pedido de portabilidade
![Participante Indireto QI Tech confirma recebimento de pedido de portabilidade](/img/diagrams/pix-indireto-portabilidade-introducao-portabilidade-6.svg)

#### 2.3. Banco Reivindicador completa um pedido de portabilidade
![Banco Reivindicador completa um pedido de portabilidade](/img/diagrams/pix-indireto-portabilidade-introducao-portabilidade-7.svg)

#### 2.4. Banco Reivindicador cancela um pedido de portabilidade
:::warning Importante
Pedidos de Portabilidade com status **confirmed** só podem ser cancelados se forem do tipo **"fraud"**
:::
![Banco Reivindicador cancela um pedido de portabilidade](/img/diagrams/pix-indireto-portabilidade-introducao-portabilidade-8.svg)

---

# Consultar Pedidos de Portabilidade de um Alias

URL: /documentation/pix_indireto/portabilidade/listar_pedidos_de_portabilidade_de_um_alias

Descrição

## Request

ENDPOINT /account/ ACCOUNT_KEY /alias/ ALIAS_KEY /claim_requests
MÉTODO GET

## Response

STATUS 200

**Response Body**

```json
{
  "data": [
    {
        "cancellation_reason": null,
        "cancelled_by": null,
        "claim_request_flow_type": "donator",
        "claim_request_key": "be0884bc-44a4-4907-8627-ef976e477aef",
        "claim_request_status": "pending_confirmation",
        "claim_request_type": "portability",
        "confirmation_reason": null,
        "created_at": "2023-11-06T17:30:11",
        "donator_ispb": 32402502,
        "limit_conclusion_date": null,
        "limit_resolve_date": "2023-11-13T17:29:00",
        "max_conclusion_date": null,
        "max_resolution_date": "2023-11-13T17:29:00",
        "pix_key": "45574823098",
        "pix_key_claim_id": "205c72ab-c03e-43b7-a43d-2409e21fa5be",
        "pix_key_type": "cpf",
        "request_control_key": "be0884bc-44a4-4907-8627-ef976e477aef"
    },
    {
        "cancellation_reason": null,
        "cancelled_by": null,
        "claim_request_flow_type": "donator",
        "claim_request_key": "852d0192-68a7-4bad-bc22-0002f9c5cb1c",
        "claim_request_status": "concluded",
        "claim_request_type": "portability",
        "confirmation_reason": null,
        "created_at": "2023-11-05T17:30:11",
        "donator_ispb": 32402502,
        "limit_conclusion_date": null,
        "limit_resolve_date": "2023-11-12T17:29:00",
        "max_conclusion_date": null,
        "max_resolution_date": "2023-11-12T17:29:00",
        "pix_key": "93109309009",
        "pix_key_claim_id": "089db155-59cf-4a19-881b-22ca932a4612",
        "pix_key_type": "cpf",
        "request_control_key": "9a4336be-a729-4245-9b90-72bbeb04f13c"
    }
  ],
  "pagination": {
    "current_page": 1,
    "rows_per_page": 10
  }
} 
```

---

# Webhook Atualização de Portabilidade

URL: /documentation/pix_indireto/portabilidade/webhook/webhook_atualizacao_do_pedido_de_portabilidade

**Request Body: Atualização de Pedido de Portabilidade**

```json
{
  "webhook_type": "baas.pix_keys.claim_request",
  "webhook_datetime": "2024-05-27T12:13:24",
  "data": {
    "claim_request_status": "pending",
    "claim_request_direction": "incoming",
    "claim_request_key": "fe3ab7c5-e907-4a66-b9c5-7ea156429f83",
    "pix_key": "12345678000190",
    "claim_request_type": "ownership",
    "pix_key_type": "cnpj",
    "cancellation_reason": null,
    "cancelled_by": "donor",
    "confirmation_reason": null,
    "max_resolution_date": "2023-11-13T17:29:00",
    "updated_at": "2024-05-25T12:13:25",
  }
}
```

### Webhook Body Param

| Campo                    | Tipo     | Descrição                                                 | Caracteres |
| ------------------------ | -------- | --------------------------------------------------------- | ---------- |
| `claim_request_status` * | string   | Chave Pix que representa a conta de destino da transação. | -          |
| `claim_request_key` *    | string   | Chave UUID4 identificadora do QR Code.                    | -          |
| `updated_at` *           | datetime | Data hora de pagamento QR Code.                           | -          |

| claim_request_status | Descrição                                                                                |
| -------------------- | ---------------------------------------------------------------------------------------- |
| `waiting_resolution` | A notificação foi recebida pela contraparte                                              |
| `confirmed`          | O doador confirmou a reivindicação. Está aguardando o reivindicador encerrar o processo. |
| `cancelled`          | O doador ou reivindicador cancelou o pedido de portabilidade                             |
| `completed`          | Tanto o DICT quanto o reivindicador atualizaram suas bases com o novo vínculo            |

---

# Webhook Registro Externo de Portabilidade

URL: /documentation/pix_indireto/portabilidade/webhook/webhook_receber_registro_externo_de_portabilidade

**Request Body: Recebimento de Pedido de Portabilidade**

```json
{
  "webhook_type": "baas.pix_keys.claim_request",
  "webhook_datetime": "2024-05-27T12:13:24",
  "data": {
    "claim_request_status": "pending",
    "claim_request_direction": "incoming",
    "claim_request_key": "fe3ab7c5-e907-4a66-b9c5-7ea156429f83",
    "pix_key": "12345678000190",
    "claim_request_type": "ownership",
    "pix_key_type": "cnpj",
    "cancellation_reason": null,
    "cancelled_by": "donor",
    "confirmation_reason": null,
    "max_resolution_date": "2023-11-13T17:29:00",
    "created_at": "2024-05-25T12:13:25",
  }
}
```

### Webhook Body Param

| Campo                    | Tipo     | Descrição                                                 | Caracteres |
| ------------------------ | -------- | --------------------------------------------------------- | ---------- |
| `claim_request_status` * | string   | Chave Pix que representa a conta de destino da transação. | -          |
| `claim_request_key` *    | string   | Chave UUID4 identificadora do QR Code.                    | -          |
| `updated_at` *           | datetime | Data hora de pagamento QR Code.                           | -          |

| claim_request_status | Descrição | Valores    |
| -------------------- | --------- | ---------- |
| waiting_resolution   | Descrição | Caracteres |
| confirmed            | Descrição | Caracteres |
| cancelled            | Descrição | Caracteres |
| completed            | Descrição | Caracteres |

---

# Consultar um QR Code Pix

URL: /documentation/pix_indireto/qr_code/consultar_qr_code

É possível buscar um QR Code específico do Alias pela qr_code_key gerada na criação do mesmo. Esse endpoint retornará todas as informações do mesmo, como status, pagamento, eventos. 

## Request

ENDPOINT /account/ ACCOUNT_KEY /alias/ ALIAS_KEY /qrcode/ QR_CODE_KEY
MÉTODO GET

## Response

STATUS 200 Ok

Response Body: Geral

```json
{
  "request_control_key": "037b46b1-0c67-4c0d-aac3-1e395dfdcb10",
  "pix_key": "3d7d6a2b-f72f-44z7-bb20-79a94dff5645",
  "receiver_conciliation_id": "01GVGV9NXBCY287Z6CJ4S0ENW9",
  "qr_code_key": "d74bf12a-9243-4bfa-9b00-6b63755b6555",
  "qr_code_status": "active",
  "qr_code_type": "dynamic_instant",
  "amount": 22.34,
  "expiration_seconds": 864000,
  "expiration_date": null,
  "max_payment_days": null,
  "payer_name": "João da Silva",
  "payer_document_number": "00000000000000",
  "payer_person_type": "legal",
  "payer_request": "Payment for order XXXXXXXXXXXX",
  "rebate_amount": 1,
  "interest_amount": 2,
  "fine_amount": 3,
  "discounts": [],
  "additional_data": [
    {
      "key_name": "Juros e Multa",
      "value": "Juros 2 ao mes e multa de 1%"
    }
  ],
  "pix_transfer_key": null,
  "paid_amount": null,
  "base_64_payload": "<BASE64 DA URI DO PIX COPIA E COLA>",
  "qr_code_events": [
    {
      "request_control_key": "037b46b1-0c67-4c0d-aac3-1e395dfdcb10",
      "event_type": "registration",
      "created_at": "2023-03-03T12:04:06.179Z"
    },
    {
      "request_control_key": "cae915c8-1940-43ec-890b-ba1a3a66354c",
      "event_type": "payment",
      "created_at": "2023-03-03T12:04:06.179Z"
    }
  ],
  "created_at": "2023-03-03T12:04:06.179Z"
}
```

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `request_control_key` * | string | Identificador UUID4 único da request que originou o QR Code. | - |
| `pix_key` * | string | Chave Pix que representa a conta de destino da transação. | - |
| `receiver_conciliation_id` * | string | Identificador do QR Code para conciliação após o pagamento. | - |
| `qr_code_key` * | string | Chave UUID4 identificadora do QR Code. | - |
| `qr_code_status` * | string | Status do QR Code. | - |
| `qr_code_type` * | string | Tipo do QR Code. | "dynamic_term" ou "dynamic_instant" |
| `amount` * | float | Valor do QR Code antes do cálculo de descontos ou juros e multas. | - |
| `expiration_seconds`  | string | indica qual o tempo de validade do QR Code em segundos, padrão 1 dia. | - |
| `expiration_date` | date | Data de vencimento da cobrança (no formato "YYYY-MM-DD"). | - |
| `max_payment_days` | int32 | Dias máximos para pagamento da cobrança após vencimento. |  - |
| `payer_name` * | string | Nome do pagador. | - |
| `payer_document_number` * | string | CPF/ CNPJ do pagador. | - |
| `payer_request` * | string | Mensagem ao pagador. | - |
| `rebate_amount` | float | Valor absoluto de abatimento antes do pagamento. | - |
| `interest_amount` | float | Valor absoluto por dia de atraso após o vencimento, caso seja pago um dia após o vencimento o valor total será o valor ordinario + multa. |  - |
| `fine_amount` | float | Multa em valor absoluto após o vencimento. |  - |
| `discounts` | array of objects | Configurações de desconto. |  - |
| `additional_data` | array of objects | Informações que serão apresentadas para o pagador. | - |
| `pix_transfer_key` | string | Chave UUID4 identificadora da transação pix correspondente à liquidação do QR Code. | - |
| `paid_amount` | float | Valor do pagamento realizado, considerando multas, descontos e outros. | - |
| `base_64_payload` | string | URL do QR Code para pagamento, em base64. | - |
| `qr_code_events` | array of objects | Lista de mudanças de status pelas quais o QR Code passou. | - |
| `created_at` | datetime | Data e hora que o QR Code foi criado no sistema. | - |

### Objeto qr_code_status

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `active`  | string | QR Code se encontra ativo e disponível para pagamento. | - |
| `finished` | string | QR Code pago. | - |
| `written_off` | string | QR Code foi baixado pelo cliente. | - |
| `bank_written_off` | string | QR Code foi baixado automaticamente devido prazo expirado. | - |

### Objeto discount

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `discount_value` * | float |  Valor do desconto. | - |
| `discount_number` | int32 | Ordem que o desconto deve ser aplicado. | - |
| `discount_limit_date` | string | Data limite do desconto. | - |

### Objeto additional_data

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `key_name` * | string |  Nome do campo | - |
| `value` | string | Valor do campo | - |

### Objeto qr_code_events

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `request_control_key` * | string |  Identificador UUID4 único da request que originou o event. | - |
| `event_type` * | string |  Tipo de evento | "registration", "write_off", "payment" |
| `created_at` * | datetime | Data e hora que o evento foi criado. | - |

STATUS 400

Response Body

```json
{
    "title": "Bad Request",
    "description": "Invalid payload for QR Code creation.",
    "translation": "Payload inválido para a criação de QR Code.",
    "code": "QRI000003"
}

```

STATUS 404

Response Body: QR Code key não encontrada

```json
{
    "title": "Not found",
    "description": "No Pix QR Code found for qr_code_key {qr_code_key}.",
    "translation": "Não foi encontrado nenhum QR Code com a qr_code_key {qr_code_key}.",
    "code": "QRI000005"
}
```

---

# Criar QR Code Pix dinâmico com vencimento

URL: /documentation/pix_indireto/qr_code/Criar QR Code/criar_qr_code_dinamico_com_vencimento

O QR Code dinâmico com vencimento é utilizado para pagamentos onde o originador é conhecido e é desejado facilitar o pagamento, possibilitando adicionar prazos, descontos, multas, e juros. Este QR Code é utilizado normalmente em substituição ao boleto bancário. 

## Request

ENDPOINT /account/ ACCOUNT_KEY /alias/ ALIAS_KEY /qrcode
MÉTODO POST

Request Body: Qr Code dinâmico com vencimento

```json
{
  "request_control_key": "8a923886-afce-4116-ac1f-69bdffcf8da9",
  "qr_code_type": "dynamic_term",
  "amount": 10.25,
  "receiver_conciliation_id": "01GVGV9NXBCY287Z6CJ4S0ENW9",
  "payer_document_number": "00000000000000",
  "payer_name": "Random",
  "payer_request": "Payment for order XXXXXXXXXX",
  "pix_key": "3d7d6a2b-f72f-44c7-bb20-79a94dff5954",
  "expiration_date": "2023-03-25",
  "max_payment_days": 128,
  "fine_amount": 3,
  "interest_amount": 2,
  "rebate_amount": 1,
  "discounts": [],
  "additional_data": [
    {
      "key_name": "merchant_name",
      "value": "Lojas Costa S.A."
    }
  ],
}
```

### Body Params

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `request_control_key` * | string | Identificador UUID4 único da request. | - |
| `qr_code_type` * | string | Tipo do QR Code dinâmico. | "dynamic_term" ou "dynamic_instant" |
| `amount` * | float | Valor do QR Code antes do cálculo de descontos ou juros e multas. | - |
| `receiver_conciliation_id` * | string | Identificador do QR Code para conciliação após o pagamento. | - |
| `payer_document_number` * | string | CPF/ CNPJ do pagador. | - |
| `payer_name` * | string | Nome do pagador. | - |
| `payer_request` * | string | Mensagem ao pagador. | - |
| `pix_key` * | string | Chave Pix que representa a conta de destino da transação. | - |
| `expiration_date` * | date | Data de vencimento da cobrança (no formato "YYYY-MM-DD"). | - |
| `max_payment_days` * | int32 | Dias máximo para pagamento da cobrança. |  - |
| `fine_amount` * | float | Multa em valor absoluto após o vencimento. |  - |
| `interest_amount` * | float | Valor absoluto por dia de atraso após o vencimento, caso seja pago um dia após o vencimento o valor total será o valor ordinario + multa. |  - |
| `rebate_amount` * | float | Valor absoluto de abatimento antes do pagamento. | - |
| `discounts` | array of objects | Configurações de desconto. |  - |
| `additional_data` | array of objects | Informações extras do QR Code utilizado para conciliações. | - |

### Objeto additional_data

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `key_name` * | string |  Nome do campo | - |
| `value` * | string | Valor do campo | - |

### Objeto discount

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `discount_value` * | float |  Valor do desconto. | - |
| `discount_number` | int32 | Ordem que o desconto deve ser aplicado. | - |
| `discount_limit_date` * | string | Data limite do desconto. | - |

## Response

STATUS 201 Created

Response Body: Criação Qr Code dinâmico com vencimento

```json
{
  "request_control_key": "037b46b1-0c67-4c0d-aac3-1e395dfdcb10",
  "qr_code_key": "d74bf12a-9243-4bfa-9b00-6b63755b6555",
  "qr_code_status": "active",
  "base_64_payload": "<BASE64 DA URI DO PIX COPIA E COLA>",
  "created_at": "2023-03-03T12:04:06.179Z",
}
```

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `request_control_key` * | string | Identificador UUID4 único da request. | - |
| `qr_code_key` * | string | Identificador do QR Code para futuras requisições. | - |
| `qr_code_status` * | string | Status do QR Code no sistema. | "active": default para criação. |
| `base_64_payload` * | string | URL do QR Code para pagamento, em base64. | - |
| `created_at` * | datetime | Data e hora que o QR Code foi criado no sistema. | - |

### Objeto qr_code_status

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `active`  | string | QR Code se encontra ativo e disponível para pagamento. | - |
| `finished` | string | QR Code pago. | - |
| `written_off` | string | QR Code foi baixado pelo cliente. | - |
| `bank_written_off` | string | QR Code foi baixado automaticamente devido prazo expirado. | - |

STATUS 400

Response Body

```json
{
    "title": "Bad Request",
    "description": "Invalid payload for QR Code creation.",
    "translation": "Payload inválido para a criação de QR Code.",
    "code": "QRI000003"
}

```

---

# Criar QR Code Pix dinâmico pagamento imediato

URL: /documentation/pix_indireto/qr_code/Criar QR Code/criar_qr_code_dinamico_imediato

O QR Code dinâmico imediato é utilizado para pagamentos que possuem um prazo de pagamento curto, normalmente providenciado em segundos, para operações rotineiras de cobrança para pagamento imediato.

## Request

Request Body: Qr Code dinâmico pagamento imediato

```json
{
  "request_control_key": "8a923886-afce-4116-ac1f-69bdffcf8da9",
  "qr_code_type": "dynamic_instant",
  "amount": 22.34,
  "receiver_conciliation_id": "01GVGV9NXBCY287Z6CJ4S0ENW9",
  "payer_document_number": "00000000000000",
  "payer_name": "Random",
  "payer_request": "Payment for order XXXXXXXXXX",
  "pix_key": "3d7d6a2b-f72f-44z7-bb20-79a94dff5645",
  "expiration_seconds": 864000,
  "additional_data": [
    {
      "key_name": "identificacao_venda",
      "value": "Venda número 123 na plataforma"
    }
  ],
}
```

### Body Params

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `request_control_key` * | string | Identificador UUID4 único da request. | - |
| `qr_code_type` * | string | Tipo do QR Code dinâmico. | "dynamic_term" ou "dynamic_instant" |
| `amount` * | float | Valor do QR Code antes do cálculo de descontos ou juros e multas. | - |
| `receiver_conciliation_id` * | string | Identificador do QR Code para conciliação após o pagamento. | - |
| `payer_document_number` * | string | CPF/ CNPJ do pagador. | - |
| `payer_name` * | string | Nome do pagador. | - |
| `payer_request` * | string | Mensagem ao pagador. | - |
| `pix_key` * | string | Chave Pix que representa a conta de destino da transação. | - |
| `expiration_seconds`  | string | indica qual o tempo de validad e do QR Code em segundos, padrão 1 dia | - |
| `additional_data` | array of objects | Informações que serão apresentadas para o pagador. | - |

### Objeto additional_data

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `key_name` * | string |  Nome do campo | - |
| `value` | string | Valor do campo | - |

## Response

STATUS 201 Created

Response Body: Criação Qr Code dinâmico pagamento imediato

```json
{
  "request_control_key": "037b46b1-0c67-4c0d-aac3-1e395dfdcb10",
  "qr_code_key": "d74bf12a-9243-4bfa-9b00-6b63755b6555",
  "qr_code_status": "active",
  "base_64_payload": "<BASE64 DA URI DO PIX COPIA E COLA>",
  "created_at": "2023-03-03T12:04:06.179Z",
}
```

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `request_control_key` * | string | Identificador UUID4 único da request. | - |
| `qr_code_key` * | string | Identificador do QR Code para futuras requisições. | - |
| `qr_code_status` * | string | Status do QR Code no sistema. | "active": default para criação. |
| `base_64_payload` * | string | URL do QR Code para pagamento, em base64. | - |
| `created_at` * | datetime | Data e hora que o QR Code foi criado no sistema. | - |

### Objeto qr_code_status

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `active`  | string | QR Code se encontra ativo e disponível para pagamento. | - |
| `finished` | string | QR Code pago. | - |
| `written_off` | string | QR Code foi baixado pelo cliente. | - |
| `bank_written_off` | string | QR Code foi baixado automaticamente devido prazo expirado. | - |

STATUS 400

Response Body

```json
{
    "title": "Bad Request",
    "description": "Invalid payload for QR Code creation.",
    "translation": "Payload inválido para a criação de QR Code.",
    "code": "QRI000003"
}

```

---

# Criar QR Code Pix Estático

URL: /documentation/pix_indireto/qr_code/Criar QR Code/criar_qr_code_estatico

O QR Code estático é utilizado para pagamentos onde não se sabe a identidade do pagador, muito menos quando irá pagar e quantos pagadores terão. Basicamente, consiste em uma chave, e opcionalmente um valor, codificados, e pode ser pago multiplas vezes, por referenciar apenas a chave.

## Request

ENDPOINT /account/ ACCOUNT_KEY /alias/ ALIAS_KEY /qrcode
MÉTODO POST

Request Body: Qr Code estático

```json
{
    "request_control_key": "8a923886-afce-4116-ac1f-69bdffcf8da9",
    "qr_code_type": "static",
    "pix_key": "joaosilva@gmail.com",
    "amount": 10.25,
}
```

### Body Params

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `request_control_key` * | string | Identificador UUID4 único da request. | - |
| `qr_code_type` * | string | Tipo do QR Code dinâmico. | "static" |
| `pix_key` * | string | Chave Pix que representa a conta de destino da transação. | - |
| `amount` | float | Valor do QR Code. | Se não passado, inserido a cargo do pagador. |

## Response

STATUS 201 Created

Response Body: Criação Qr Code estático

```json
{
  "request_control_key": "037b46b1-0c67-4c0d-aac3-1e395dfdcb10",
  "base_64_payload": "<BASE64 DA URI DO PIX COPIA E COLA>"
}
```

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `request_control_key` * | string | Identificador UUID4 único da request. | - |
| `base_64_payload` * | string | URL do QR Code para pagamento, em base64. | - |

STATUS 400

Response Body

```json
{
    "title": "Bad Request",
    "description": "Invalid payload for QR Code creation.",
    "translation": "Payload inválido para a criação de QR Code.",
    "code": "QRI000003"
}

```

---

# Listar QR Codes de um alias

URL: /documentation/pix_indireto/qr_code/decodificar_qr_code

Os QR Codes Pix, utilizados no formato imagem ou URL, seguem um padrão, e devem ser decodificados seguindo uma lógica para extrair as informações do pagamento a ser realizado. Tendo a URL do QR Code, é possível decodificar todas as informações que originaram o mesmo. A decodificação gera um `end_to_end_id`, que deverá ser utilizado no pagamento do QR Code, juntamente com o receiver_conciliation_id, para identificar o pagamento do QR Code.

## Request

ENDPOINT /account/ ACCOUNT_KEY /alias/ ALIAS_KEY /qrcode/decode
MÉTODO POST

Request Body: Decode QR Code

```json
{
   "qr_code_payload": "00020126580014br.gov.bcb.pix0136a23bf0e9-5175-4829-bf89-e8fe6ac09aa1520400005303986540530.005802BR5914TywinLannister6008saopaulo62070503***6304D4FD",
}
```

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `qr_code_payload` | string | URL do QR Code para pagamento (pix copia e cola). | - |

## Response

STATUS 200 Ok

Response Body: QR Code estático

```json
{
  "end_to_end_id": "E32402502202303131806WTFZTGAOWiq",
  "qr_code_data": {
    "additional_data": null,
    "amount": null,
    "ispb_number": "90400888",
    "receiver_conciliation_id": "01GVGV9NXBCY287Z6CJ4S0ENW9",
    "target_account_branch": "2980",
    "target_account_digit": "5",
    "target_account_number": "0000000000022039741",
    "target_account_type": "checking_account",
    "target_bank_code": 33,
    "target_bank_name": "BCO SANTANDER (BRASIL) S.A.",
    "target_document_number": "00000000000000",
    "target_name": "JOSE RONALDO",
    "target_pix_key": "00000000000000"
  },
  "qr_code_key": "e54671f5-3eda-4180-8539-0ac6271fe185",
  "qr_code_payload": "00020126360032br.gov.bcb.pix0111234590280001665204000051234565802BR5925JOSE RONALDO BERNARDINO 26008BRASILIA62070503***63044293",
  "qr_code_type": "static"
}
```

STATUS 200 Ok

Response Body: QR Code dinâmico com vencimento

```json
{
  "request_control_key": "037b46b1-0c67-4c0d-aac3-1e395dfdcb10",
  "end_to_end_id": "E32402502202303101532yCipbxgUnUj",
  "qr_code_data": {
    "account_type": "payment_account",
    "additional_data": [],
    "amount": "55.59",
    "category_code": "0000",
    "max_payment_days": 16,
    "discount_amount": null,
    "expiration_date": "2023-03-27",
    "fee_amount": null,
    "fine_amount": null,
    "ispb_number": "20018183",
    "original_amount": "55.59",
    "payer_document_number": "00000000000",
    "payer_name": "Willian Rocha",
    "payer_request": null,
    "receiver_conciliation_id": "8b434df48c30482a81f7c936ae35cc87",
    "receiver_url": "invoice.starkbank.com/v2/cobv/8b434df48c30482a81f7c936ae351234",
    "reduction_amount": null,
    "qr_code_status": "active",
    "target_account_branch": "0001",
    "target_account_digit": "8",
    "target_account_number": "589575519784140",
    "target_bank_code": null,
    "target_bank_name": "Stark Bank S.A.",
    "target_document_number": "00000000000000",
    "target_name": "TESTE LTDA.",
    "target_pix_key": "e623e7b0-d00a-400e-aee6-79632430e817",
    "target_trading_name": null,
    "presented_at": "2023-03-10T15:32:15.87Z",
    "created_at": "2023-01-10T19:49:58.30Z",
  },
  "qr_code_key": "8c2c19bd-f260-4714-955c-956f3eaa30ca",
  "qr_code_payload": "00020101021226840014br.gov.bcb.pix2562invoice.starkbank.com/v2/cobv/8b434df48c30482a81f7c936ae35cc123456000053039865802BR5925Oncred Sociedade de Credi6015TESTE 62070503***6304D008",
  "qr_code_type": "dynamic_term"
}

```

STATUS 200 Ok

Response Body: QR Code dinâmico com vencimento

```json
{
  "request_control_key": "037b46b1-0c67-4c0d-aac3-1e395dfdcb10",
  "end_to_end_id": "E32402502202303141907qlBAF1evdJ2",
  "qr_code_data": {
    "account_type": "checking_account",
    "additional_data": [],
    "amount": "9367.61",
    "category_code": "0000",
    "expiration_seconds": 201574,
    "ispb_number": "00000000",
    "payer_document_number": "10003550206",
    "payer_name": "ISMAEL FATIMA AMARAL",
    "payer_request": "Liquidacao de Parcelas",
    "receiver_conciliation_id": "fgnb4NTt7pOUBGfrcporERwVVqr0f8PWRfK",
    "receiver_url": "qrcodepix.bb.com.br/pix/v2/d373e385-dfe7-49f6-b9ec-14ba60a90000",
    "qr_code_status": "active",
    "target_account_branch": "1253",
    "target_account_digit": "8",
    "target_account_number": "107260",
    "target_bank_code": 1,
    "target_bank_name": "BCO DO BRASIL S.A.",
    "target_document_number": "0000000000000",
    "target_name": "TESTE LTDA.",
    "target_pix_key": "teste.cobrancapix@gmail.com.br",
    "presented_at": "2023-03-14T19:07:48.729Z",
    "created_at": "2023-03-13T19:00:28.440Z",
  },
  "qr_code_key": "ffd7d60a-0f2d-4b29-9ae2-7f2b919fa65e",
  "qr_code_payload": "00020101021226850014br.gov.bcb.pix2563qrcodepix.bb.com.br/pix/v2/d373e385-dfe7-49f6-b9ec-14ba60a9b8285204001234567895802BR5925TESTE DE JANEIRO62070503***63047B7D",
  "qr_code_type": "dynamic_instant"
}
```

### Response Body

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `request_control_key` * | string | Identificador UUID4 único da request que originou o QR Code. | - |
| `end_to_end_id` * | string | Identificador único da transação Pix, de ponta a ponta. | - |
| `account_type` * | string | Tipo da conta de origem. | - |
| `amount` * | float | Valor do QR Code atualmente. | - |
| `category_code` * | string | Identificador do QR Code para conciliação após o pagamento. | - |// aaaaaaaaaaa
| `expiration_seconds`  | string | Indica qual o tempo de validade do QR Code em segundos, padrão 1 dia. | - |
| `ispb_number` * | string | Identificador do banco. | - |aaaaaaaaaaaa
| `payer_document_number` * | string | CPF/ CNPJ do pagador. | - |
| `payer_name` * | string | Nome do pagador. | - |
| `payer_request` * | string | Mensagem ao pagador. | - |
| `receiver_conciliation_id` * | string | Identificador do QR Code para conciliação após o pagamento. | - |
| `receiver_url` * | string | URL para consulta dos dados do QR Code dinâmico. | - |
| `qr_code_status` * | string | Status do QR Code. | - |
| `target_account_branch` * | string | Agência da conta de destino. | - |
| `target_account_digit` * | string | Digito verificador da conta de destino. | - |
| `target_account_number` * | string | Número da conta de destino. | - |
| `target_bank_code` * | string | Código do banco de destino. | - |
| `target_bank_name` * | string | Nome do banco de destino. | - |
| `target_document_number` * | string | CPF/ CNPJ do cobrador. | - |
| `target_name` * | string | Nome do cobrador. | - |
| `target_trading_name` * | string | Nome fantasia do cobrador - apenas para CNPJ. | - |
| `target_pix_key` * | string | Chave pix do cobrador. | - |
| `qr_code_key` * | string | Chave UUID4 identificadora do QR Code. | - |
| `qr_code_payload` * | string | URL copia e cola do QR Code. | - |
| `qr_code_type` * | string | Tipo do QR Code. | "static", "dynamic_term" ou "dynamic_instant" |
| `max_payment_days` | int32 | Dias máximos para pagamento da cobrança após vencimento. |  - |
| `expiration_date` | date | Data de vencimento da cobrança (no formato "YYYY-MM-DD"). | - |
| `fine_amount` | float | Multa em valor absoluto após o vencimento. |  - |
| `interest_amount` | float | Valor absoluto por dia de atraso após o vencimento, caso seja pago um dia após o vencimento o valor total será o valor ordinario + multa. |  - |
| `discount_amount` | float | Valor do desconto. |  - |
| `original_amount` | float | Valor original do QR Code. |  - |
| `additional_data` | array of objects | Informações que serão apresentadas para o pagador. | - |
| `presented_at` * | datetime | Data e hora que o QR Code foi decodificado. | - |
| `created_at` * | datetime | Data e hora que o QR Code foi criado no sistema. | - |
| `rebate_amount` | float | Valor absoluto de abatimento antes do pagamento. | - |

### Objeto qr_code_status

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `active`  | string | QR Code se encontra ativo e disponível para pagamento. | - |
| `finished` | string | QR Code pago. | - |
| `written_off` | string | QR Code foi baixado pelo cliente. | - |
| `bank_written_off` | string | QR Code foi baixado automaticamente devido prazo expirado. | - |

### Objeto additional_data

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `key_name` * | string |  Nome do campo | - |
| `value` | string | Valor do campo | - |

STATUS 400

Response Body: Impossível decodificar QR Code

```json
{
    "title": "Bad Request",
    "description": "Could not decode QR Code.",
    "translation": "Não foi possível decodificar o QR Code.",
    "code": "QRI000001"
}
```

STATUS 404

Response Body: QR Code não encontrado

```json
{
    "title": "Not found",
    "description": "Could not find the queried QR Code.",
    "translation": "Não possível encontrar o QR Code buscado.",
    "code": "QRI000002"
}
```

---

# Alterar um QR Code Pix

URL: /documentation/pix_indireto/qr_code/desativar_qr_code

Só é possível realizar a alteração de QR Code pix do tipo dinâmico. Ao realizar a mesma, identificada pela qr_code_key gerada na criação do QR Code, ele se torna inválido para posteriores pagamentos. Existem vários motivos para requisitar a alteração de um QR Code Pix, porém no sistema interno a inativação de um QR Code pode ser realizada por baixa requisitada pelo alias (write_off).

## Request

ENDPOINT /account/ ACCOUNT_KEY /alias/ ALIAS_KEY /qrcode/ QR_CODE_KEY
MÉTODO PATCH

Request Body: Baixa de QR Code

```json
{
  "request_control_key": "76d4506d-31a4-48db-bc71-61068b138ffd",
  "qr_code_status": "written_off",
}
```

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `request_control_key` * | string | Identificador UUID4 único da request. | - |
| `qr_code_status` * | string | Status do QR Code | - |

### Objeto qr_code_status

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `active`  | string | QR Code se encontra ativo e disponível para pagamento. | - |
| `finished` | string | QR Code pago. | - |
| `written_off` | string | QR Code foi baixado pelo cliente. | - |
| `bank_written_off` | string | QR Code foi baixado automaticamente devido prazo expirado. | - |

## Response

STATUS 204 No content

Response Body

```json
{}
```

STATUS 404

Response Body

```json
{
    "title": "Not found",
    "description": "Could not find the queried QR Code.",
    "translation": "Não possível encontrar o QR Code buscado.",
    "code": "QRI000002"
}

```

---

# Introdução QR Code pix

URL: /documentation/pix_indireto/qr_code/introducao_qr_code

Qualquer cliente do Participante Indireto (Alias) pode realizar operações de criação, consulta e baixa de QR Codes pix.

- Criação: Pode-se gerar QR Codes do tipo estático ou dinâmico. No último, é possível gerar um dinâmico para pagamento instantâneo ou com vencimento de longo prazo. Os tipos serão explicados melhor no processo de criação.

- Consulta: Tendo um QR Code ou a URL do QR Code (pix copia e cola), é possível consultar suas informações para posterior pagamento realizado. A consulta é chamada de decodificação de QR Code, e gera um `end_to_end_id` para posterior pagamento.

- Baixa: A baixa de um QR Code o torna inválido para pagamento. As principais causas para baixa são: prazo expirado, cancelamento do QR Code pelo alias, ou pagamento.

## Tipos de QR Code
O tipo do QR Code é definido na criação, pelo campo qr_code_type

| Nome | Enumerador | Descrição |
|---|---|---|
| Estático | `static` | Contém chave pix de destino e pode conter valor. Pode ser pago a qualquer momento, desde que a chave steja ativa. Não possui prazo de validade. Reutilizável.|
| Dinâmico para Pagamento Instantaneo |  `dynamic_instant` | Cotém informações de pagamento, com pagador definido, valor e chave de conciliação. Prazo de pagamento em segundos. Uso único.|
| Dinâmico com Vencimento | `dynamic_term` | Cotém informações de pagamento, com pagador definido, valor e chave de conciliação. Prazo de pagamento em dias, informações de multa e juros. Uso único. |

## Pagamento de um QR Code

Após a decodificação de um QR Code e consulta da chave, é gerado um `end_to_end_id`, o qual é utilizado na ordem de pagamento para finalizar a transação. Além disso, no caso do QR Code Dinâmico, o campo `receiver_conciliation_id` é utilizado para identificar o QR Code específico sendo pago, utilizado pelo recebedor para dar continuidade na operação após pagamento.

Ao decodificar um QR Code, deve enviar uma ordem de pagamento pix com o `end_to_end_id` e `receiver_conciliation_id`, e o banco recebedor saberá dar prosseguimento. Seguindo a mesma linha, ao receber um pagamento pix do tipo `static_qr_code` ou `dynamic_qr_code`, será enviado um webhook, tratado também no final dessa seção de QR Code.

---

# Listar QR Codes de um alias

URL: /documentation/pix_indireto/qr_code/listar_alias_qr_codes

A busca de QR Codes é utilizado para gerenciar o status de QR Codes dinâmicos, averiguar pagamentos, baixas, etc.

## Request

ENDPOINT /account/ ACCOUNT_KEY /alias/ ALIAS_KEY /qrcodes
MÉTODO GET

### Path params

| Campo                      | Tipo    | Descrição                                                        | Caracteres |
|----------------------------|---------|------------------------------------------------------------------|------------|
| `page`                     | integer | Número da página pesquisada (default = 0)                        | -          |
| `page_size`                | integer | Quantidade de itens por página (default = 15)                    | -          |
| `qr_code_status`           | string  | Status dos qr codes buscados                                     | -          |
| `qr_code_type`             | string  | Tipo dos qr codes buscados                                       | -          |
| `request_control_key`      | string  | Request control key que originou o qr code                       | -          |

## Response

STATUS 200 Ok

Response Body: Geral

```json
{
   "data":[
      {
         "request_control_key":"037b46b1-0c67-4c0d-aac3-1e395dfdcb10",
         "pix_key":"3d7d6a2b-f72f-44z7-bb20-79a94dff5645",
         "receiver_conciliation_id":"01GVGV9NXBCY287Z6CJ4S0ENW9",
         "qr_code_key":"d74bf12a-9243-4bfa-9b00-6b63755b6555",
         "qr_code_status":"active",
         "qr_code_type":"dynamic_instant",
         "amount":22.34,
         "expiration_seconds":864000,
         "expiration_date":null,
         "max_payment_days":null,
         "payer_name":"João da Silva",
         "payer_document_number":"00000000000000",
         "payer_request":"Payment for order XXXXXXXXXXXX",
         "rebate_amount":1,
         "interest_amount":2,
         "fine_amount":3,
         "discounts":[
            
         ],
         "additional_data":[
            {
               "key_name":"Juros e Multa",
               "value":"Juros 2 ao mes e multa de 1%"
            },
         ],
         "pix_transfer_key":null,
         "paid_amount":null,
         "base_64_payload":"<BASE64 DA URI DO PIX COPIA E COLA>",
         "qr_code_events":[
            {
               "request_control_key":"037b46b1-0c67-4c0d-aac3-1e395dfdcb10",
               "event_type":"registration",
               "created_at":"2023-03-03T12:04:06.179Z"
            },
            {
               "request_control_key":"cae915c8-1940-43ec-890b-ba1a3a66354c",
               "event_type":"payment",
               "created_at":"2023-03-03T12:04:06.179Z"
            },
         ],
         "created_at":"2023-03-03T12:04:06.179Z"
      },
   ],
   "pagination":{
      "current_page":1,
      "rows_per_page":30
   },
},
```

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `request_control_key` * | string | Identificador UUID4 único da request que originou o QR Code. | - |
| `pix_key` * | string | Chave Pix que representa a conta de destino da transação. | - |
| `receiver_conciliation_id` * | string | Identificador do QR Code para conciliação após o pagamento. | - |
| `qr_code_key` * | string | Chave UUID4 identificadora do QR Code. | - |
| `qr_code_status` * | string | Status do QR Code. | - |
| `qr_code_type` * | string | Tipo do QR Code. | "dynamic_term" ou "dynamic_instant" |
| `amount` * | float | Valor do QR Code antes do cálculo de descontos ou juros e multas. | - |
| `expiration_seconds`  | string | indica qual o tempo de validade do QR Code em segundos, padrão 1 dia. | - |
| `expiration_date` | date | Data de vencimento da cobrança (no formato "YYYY-MM-DD"). | - |
| `max_payment_days` | int32 | Dias máximos para pagamento da cobrança após vencimento. |  - |
| `payer_name` * | string | Nome do pagador. | - |
| `payer_document_number` * | string | CPF/ CNPJ do pagador. | - |
| `payer_request` * | string | Mensagem ao pagador. | - |
| `rebate_amount` | float | Valor absoluto de abatimento antes do pagamento. | - |
| `interest_amount` | float | Valor absoluto por dia de atraso após o vencimento, caso seja pago um dia após o vencimento o valor total será o valor ordinario + multa. |  - |
| `fine_amount` | float | Multa em valor absoluto após o vencimento. |  - |
| `discounts` | array of objects | Configurações de desconto. |  - |
| `additional_data` | array of objects | Informações que serão apresentadas para o pagador. | - |
| `pix_transfer_key` | string | Chave UUID4 identificadora da transação pix correspondente à liquidação do QR Code. | - |
| `paid_amount` | float | Valor do pagamento realizado, considerando multas, descontos e outros. | - |
| `base_64_payload` | string | URL do QR Code para pagamento, em base64. | - |
| `qr_code_events` | array of objects | Lista de mudanças de status pelas quais o QR Code passou. | - |
| `created_at` | datetime | Data e hora que o QR Code foi criado no sistema. | - |

### Objeto qr_code_status

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `active`  | string | QR Code se encontra ativo e disponível para pagamento. | - |
| `finished` | string | QR Code pago. | - |
| `written_off` | string | QR Code foi baixado pelo cliente. | - |
| `bank_written_off` | string | QR Code foi baixado automaticamente devido prazo expirado. | - |

### Objeto discount

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `discount_value` * | float |  Valor do desconto. | - |
| `discount_number` | int32 | Ordem que o desconto deve ser aplicado. | - |
| `discount_limit_date` | string | Data limite do desconto. | - |

### Objeto additional_data

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `key_name` * | string |  Nome do campo | - |
| `value` | string | Valor do campo | - |

### Objeto qr_code_events

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `request_control_key` * | string |  Identificador UUID4 único da request que originou o event. | - |
| `event_type` * | string |  Tipo de evento | "registration", "write_off", "payment" |
| `created_at` * | datetime | Data e hora que o evento foi criado. | - |

STATUS 404

Response Body

```json
{
    "title": "Not found",
    "description": "Could not find the queried QR Code.",
    "translation": "Não possível encontrar o QR Code buscado.",
    "code": "QRI000002"
}

```

---

# Webhook para Pix de Entrada de pagamento de QR Code

URL: /documentation/pix_indireto/qr_code/webhook_incoming_pix

Webhook que servirá para avisar sobre transações Pix que chegaram para um Alias de pagamento de um QR Code vinculado.

## Webhook Request Body

**Request Body: Pagamento QR Code Recebido**

```json
{
  "webhook_type": "baas.pix_qr_code.payment",
  "webhook_datetime": "2021-10-22T20:30:23.459Z",
  "data": {
    "request_control_key": "b6804f32-101e-4702-8fbc-c2dbc4c2caec",
    "pix_transfer_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "qr_code_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
    "qr_code_type": "dynamic_instant",
    "receiver_conciliation_id": "faf1ef5b-e0a9-4430-8aa4-367b4825854c",
    "amount": 10.63,
    "updated_at": "2021-10-22T20:30:23.459Z"
  }
}
```

### Webhook Body Param

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `request_control_key` * | string | Identificador UUID4 único da request que originou o QR Code. | - |
| `pix_transfer_key` * | string | Chave Pix que representa a conta de destino da transação. | - |
| `qr_code_key` * | string | Chave UUID4 identificadora do QR Code. | - |
| `qr_code_type` * | string | Tipo do QR Code. | "static", "dynamic_term" ou "dynamic_instant" |
| `receiver_conciliation_id` * | string | Identificador do QR Code para conciliação após o pagamento. | - |
| `amount` * | string | Valor do pagamento. | - |
| `updated_at` * | datetime | Data hora de pagamento QR Code. | - |

---

# Cancelar Relato de Infração

URL: /documentation/pix_indireto/relato_de_infracao/cancelar_relato_infracao

Se um pedido de Relato de Infração foi gerado erroneamente e o Participante Indireto deseja cancelá-lo, é possível fazê-lo utilizando o endpoint citado abaixo.

:::danger IMPORTANTE
Ressalta-se que apenas o Participante o qual CRIOU o Relato de Infração pode cancelá-lo, e o cancelamento pode ser realizado mesmo que o status da infração seja de closed.
:::

:::info IMPORTANTE
Relatos de infração cancelados podem ser listados utilizando o endpoint [Listar Relatos de Infração](#listar-relatos-de-infração)
:::

## Request

ENDPOINT /pix/infraction_report/ INFRACTION_REPORT_KEY
MÉTODO PATCH

**Request Body**

```json
{
    "infraction_report_status": "cancelled",
    "request_control_key": "750cbfa0-f628-4944-a76c-9053bf1ebc87",
}
```

### Path Params
| Campo                   | Tipo   | Descrição                                                     | Caracteres |
| ----------------------- | ------ | ------------------------------------------------------------- | ---------- |
| `infraction_report_key` | string | UUID4 do Relato de Infração criado o qual se deseja cancelar. | 36         |

### Body Params

| Campo                        | Tipo   | Descrição                                                                          | Caracteres |
| ---------------------------- | ------ | ---------------------------------------------------------------------------------- | ---------- |
| `infraction_report_status` * | string | Status o qual se deseja atualizar o Relato de Infração.                            | 36         |
| `request_control_key` *      | string | Chave única de identificação da request utilizada pelo cliente no formato uuid v4. | 36         |

## Response

STATUS 200

**Response Body**

```json
{
   "infraction_report_key":"d7820e2f-1c23-4610-83d6-d9aad1845075",
   "pix_transfer_key":"cdcf0d25-08a1-46e3-902a-6d7ca75e6c48",
   "end_to_end_id":"E99999011202406251332F8n7dMUwOLE",
   "infraction_report_status":"cancelled",
   "infraction_report_situation":"scam",
   "infraction_report_type":"refund_request",
   "infraction_report_details":"usuario caiu em golpe…",
   "debited_participant":"99999010",
   "credited_participant":"99999011",
   "infraction_report_direction": "outgoing",
   "created_at": "2023-03-03T12:04:06.179Z",
   "updated_at": "2023-03-03T12:05:03.421Z"
}
```

### Body Params
| Campo                           | Tipo   | Descrição                                                                                     | Caracteres                                                                                |
| ------------------------------- | ------ | --------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| `infraction_report_key` *       | string | Identificador único do relato de infração.                                                    | 36                                                                                        |
| `pix_transfer_key` *            | string | Identificador único da transação PIX.                                                         | 36                                                                                        |
| `end_to_end_id` *               | string | Identificador único da transação PIX no BACEN.                                                | 36                                                                                        |
| `infraction_report_status` *    | enum   | Status acerca do Relato de Infração                                                           | **[Enumeradores infraction_report_status](#enumeradores-infraction_report_status)**       |
| `infraction_report_situation` * | enum   | Situação em que ocorreu a infração.                                                           | **[Enumeradores infraction_report_situation](#enumeradores-infraction_report_situation)** |
| `infraction_report_type` *      | enum   | Tipo de Relato de Infração.                                                                   | **[Enumeradores infraction_report_type](#enumeradores-infraction_report_type)**           |
| `infraction_report_details`     | string | Detalhes acerca do Relato de Infração criado.                                                 | \<\= 2000                                                                                 |
| `credited_participant` *        | string | ISPB do Participante Creditado.                                                               | 8                                                                                         |
| `debited_participant` *         | string | ISPB do Participante Debitado.                                                                | 8                                                                                         |
| `infraction_report_direction` * | enum   | Enumerador acerca se o relato foi aberto pelo Participante Indireto ou por outro Participante | **[Enumeradores infraction_report_direction](#enumeradores-infraction_report_direction)** |
| `created_at` *                  | string | Data de criação do Relato de Infração                                                         | 24                                                                                        |
| `updated_at` *                  | string | Data de atualização do Relato de Infração                                                     | 24                                                                                        |

### Enumeradores infraction_report_status
| Campo          | Tipo   | Descrição                                                                     | Caracteres |
| -------------- | ------ | ----------------------------------------------------------------------------- | ---------- |
| `open`         | string | Relato de infração foi <strong>criado</strong> e está aberto no BACEN.        | -          |
| `acknowledged` | string | Relato de infração foi <strong>recebido</strong> pelo participante contestado | -          |
| `cancelled`    | string | Relato de infração está <strong>cancelado</strong> no BACEN                   | -          |
| `closed`       | string | Relato de infração está <strong>fechado</strong> no BACEN                     | -          |

### Enumeradores infraction_report_situation
| Campo               | Tipo   | Descrição                                               | Caracteres |
| ------------------- | ------ | ------------------------------------------------------- | ---------- |
| `scam`              | string | Causa de golpe ou estelionato.                          | -          |
| `account_takeover`  | string | Causa de transação não autorizada pela conta de origem. | -          |
| `coercion`          | string | Causa de crime de coerção.                              | -          |
| `fraudulent_access` | string | Causa de acesso fraudulento à conta de origem.          | -          |
| `other`             | string | Quaisquer causas não aplicáveis às listadas acima.      | -          |

### Enumeradores infraction_report_type
| Campo              | Tipo   | Descrição                                                              | Caracteres |
| ------------------ | ------ | ---------------------------------------------------------------------- | ---------- |
| `refund_request`   | string | Relato de infração será gerado a fim de se solicitar uma devolução.    | -          |
| `refund_cancelled` | string | Relato de infração será gerado pelo motivo de uma devolução cancelada. | -          |

### Enumeradores infraction_report_direction
| Campo      | Tipo   | Descrição                                                     | Caracteres |
| ---------- | ------ | ------------------------------------------------------------- | ---------- |
| `incoming` | string | Relato de infração com participante indireto como alvo.       | -          |
| `outgoing` | string | Relato de infração com participante indireto como originador. | -          |

---

# Consultar Relato de Infração

URL: /documentation/pix_indireto/relato_de_infracao/consultar_relato_infracao

O Participante Indireto pode consultar os dados acerca de um Relato de Infração, inclusive todas as alterações que ocorreram com o mesmo.

## Request

ENDPOINT /pix/infraction_report/ INFRACTION_REPORT_KEY
MÉTODO GET

### Path Params
| Campo                   | Tipo   | Descrição                    | Caracteres |
| ----------------------- | ------ | ---------------------------- | ---------- |
| `infraction_report_key` | string | UUID4 do Relato de Infração. | 36         |

## Response

STATUS 200

**Response Body**

```json
{
   "infraction_report_key":"d7820e2f-1c23-4610-83d6-d9aad1845075",
   "pix_transfer_key":"cdcf0d25-08a1-46e3-902a-6d7ca75e6c48",
   "end_to_end_id":"E99999010202406251332F8n7dMUwOLE",
   "infraction_report_status":"cancelled",
   "infraction_report_situation":"scam",
   "infraction_report_type":"refund_request",
   "report_details":"usuario caiu em golpe…",
   "debited_participant":"99999011",
   "credited_participant":"99999010",
   "infraction_report_direction": "incoming",
   "infraction_report_events": [
     {
       "event_type": "acknowledged",
       "event_details": "Relato de Infração recebido e em análise",
       "created_at": "2023-03-03T12:04:06.179Z"
     },
     {
       "event_type": "cancelled",
       "event_details": "Relato de Infração cancelado",
       "created_at": "2023-03-03T12:04:06.179Z"
     }
   ],
  "created_at": "2023-03-03T12:04:06.179Z",
  "updated_at": "2023-03-03T12:04:06.179Z"
}
```

### Body Params
| Campo                           | Tipo   | Descrição                                                                                     | Caracteres                                                                                |
| ------------------------------- | ------ | --------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| `infraction_report_key` *       | string | Identificador único do relato de infração.                                                    | 36                                                                                        |
| `pix_transfer_key` *            | string | Identificador único da transação PIX.                                                         | 36                                                                                        |
| `end_to_end_id` *               | string | Identificador único da transação PIX no BACEN.                                                | 36                                                                                        |
| `infraction_report_status` *    | enum   | Status .                                                                                      | **[Enumeradores infraction_report_status](#enumeradores-infraction_report_status)**       |
| `infraction_report_situation` * | enum   | Situação em que ocorreu a infração.                                                           | **[Enumeradores infraction_report_situation](#enumeradores-infraction_report_situation)** |
| `infraction_report_type` *      | enum   | Tipo de Relato de Infração.                                                                   | **[Enumeradores infraction_report_type](#enumeradores-infraction_report_type)**           |
| `infraction_report_details`     | string | Detalhes acerca do Relato de Infração criado.                                                 | \<\= 2000                                                                                 |
| `credited_participant` *        | string | ISPB do Participante Creditado.                                                               | 8                                                                                         |
| `debited_participant` *         | string | ISPB do Participante Debitado.                                                                | 8                                                                                         |
| `infraction_report_direction` * | enum   | Enumerador acerca se o relato foi aberto pelo Participante Indireto ou por outro Participante | **[Enumeradores infraction_report_direction](#enumeradores-infraction_report_direction)** |
| `infraction_report_events`*     | object | Eventos relacionados ao Relato de Infração.                                                   | **[Objetos infraction_report_events](#objetos-infraction_report_events)**                 |
| `created_at` *                  | string | Horário de criação do Relato de Infração                                                      | 24                                                                                        |
| `updated_at`                    | string | Horário de atualização do Relato de Infração                                                  | 24                                                                                        |

### Enumeradores infraction_report_status

| Campo          | Tipo   | Descrição                                                                     | Caracteres |
| -------------- | ------ | ----------------------------------------------------------------------------- | ---------- |
| `open`         | string | Relato de infração foi <strong>criado</strong> e está aberto no BACEN.        | 4          |
| `acknowledged` | string | Relato de infração foi <strong>recebido</strong> pelo participante contestado | 12         |
| `cancelled`    | string | Relato de infração está <strong>cancelado</strong> no BACEN                   | 9          |
| `closed`       | string | Relato de infração está <strong>fechado</strong> no BACEN                     | 6          |

### Enumeradores infraction_report_situation
| Campo               | Tipo   | Descrição                                               | Caracteres |
| ------------------- | ------ | ------------------------------------------------------- | ---------- |
| `scam`              | string | Causa de golpe ou estelionato.                          | -          |
| `account_takeover`  | string | Causa de transação não autorizada pela conta de origem. | -          |
| `coercion`          | string | Causa de crime de coerção.                              | -          |
| `fraudulent_access` | string | Causa de acesso fraudulento à conta de origem.          | -          |
| `other`             | string | Quaisquer causas não aplicáveis às listadas acima.      | -          |

### Enumeradores infraction_report_type
| Campo              | Tipo   | Descrição                                                              | Caracteres |
| ------------------ | ------ | ---------------------------------------------------------------------- | ---------- |
| `refund_request`   | string | Relato de infração será gerado a fim de se solicitar uma devolução.    | -          |
| `refund_cancelled` | string | Relato de infração será gerado pelo motivo de uma devolução cancelada. | -          |

### Enumeradores infraction_report_direction
| Campo      | Tipo   | Descrição                                                     | Caracteres |
| ---------- | ------ | ------------------------------------------------------------- | ---------- |
| `incoming` | string | Relato de infração com participante indireto como alvo.       | -          |
| `outgoing` | string | Relato de infração com participante indireto como originador. | -          |

### Objetos infraction_report_events
| Campo           | Tipo   | Descrição                                | Caracteres                                                                          |
| --------------- | ------ | ---------------------------------------- | ----------------------------------------------------------------------------------- |
| `event_type`    | enum   | Mudança de status relacionada ao evento. | **[Enumeradores infraction_report_status](#enumeradores-infraction_report_status)** |
| `event_details` | string | Descrição do evento.                     | -                                                                                   |
| `created_at` *  | string | Horário de criação do evento             | 24                                                                                  |

---

# Abrir Relato de Infração

URL: /documentation/pix_indireto/relato_de_infracao/criar_relato_infracao

O Relato de Infração é um dos serviços o qual compoẽ o Mecanismo Especial de Devolução (MED) como definido pelo Banco Central do Brasil.

Quando há um indício de uma transação, pedido de devolução ou cancelamento de pedido de devolução fraudulentos, é possível criar um relato de infração a fim de se informar o BACEN e o outro Participante que há uma irregularidade em uma destas operações citadas. 

Tanto o Participante debitado quanto creditado podem criar um Relato de Infração.

:::caution **Atenção**

A fim de se compreender o fluxo de Relato de Infração, é necessário saber quais ENDPOINTS o Participante Indireto que criou o relato pode utilizar.

Quando o Participante Indireto abre um Relato de Infração, este pode (se necessário) cancelar o relato caso tenha sido gerado de maneira indevida.

Quando o Participante Indireto recebe um Relato de Infração, este deve fechá-lo informando o resultado da análise do relato.

Ambos os fluxos citados serão descritos nas seções seguintes.

:::

:::danger IMPORTANTE
O Banco Central do Brasil define que, dentro de um período de 7 dias do recebimento do Relato de Infração pelo Participante Indireto, o Relato precisa ser fechado .

Caso haja atraso por parte do Participante Indireto, a QI Tech irá fechar o Relato de Infração, com o status de agreed , a fim de que a instituição não seja penalizada pelo Banco Central do Brasil.
:::

:::info IMPORTANTE
Apenas o participante originador da transferência pode criar um relato de infração sobre a mesma
:::

## Request

ENDPOINT /pix/infraction_report
MÉTODO POST

**Request Body**

```json
{
    "pix_transfer_key": "c09fef15-ab30-469c-a1d4-4e9dd479943a",
    "request_control_key": "c09fef15-ab30-469c-a1d4-4e9dd479943a",
    "infraction_report_type": "refund_request",
    "infraction_report_details": "Foi identificado uma fraude na transação",
    "infraction_report_situation": "scam"
}
```

### Body Params

| Campo                         | Tipo   | Descrição                                             | Caracteres                                                                                |
| ----------------------------- | ------ | ----------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| `request_control_key` *       | uuidv4 | UUID4 para fins de consulta sobre a requisição feita. | 36                                                                                        |
| `pix_transfer_key` *          | uuidv4 | Identificador único da transação PIX.                 | 36                                                                                        |
| `infraction_report_type` *    | enum   | Tipo de relato de infração a ser criado.              | **[Enumeradores infraction_report_type](#enumeradores-infraction_report_type)**                  |
| `infraction_report_details`   | string | Detalhes acerca do relato de infração a ser criado.   | 10                                                                                        |
| `infraction_report_situation` | string | Situação em que ocorreu a infração.                   | **[Enumeradores infraction_report_situation](#enumeradores-infraction_report_situation)** |

### Enumeradores infraction_report_type

| Campo              | Tipo   | Descrição                                                             | Caracteres |
| ------------------ | ------ | --------------------------------------------------------------------- | ---------- |
| `refund_cancelled` | string | Relato de infração será gerado pelo motivo de uma devolução cancelada | 16         |
| `refund_request`   | string | Relato de infração será gerado a fim de se solicitar uma devolução    | 14         |

### Enumeradores infraction_report_situation

| Campo               | Tipo   | Descrição                                               | Caracteres |
| ------------------- | ------ | ------------------------------------------------------- | ---------- |
| `scam`              | string | Causa de golpe ou estelionato.                          | -          |
| `account_takeover`  | string | Causa de transação não autorizada pela conta de origem. | -          |
| `coercion`          | string | Causa de crime de coerção.                              | -          |
| `fraudulent_access` | string | Causa de acesso fraudulento à conta de origem.          | -          |
| `other`             | string | Quaisquer causas não aplicáveis às listadas acima.      | -          |

## Response

STATUS 200

**Response Body**

```json
{
    "infraction_report_key":"d7820e2f-1c23-4610-83d6-d9aad1845075",
    "pix_transfer_key":"cdcf0d25-08a1-46e3-902a-6d7ca75e6c48",
    "end_to_end_id":"E99999010202406251332F8n7dMUwOLE",
    "infraction_report_status":"acknowledged",
    "infraction_report_situation":"scam",
    "infraction_report_type":"refund_request",
    "report_details":"usuario caiu em golpe…",
    "debited_participant":"99999011",
    "credited_participant":"99999010",
    "infraction_report_direction": "outgoing",
    "created_at": "2023-03-03T12:04:06.179Z",
    "updated_at": "2023-03-03T12:04:06.179Z"
}
```

### Body Params

| Campo                           | Tipo   | Descrição                                                                                     | Caracteres                                                                                |
| ------------------------------- | ------ | --------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| `infraction_report_key` *       | string | Identificador único do relato de infração.                                                    | 36                                                                                        |
| `pix_transfer_key` *            | string | Identificador único da transação PIX.                                                         | 36                                                                                        |
| `end_to_end_id` *               | string | Identificador único da transação PIX no BACEN.                                                | 36                                                                                        |
| `infraction_report_status` *    | enum   | Status .                                                                                      | **[Enumeradores infraction_report_status](#enumeradores-infraction_report_status)**       |
| `infraction_report_situation` * | enum   | Situação em que ocorreu a infração.                                                           | **[Enumeradores infraction_report_situation](#enumeradores-infraction_report_situation)** |
| `infraction_report_type` *      | enum   | Tipo de Relato de Infração.                                                                   | **[Enumeradores infraction_report_type](#enumeradores-infraction_report_type)**           |
| `infraction_report_details`     | string | Detalhes acerca do Relato de Infração criado.                                                 | \<\= 2000                                                                                 |
| `credited_participant` *        | string | ISPB do Participante Creditado.                                                               | 8                                                                                         |
| `debited_participant` *         | string | ISPB do Participante Debitado.                                                                | 8                                                                                         |
| `infraction_report_direction` * | enum   | Enumerador acerca se o relato foi aberto pelo Participante Indireto ou por outro Participante | **[Enumeradores infraction_report_direction](#enumeradores-infraction_report_direction)** |
| `created_at` *                  | string | Horário de criação do Relato de Infração                                                      | 24                                                                                        |
| `updated_at`                    | string | Horário de atualização do Relato de Infração                                                  | 24                                                                                        |

### Enumeradores infraction_report_status

| Campo          | Tipo   | Descrição                                                                     | Caracteres |
| -------------- | ------ | ----------------------------------------------------------------------------- | ---------- |
| `open`         | string | Relato de infração foi <strong>criado</strong> e está aberto no BACEN.        | -          |
| `acknowledged` | string | Relato de infração foi <strong>recebido</strong> pelo participante contestado | -          |
| `cancelled`    | string | Relato de infração está <strong>cancelado</strong> no BACEN                   | -          |
| `closed`       | string | Relato de infração está <strong>fechado</strong> no BACEN                     | -          |

### Enumeradores infraction_report_direction
| Campo      | Tipo   | Descrição                                                     | Caracteres |
| ---------- | ------ | ------------------------------------------------------------- | ---------- |
| `incoming` | string | Relato de infração com participante indireto como alvo.       | -          |
| `outgoing` | string | Relato de infração com participante indireto como originador. | -          |

---

# Fechar Relato de Infração

URL: /documentation/pix_indireto/relato_de_infracao/fechar_relato_infracao

A QI Tech será responsável por realizar um pooling no Banco Central do Brasil a fim de se verificar se há Relato(s) de Infração criados por outros Participantes para o Participante Indireto, e enviará o webhook de recebimento já com o status acknowledged para o mesmo.

A fim de informar o Participante Indireto de que há um Relato de Infração a ser respondido pelo mesmo, a QI Tech irá fazer um webhook de recebimento no mesmo.

:::danger IMPORTANTE
Ressalta-se que apenas o Participante o qual RECEBEU o Relato de Infração pode fechá-lo.
:::

:::danger IMPORTANTE
O Banco Central do Brasil define que, dentro de um período de 7 dias do recebimento do Relato de Infração pelo Participante Indireto, o Relato precisa ser fechado .

Caso haja atraso por parte do Participante Indireto, a QI Tech irá fechar o Relato de Infração, com o status de agreed, 6 dias corridos após o envio do webhook de recebimento da infração, a fim de que a instituição não seja penalizada pelo Banco Central do Brasil.
:::

Para o fechamento do relato de infração, o status deve ser acknowledged .

## Request

ENDPOINT /pix/infraction_report/ INFRACTION_REPORT_KEY
MÉTODO PATCH

**Request Body - Aceite**

```json
{
    "infraction_report_status": "closed",
    "request_control_key": "feb59932-be7a-4584-9830-02ed8bc0aa77",
    "analysis_result": "agreed",
    "fraud_type": "application_fraud",
    "analysis_details": "Valor bloqueado. Para mais informações ligue para (11) 98871-1385.",
}
```

**Request Body - Recusa**

```json
{
    "infraction_report_status": "closed",
    "request_control_key": "feb59932-be7a-4584-9830-02ed8bc0aa77",
    "analysis_result": "disagreed",
    "analysis_details": "Valor bloqueado. Para mais informações ligue para (11) 98871-1385.",
}
```

### Path Params
| Campo                   | Tipo   | Descrição                                                   | Caracteres |
| ----------------------- | ------ | ----------------------------------------------------------- | ---------- |
| `infraction_report_key` | string | UUID4 do Relato de Infração criado o qual se deseja fechar. | 36         |

### Body Params

| Campo                        | Tipo   | Descrição                                                                                                    | Caracteres                                                                          |
| ---------------------------- | ------ | ------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------- |
| `analysis_result` *          | enum   | Resultado da análise.                                                                                        | **[Enumeradores analysis_result](#enumeradores-analysis_result)**                   |
| `request_control_key` *      | uuidv4 | UUID4 para fins de consulta sobre a requisição feita.                                                        | 36                                                                                  |
| `infraction_report_status` * | enum   | Status o qual se deseja 'setar' o relato de infração.                                                        | **[Enumeradores infraction_report_status](#enumeradores-infraction_report_status)** |
| `fraud_type`                 | enum   | Tipo de fraude constatada. Não pertencente à entidade infraction report, porém necessário para o fechamento. | **[Enumeradores fraud_type](#enumeradores-fraud_type)**                             |
| `analysis_details`           | string | Descrição acerca do resultado da análise                                                                     | 250                                                                                 |

### Enumeradores analysis_result

| Campo       | Tipo   | Descrição                                                                                                  | Caracteres |
| ----------- | ------ | ---------------------------------------------------------------------------------------------------------- | ---------- |
| `agreed`    | string | O Participante Indireto <strong>concorda</strong> com o Relato de Infração criado pelo outro Participante. | -          |
| `disagreed` | string | O Participante Indireto <strong>discorda</strong> com o Relato de Infração criado pelo outro Participante. | -          |

### Enumeradores infraction_report_status

| Campo          | Tipo   | Descrição                                                              | Caracteres |
| -------------- | ------ | ---------------------------------------------------------------------- | ---------- |
| `open`         | string | Relato de infração foi <strong>criado</strong> e está aberto no BACEN. | -          |
| `acknowledged` | string | Relato de infração foi <strong>recebido</strong> pelo participante     | -          |
| `cancelled`    | string | Relato de infração está <strong>cancelado</strong> no BACEN            | -          |
| `closed`       | string | Relato de infração está <strong>fechado</strong> no BACEN              | -          |

### Enumeradores fraud_type

| Campo               | Tipo   | Descrição                                                            | Caracteres |
| ------------------- | ------ | -------------------------------------------------------------------- | ---------- |
| `application_fraud` | string | Fraude por falsidade ideológica, com documentos de outra pessoa.     | -          |
| `mule_account`      | string | Fraude por conta laranja, aberta de forma legítma.                   | -          |
| `scammer_account`   | string | Fraude na qual a conta destino esta no nome do verdadeiro fraudador. | -          |
| `other`             | string | Fraude de outra naturaza, não enquadrada nos enumeradores acima.     | -          |

## Response

STATUS 200

**Response Body**

```json
{
   "infraction_report_key":"d7820e2f-1c23-4610-83d6-d9aad1845075",
   "pix_transfer_key":"cdcf0d25-08a1-46e3-902a-6d7ca75e6c48",
   "end_to_end_id":"E99999011202406251332F8n7dMUwOLE",
   "infraction_report_status":"cancelled",
   "infraction_report_situation":"scam",
   "infraction_report_type":"refund_request",
   "infraction_report_details":"usuario caiu em golpe…",
   "debited_participant":"99999010",
   "credited_participant":"99999011",
   "analysis_result": "agreed",
   "analysis_details": "Valor bloqueado. Para mais informações ligue para (11) 98871-1385.",
   "infraction_report_direction": "incoming",
   "created_at": "2023-03-03T12:04:06.179Z",
   "updated_at": "2023-03-03T12:05:03.421Z",
}
```

### Body Params
| Campo                           | Tipo   | Descrição                                                                                     | Caracteres                                                                                |
| ------------------------------- | ------ | --------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| `infraction_report_key` *       | string | Identificador único do relato de infração.                                                    | 36                                                                                        |
| `pix_transfer_key` *            | string | Identificador único da transação PIX.                                                         | 36                                                                                        |
| `end_to_end_id` *               | string | Identificador único da transação PIX no BACEN.                                                | 36                                                                                        |
| `infraction_report_status` *    | enum   | Status acerca do Relato de Infração                                                           | **[Enumeradores infraction_report_status](#enumeradores-infraction_report_status)**       |
| `infraction_report_situation` * | enum   | Situação em que ocorreu a infração.                                                           | **[Enumeradores infraction_report_situation](#enumeradores-infraction_report_situation)** |
| `infraction_report_type` *      | enum   | Tipo de Relato de Infração.                                                                   | **[Enumeradores infraction_report_type](#enumeradores-infraction_report_type)**           |
| `infraction_report_details`     | string | Detalhes acerca do Relato de Infração criado.                                                 | \<\= 2000                                                                                 |
| `credited_participant` *        | string | ISPB do Participante Creditado.                                                               | 8                                                                                         |
| `debited_participant` *         | string | ISPB do Participante Debitado.                                                                | 8                                                                                         |
| `analysis_result` *             | string | Resultado da análise.                                                                         | **[Enumeradores analysis_result](#enumeradores-analysis_result)**                         |
| `analysis_details` *            | string | Descrição acerca do resultado da análise.                                                     | 250                                                                                       |
| `infraction_report_direction` * | enum   | Enumerador acerca se o relato foi aberto pelo Participante Indireto ou por outro Participante | **[Enumeradores infraction_report_direction](#enumeradores-infraction_report_direction)** |
| `created_at` *                  | string | Data de criação do Relato de Infração                                                         | 24                                                                                        |
| `updated_at` *                  | string | Data de atualização do Relato de Infração                                                     | 24                                                                                        |

### Enumeradores infraction_report_situation

| Campo               | Tipo   | Descrição                                               | Caracteres |
| ------------------- | ------ | ------------------------------------------------------- | ---------- |
| `scam`              | string | Causa de golpe ou estelionato.                          | -          |
| `account_takeover`  | string | Causa de transação não autorizada pela conta de origem. | -          |
| `coercion`          | string | Causa de crime de coerção.                              | -          |
| `fraudulent_access` | string | Causa de acesso fraudulento à conta de origem.          | -          |
| `other`             | string | Quaisquer causas não aplicáveis às listadas acima.      | -          |

### Enumeradores infraction_report_type

| Campo              | Tipo   | Descrição                                                              | Caracteres |
| ------------------ | ------ | ---------------------------------------------------------------------- | ---------- |
| `refund_request`   | string | Relato de infração será gerado a fim de se solicitar uma devolução.    | -          |
| `refund_cancelled` | string | Relato de infração será gerado pelo motivo de uma devolução cancelada. | -          |

### Enumeradores infraction_report_direction

| Campo      | Tipo   | Descrição                                                     | Caracteres |
| ---------- | ------ | ------------------------------------------------------------- | ---------- |
| `incoming` | string | Relato de infração com participante indireto como alvo.       | -          |
| `outgoing` | string | Relato de infração com participante indireto como originador. | -          |

---

# Listar Relatos de Infração

URL: /documentation/pix_indireto/relato_de_infracao/listar_relatos

Caso o Participante Indireto solicite a listagem de Relatos de Infração, pode fazê-lo por meio da rota abaixo.
## Request

ENDPOINT /pix/infraction_reports
MÉTODO GET

### Query Params
| Campo | Tipo | Descrição | Caracteres |
|---|---| ---| ---|
| `infraction_report_status` | enum | Status do Relato de Infração. | **[Enumeradores infraction_report_status](#enumeradores-infraction_report_status)** |
| `infraction_report_type` | enum | Tipo do Relato de Infração. | **[Enumeradores infraction_report_type](#enumeradores-infraction_report_type)** |
| `initial_date` | string | Data inicial de busca. | **[Formato de data](#formato-de-data)** |
| `final_date` | string | Data final de busca. | **[Formato de data](#formato-de-data)** |
| `page_number` | integer | Página atual que está sendo consultada. | - |
| `page_size` | integer | Quantidade de resultados por página. | - |

### Formato de data

| Campo | Tipo | Descrição | Caracteres |
|---|---| ---| ---|
| `initial_date` | string | Data de inicio para a procura, em formato "%Y-%m-%d. Exemplo: "2023-10-09".| 10 |
| `final_date` | string | Data final para a procura, em formato "%Y-%m-%d. Exemplo: "2023-10-11".| 10 |

## Response

STATUS 200

**Response Body**

```json
{
    "data": [
        {
            "infraction_report_key":"2b4b262d-fa31-4bb5-87f9-52ef1d243275",
            "pix_transfer_key":"16125a82-1842-4f29-a895-c80e14c70e44",
            "end_to_end_id":"E99999010202406251332F8n7dMUwOLE",
            "infraction_report_status":"cancelled",
            "infraction_report_situation":"scam",
            "infraction_report_type":"refund_request",
            "report_details":"usuario caiu em golpe…",
            "debited_participant":"99999011",
            "credited_participant":"99999010",
            "infraction_report_direction": "incoming",
            "infraction_report_events": [
                {
                "event_type": "acknowledged",
                "event_details": "Relato de Infração recebido e em análise",
                "created_at": "2023-03-03T12:04:06.179Z"
                },
                {
                "event_type": "cancelled",
                "event_details": "Relato de Infração cancelado",
                "created_at": "2023-03-03T12:04:06.179Z"
                }
            ],
            "created_at": "2023-03-03T12:04:06.179Z",
            "updated_at": "2023-03-03T12:04:06.179Z"
        },
        {
            "infraction_report_key":"facb89f7-49bb-41fd-8a4d-98792880a6f2",
            "pix_transfer_key":"a913cfb4-0c4a-4069-99f2-7ab34b6a4bf9",
            "end_to_end_id":"E99999010202406251332F8n7dMUwOLA",
            "infraction_report_status":"acknowledged",
            "infraction_report_situation":"scam",
            "infraction_report_type":"refund_request",
            "report_details":"usuario caiu em golpe de novo…",
            "debited_participant":"99999011",
            "credited_participant":"99999010",
            "infraction_report_direction": "incoming",
            "infraction_report_events": [
                {
                "event_type": "acknowledged",
                "event_details": "Relato de Infração recebido e em análise",
                "created_at": "2023-03-03T12:04:06.179Z"
                },
            ],
            "created_at": "2023-03-03T12:04:06.179Z",
            "updated_at": "2023-03-03T12:04:06.179Z"
        },
    ],
    "pagination": {
        "current_page": 1,
        "next_page": null,
        "rows_per_page": 10
    }
}
```

### Body Params
| Campo                           | Tipo   | Descrição                                                                                     | Caracteres                                                                                |
| ------------------------------- | ------ | --------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| `infraction_report_key` *       | string | Identificador único do relato de infração.                                                    | 36                                                                                        |
| `pix_transfer_key` *            | string | Identificador único da transação PIX.                                                         | 36                                                                                        |
| `end_to_end_id` *               | string | Identificador único da transação PIX no BACEN.                                                | 36                                                                                        |
| `infraction_report_status` *    | enum   | Status .                                                                                      | **[Enumeradores infraction_report_status](#enumeradores-infraction_report_status)**       |
| `infraction_report_situation` * | enum   | Situação em que ocorreu a infração.                                                           | **[Enumeradores infraction_report_situation](#enumeradores-infraction_report_situation)** |
| `infraction_report_type` *      | enum   | Tipo de Relato de Infração.                                                                   | **[Enumeradores infraction_report_type](#enumeradores-infraction_report_type)**           |
| `infraction_report_details`     | string | Detalhes acerca do Relato de Infração criado.                                                 | \<\= 2000                                                                                 |
| `credited_participant` *        | string | ISPB do Participante Creditado.                                                               | 8                                                                                         |
| `debited_participant` *         | string | ISPB do Participante Debitado.                                                                | 8                                                                                         |
| `infraction_report_direction` * | enum   | Enumerador acerca se o relato foi aberto pelo Participante Indireto ou por outro Participante | **[Enumeradores infraction_report_direction](#enumeradores-infraction_report_direction)** |
| `infraction_report_events`*     | object | Eventos relacionados ao Relato de Infração.                                                   | **[Objetos infraction_report_events](#objetos-infraction_report_events)**                 |
| `created_at` *                  | string | Horário de criação do Relato de Infração                                                      | 24                                                                                        |
| `updated_at`                    | string | Horário de atualização do Relato de Infração                                                  | 24                                                                                        |

### Enumeradores infraction_report_status

| Campo          | Tipo   | Descrição                                                                     | Caracteres |
| -------------- | ------ | ----------------------------------------------------------------------------- | ---------- |
| `open`         | string | Relato de infração foi <strong>criado</strong> e está aberto no BACEN.        | 4          |
| `acknowledged` | string | Relato de infração foi <strong>recebido</strong> pelo participante contestado | 12         |
| `cancelled`    | string | Relato de infração está <strong>cancelado</strong> no BACEN                   | 9          |
| `closed`       | string | Relato de infração está <strong>fechado</strong> no BACEN                     | 6          |

### Enumeradores infraction_report_situation
| Campo               | Tipo   | Descrição                                               | Caracteres |
| ------------------- | ------ | ------------------------------------------------------- | ---------- |
| `scam`              | string | Causa de golpe ou estelionato.                          | -          |
| `account_takeover`  | string | Causa de transação não autorizada pela conta de origem. | -          |
| `coercion`          | string | Causa de crime de coerção.                              | -          |
| `fraudulent_access` | string | Causa de acesso fraudulento à conta de origem.          | -          |
| `other`             | string | Quaisquer causas não aplicáveis às listadas acima.      | -          |

### Enumeradores infraction_report_type
| Campo              | Tipo   | Descrição                                                              | Caracteres |
| ------------------ | ------ | ---------------------------------------------------------------------- | ---------- |
| `refund_request`   | string | Relato de infração será gerado a fim de se solicitar uma devolução.    | -          |
| `refund_cancelled` | string | Relato de infração será gerado pelo motivo de uma devolução cancelada. | -          |

### Enumeradores infraction_report_direction
| Campo      | Tipo   | Descrição                                                     | Caracteres |
| ---------- | ------ | ------------------------------------------------------------- | ---------- |
| `incoming` | string | Relato de infração com participante indireto como alvo.       | -          |
| `outgoing` | string | Relato de infração com participante indireto como originador. | -          |

### Objetos infraction_report_events
| Campo           | Tipo   | Descrição                                | Caracteres                                                                          |
| --------------- | ------ | ---------------------------------------- | ----------------------------------------------------------------------------------- |
| `event_type`    | enum   | Mudança de status relacionada ao evento. | **[Enumeradores infraction_report_status](#enumeradores-infraction_report_status)** |
| `event_details` | string | Descrição do evento.                     | -                                                                                   |
| `created_at` *  | string | Horário de criação do evento             | 24                                                                                  |

---

# Introdução ao fluxo de Relato de Infração

URL: /documentation/pix_indireto/relato_de_infracao/maquina_estados

## Introdução

O Banco Central do Brasil permite que, caso haja uma infração em uma transação PIX, podendo esta ser uma transação comum ou uma devolução, que o Participante Indireto possa informar o outro Participante envolvido no fluxo de que há uma irregularidade.

:::info 

Ressalta-se que, para uma transação PIX, somente o Participante creditado pode abrir um Relato de Infração.

:::

:::danger IMPORTANTE

O Banco Central do Brasil define que, dentro de um período de 7 dias do recebimento do Relato de Infração pelo Participante Indireto, o Relato precisa ser fechado .

Caso haja atraso por parte do Participante Indireto, a QI Tech irá fechar o Relato de Infração, com o status de agreed, 6 dias corridos após o envio do webhook de recebimento da infração, a fim de que a instituição não seja penalizada pelo Banco Central do Brasil.

:::

## Máquina de Estados Infraction_Report_Status

| Enumerador | Tradução | Descrição|
|---|---|---|
|  open  | aberto | Após o processamento da <strong>criação</strong> do Relato de Infração, o mesmo fica aberto no BACEN. 
|  acknowledged  | recebido | A QI Tech recebeu um Relato de Infração o qual possui o Participante Indireto como alvo, e irá encaminhá-lo (relato) via webhook. 
|  cancelled  | cancelado | O Participante que abriu o relato enviou o cancelamento e o mesmo está <strong>cancelado</strong> no BACEN.
|  closed  | fechado | O fechamento do Relato de Infração foi processado pela QI Tech e está <strong>fechado</strong> no BACEN.

## Controle da Máquina de Estados Infraction_Report_Status

Mesmo o fluxo sendo síncrono, é necessário que o Participante Indireto conheça os status os quais um Relato de Infração pode ter. Abaixo, está descrito o que o Participante pode esperar após abrir, cancelar, completar e receber um Relato de Infração.

### Participante Abre Relato de Infração

O Participante Indireto pode abrir um Relato de Infração no Banco Central. O único requisito, para a abertura do Relato, é de que uma transação tenha sido feita via PIX.

O Participante Indireto não pode abrir um segundo Relato de Infração para uma mesma transação, mesmo que o primeiro Relato já esteja fechado.

### Participante Cancela Relato de Infração

Após o Participante Indireto ter aberto um Relato de Infração, o Participante pode solicitar o cancelamento deste, se necessário, independente do status do mesmo.

### Participante Recebe Relato de Infração

No fluxo de incoming infraction, o recebimento (status acknowledged) é feito de maneira automática pela QI Tech, e será feito o envio do webhook ao Participante Indireto com a infração recebida.

No fluxo de outgoing, o recebimento de um relato pela contraparte não resulta em atualização de status interna, visto que essa ação não resulta numa alteração da entidade Infração.

O Participante Indireto receberá o Relato de Infração com o status de acknowledged

### Participante Fecha Relato de Infração

Após o Participante Indireto ter sido informado de que há um Relato de Infração com o status de acknowledged , este deve fechá-lo.

O Participante Indireto deverá informar, no fechamento, o resultado da análise feita, podendo rejeitar o Relato de Infração, ou aceitá-lo no prazo de 6 dias corridos à partir do webhook de recebimento do mesmo, apoś esse período, caso não haja resposta, o mesmo será aceito automaticamente pela QI Tech a fim de manter o compromisso com o BACEN e o SPI de tempos de resposta.

## Controle da Máquina de Estados Infraction_Report_Direction

| Enumerador | Tradução | Descrição|
|---|---|---|
|  incoming  | vindo | O Participante Indireto recebeu o Relato de Infração de um outro Participante. 
|  outgoing  | enviado | O Participante Indireto enviou o Relato de Infração a um outro Participante.

## Participande Indireto Recebe/Fecha Relato de Infração

Neste caso, o campo "infraction_report_direction" será de "incoming".

## Participande Indireto Envia/Cancela Relato de Infração

Neste caso, o campo "infraction_report_direction" será de "outgoing".

Ressalta-se que nenhum destes campos será enviado pelo Participante Indireto. Contém apenas na resposta da requisição.

---

# Simulação de Cenários

URL: /documentation/pix_indireto/relato_de_infracao/simulacao_de_cenarios

Passo a passo para simular a efetivação de ações feitas por agentes externos. Essas simulações incluem recebimentos e atualizações de relatos de infração .

:::info Informação
Não há payload de retorno (response body) nessas requisições, somente response status de 204. O conteúdo gerado pelo mock deve ser recebido via webhook. 
:::

## 1 - Simulação de recebimento de relato de infração

Simula o recebimento de um relato de infração aberto por outra instituição.

:::info IMPORTANTE
É essencial possuir uma pix_transfer_key válida para mandar a request, não importando necessariamente as informações da outra parte da transferencia, visto que todas as informações do segundo participante serão substituidas no processo de mock.
:::

### Request

ENDPOINT /mock/pix/infraction_report
MÉTODO POST

Request Body

```json
{
  "infraction_report_status": "acknowledged",
  "pix_transfer_key": "28290ff2-2ba7-4e85-9a5e-862c92259b33",
  "infraction_report_type": "refund_request",
  "infraction_report_situation": "scam",
  "infraction_report_details": "Transação com suspeita de fraude.",
}
```

### Objeto Request Body

| Campo                             | Tipo   | Descrição                                                    | Máx. Caract.                                                                              |
| --------------------------------- | ------ | ------------------------------------------------------------ | ----------------------------------------------------------------------------------------- |
| **infraction_report_status\***    | string | Status de recebimento do relato de infração. "acknowledged". | **[Enumeradores infraction_report_status](#enumeradores-infraction_report_status)**       |
| **pix_transfer_key\***            | string | UUID4, chave única que identifica a transação relacionada.   | 36                                                                                        |
| **infraction_report_type\***      | string | Tipo de Relato de Infração                                   | **[Enumeradores infraction_report_type](#enumeradores-infraction_report_type)**           |
| **infraction_report_situation\*** | string | Situação em que ocorreu a infração                           | **[Enumeradores infraction_report_situation](#enumeradores-infraction_report_situation)** |
| **infraction_report_details\***   | string | Detalhes do relato de infração                               | 2000                                                                                      |

### Enumeradores infraction_report_status

| Campo          | Tipo   | Descrição                                                              | Caracteres |
| -------------- | ------ | ---------------------------------------------------------------------- | ---------- |
| `open`         | string | Relato de infração foi <strong>criado</strong> e está aberto no BACEN. | -          |
| `acknowledged` | string | Relato de infração foi <strong>recebido</strong> pelo participante     | -          |
| `cancelled`    | string | Relato de infração está <strong>cancelado</strong> no BACEN            | -          |
| `closed`       | string | Relato de infração está <strong>fechado</strong> no BACEN              | -          |

### Enumeradores infraction_report_type

| Campo              | Tipo   | Descrição                                                              | Caracteres |
| ------------------ | ------ | ---------------------------------------------------------------------- | ---------- |
| `refund_request`   | string | Relato de infração será gerado a fim de se solicitar uma devolução.    | -          |
| `refund_cancelled` | string | Relato de infração será gerado pelo motivo de uma devolução cancelada. | -          |

### Enumeradores infraction_report_situation

| Campo               | Tipo   | Descrição                                               | Caracteres |
| ------------------- | ------ | ------------------------------------------------------- | ---------- |
| `scam`              | string | Causa de golpe ou estelionato.                          | -          |
| `account_takeover`  | string | Causa de transação não autorizada pela conta de origem. | -          |
| `coercion`          | string | Causa de crime de coerção.                              | -          |
| `fraudulent_access` | string | Causa de acesso fraudulento à conta de origem.          | -          |
| `other`             | string | Quaisquer causas não aplicáveis às listadas acima.      | -          |

## 2 - Simulação de atualização de um relato de infração

Simula a atualização de status de um relato de infração aberto pelo participante indireto.

As opções de simulação para atualização de um relato de infração são:

1 - Cancelamento: Simula o cancelamento (cancel), feito pelo outro participante, sobre um relato de infração aberto por ele mesmo previamente.

2 - Fechamento: Simula o fechamento (close), feito pelo outro participante, sobre um relato de infração aberto pelo participante indireto.

### Request

ENDPOINT /mock/pix/infraction_report
MÉTODO PATCH

Request Body - Cancelamento

:::info IMPORTANTE
O Relato de infração identificado pela infraction_report_key ja deve ter sido previamente criado na simulação de recebimento de relato de infração.
:::

```json
{
  "infraction_report_status": "cancelled",
  "infraction_report_key": "28290ff2-2ba7-4e85-9a5e-862c92259b34"
}
```

Request Body - Fechamento

:::info IMPORTANTE
O Relato de infração identificado pela infraction_report_key ja deve ter sido previamente criado pelo participante indireto, e reconhecido na simulação de atualização de um relato de infração.
:::

```json
{
  "infraction_report_status": "closed",
  "infraction_report_key": "28290ff2-2ba7-4e85-9a5e-862c92259b34",
  "analysis_result": "agreed",
  "analysis_details": "Valor bloqueado. Para mais informações ligue para (99) 99999-9999."
}
```

### Objeto Request Body

| Campo                          | Tipo   | Descrição                                                            | Máx. Caract.                                                                        | Informações                      |
| ------------------------------ | ------ | -------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | -------------------------------- |
| **infraction_report_status\*** | string | Novo status do relato de infração. "cancelled", "closed"             | **[Enumeradores infraction_report_status](#enumeradores-infraction_report_status)** | ----                             |
| **infraction_report_key\***    | string | Chave única do relato de infração                                    | 36                                                                                  | ----                             |
| **analysis_result\***          | string | Resultado da análise do relato de infração. "agreed" ou "disagreed". | **[Enumeradores analysis_result](#enumeradores-analysis_result)**                   | Obrigatório para status "closed" |
| **analysis_details\***         | string | Detalhes da análise do relato de infração.                           | 2000                                                                                | Obrigatório para status "closed" |

### Enumeradores analysis_result

| Campo       | Tipo   | Descrição                                                                                                  | Caracteres |
| ----------- | ------ | ---------------------------------------------------------------------------------------------------------- | ---------- |
| `agreed`    | string | O Participante Indireto <strong>concorda</strong> com o Relato de Infração criado pelo outro Participante. | -          |
| `disagreed` | string | O Participante Indireto <strong>discorda</strong> com o Relato de Infração criado pelo outro Participante. | -          |

---

# Receber Relato de Infração

URL: /documentation/pix_indireto/relato_de_infracao/webhooks_relato_infracao

Visto que um outro Participante pode abrir um Relato de Infração, tendo como alvo o Participante Indireto, é necessário que a QI Tech notifique o Participante Indireto acerca do Relato aberto por outro Participante.

A QI Tech realizará o pooling periódico de novos relatos abertos aos Participantes Indiretos administrados, e notificará o correspondente via webhook , já com o status acknowledged.

:::danger IMPORTANTE
O Banco Central do Brasil define que, dentro de um período de 7 dias do recebimento do Relato de Infração pelo Participante Indireto, o Relato precisa ser fechado .

Caso haja atraso por parte do Participante Indireto, a QI Tech irá fechar o Relato de Infração, com o status de agreed, 6 dias corridos após o envio do webhook de recebimento da infração, a fim de que a instituição não seja penalizada pelo Banco Central do Brasil.
:::

O status do Relato de Infração sempre será de acknowledged , significando que a QI Tech recebeu o Relato e irá enviá-lo ao Participante Indireto.

:::info Informação

Tudo o descrito nesta seção de introdução também está, de forma detalhada como o Participante Indireto deve tratar via API, na seções relacionadas a Notificações de Infração.

:::

## Webhook recebimento de Relato de Infração
**Request Body**

```json
{
    "infraction_report_key":"d7820e2f-1c23-4610-83d6-d9aad1845075",
    "pix_transfer_key":"cdcf0d25-08a1-46e3-902a-6d7ca75e6c48",
    "end_to_end_id":"E99999010202406251332F8n7dMUwOLE",
    "infraction_report_status":"acknowledged",
    "infraction_report_situation":"scam",
    "infraction_report_type":"refund_request",
    "report_details":"usuario caiu em golpe…",
    "debited_participant":"99999011",
    "credited_participant":"99999010",
    "infraction_report_direction": "incoming",
    "created_at": "2023-03-03T12:04:06.179Z",
    "updated_at": "2023-03-03T12:04:06.179Z"
}
```

### Body Params

| Campo                           | Tipo   | Descrição                                                                                     | Caracteres                                                                                |
| ------------------------------- | ------ | --------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| `infraction_report_key` *       | string | Identificador único do relato de infração.                                                    | 36                                                                                        |
| `pix_transfer_key` *            | string | Identificador único da transação PIX.                                                         | 36                                                                                        |
| `end_to_end_id` *               | string | Identificador único da transação PIX no BACEN.                                                | 36                                                                                        |
| `infraction_report_status` *    | enum   | Status .                                                                                      | **[Enumeradores infraction_report_status](#enumeradores-infraction_report_status)**       |
| `infraction_report_situation` * | enum   | Situação em que ocorreu a infração.                                                           | **[Enumeradores infraction_report_situation](#enumeradores-infraction_report_situation)** |
| `infraction_report_type` *      | enum   | Tipo de Relato de Infração.                                                                   | **[Enumeradores infraction_report_type](#enumeradores-infraction_report_type)**           |
| `infraction_report_details`     | string | Detalhes acerca do Relato de Infração criado.                                                 | \<\= 2000                                                                                 |
| `credited_participant` *        | string | ISPB do Participante Creditado.                                                               | 8                                                                                         |
| `debited_participant` *         | string | ISPB do Participante Debitado.                                                                | 8                                                                                         |
| `infraction_report_direction` * | enum   | Enumerador acerca se o relato foi aberto pelo Participante Indireto ou por outro Participante | **[Enumeradores infraction_report_direction](#enumeradores-infraction_report_direction)** |
| `created_at` *                  | string | Horário de criação do Relato de Infração                                                      | 24                                                                                        |
| `updated_at`                    | string | Horário de atualização do Relato de Infração                                                  | 24                                                                                        |

### Enumeradores infraction_report_status

| Campo          | Tipo   | Descrição                                                                     | Caracteres |
| -------------- | ------ | ----------------------------------------------------------------------------- | ---------- |
| `open`         | string | Relato de infração foi <strong>criado</strong> e está aberto no BACEN.        | -          |
| `acknowledged` | string | Relato de infração foi <strong>recebido</strong> pelo participante contestado | -          |
| `cancelled`    | string | Relato de infração está <strong>cancelado</strong> no BACEN                   | -          |
| `closed`       | string | Relato de infração está <strong>fechado</strong> no BACEN                     | -          |

### Enumeradores infraction_report_type

| Campo              | Tipo   | Descrição                                                             | Caracteres |
| ------------------ | ------ | --------------------------------------------------------------------- | ---------- |
| `refund_cancelled` | string | Relato de infração será gerado pelo motivo de uma devolução cancelada | 16         |
| `refund_request`   | string | Relato de infração será gerado a fim de se solicitar uma devolução    | 14         |

### Enumeradores infraction_report_situation

| Campo               | Tipo   | Descrição                                               | Caracteres |
| ------------------- | ------ | ------------------------------------------------------- | ---------- |
| `scam`              | string | Causa de golpe ou estelionato.                          | -          |
| `account_takeover`  | string | Causa de transação não autorizada pela conta de origem. | -          |
| `coercion`          | string | Causa de crime de coerção.                              | -          |
| `fraudulent_access` | string | Causa de acesso fraudulento à conta de origem.          | -          |
| `other`             | string | Quaisquer causas não aplicáveis às listadas acima.      | -          |

### Enumeradores infraction_report_direction
| Campo      | Tipo   | Descrição                                                     | Caracteres |
| ---------- | ------ | ------------------------------------------------------------- | ---------- |
| `incoming` | string | Relato de infração com participante indireto como alvo.       | -          |
| `outgoing` | string | Relato de infração com participante indireto como originador. | -          |

## Webhook recebimento de alteração de Relato de Infração
**Request Body**

```json
{
    "infraction_report_key":"d7820e2f-1c23-4610-83d6-d9aad1845075",
    "pix_transfer_key":"cdcf0d25-08a1-46e3-902a-6d7ca75e6c48",
    "end_to_end_id":"E99999010202406251332F8n7dMUwOLE",
    "infraction_report_status":"closed",
    "infraction_report_situation":"scam",
    "infraction_report_type":"refund_request",
    "report_details":"usuario caiu em golpe…",
    "debited_participant":"99999011",
    "credited_participant":"99999010",
    "analysis_result": "agreed",
    "analysis_details": "Valor bloqueado. Para mais informações ligue para (11) 98871-1385.",
    "infraction_report_direction": "outgoing",
    "created_at": "2023-03-03T12:04:06.179Z",
    "updated_at": "2023-03-03T12:04:06.179Z"
}
```

### Body Params

| Campo                           | Tipo   | Descrição                                                                                     | Caracteres                                                                                |
| ------------------------------- | ------ | --------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| `infraction_report_key` *       | string | Identificador único do relato de infração.                                                    | 36                                                                                        |
| `pix_transfer_key` *            | string | Identificador único da transação PIX.                                                         | 36                                                                                        |
| `end_to_end_id` *               | string | Identificador único da transação PIX no BACEN.                                                | 36                                                                                        |
| `infraction_report_status` *    | enum   | Status .                                                                                      | **[Enumeradores infraction_report_status](#enumeradores-infraction_report_status)**       |
| `infraction_report_situation` * | enum   | Situação em que ocorreu a infração.                                                           | **[Enumeradores infraction_report_situation](#enumeradores-infraction_report_situation)** |
| `infraction_report_type` *      | enum   | Tipo de Relato de Infração.                                                                   | **[Enumeradores infraction_report_type](#enumeradores-infraction_report_type)**           |
| `infraction_report_details`     | string | Detalhes acerca do Relato de Infração criado.                                                 | \<\= 2000                                                                                 |
| `credited_participant` *        | string | ISPB do Participante Creditado.                                                               | 8                                                                                         |
| `debited_participant` *         | string | ISPB do Participante Debitado.                                                                | 8                                                                                         |
| `analysis_result` *             | string | Resultado da análise.                                                                         | **[Enumeradores analysis_result](#enumeradores-analysis_result)**                         |
| `analysis_details` *            | string | Descrição acerca do resultado da análise.                                                     | 250                                                                                       |
| `infraction_report_direction` * | enum   | Enumerador acerca se o relato foi aberto pelo Participante Indireto ou por outro Participante | **[Enumeradores infraction_report_direction](#enumeradores-infraction_report_direction)** |
| `created_at` *                  | string | Horário de criação do Relato de Infração                                                      | 24                                                                                        |
| `updated_at`                    | string | Horário de atualização do Relato de Infração                                                  | 24                                                                                        |

### Enumeradores analysis_result

| Campo       | Tipo   | Descrição                                                                                                  | Caracteres |
| ----------- | ------ | ---------------------------------------------------------------------------------------------------------- | ---------- |
| `agreed`    | string | O Participante Indireto <strong>concorda</strong> com o Relato de Infração criado pelo outro Participante. | -          |
| `disagreed` | string | O Participante Indireto <strong>discorda</strong> com o Relato de Infração criado pelo outro Participante. | -          |

---

# Baixar QR Code Pix dinâmico

URL: /documentation/pix/baixar_qr_code_dinamico

## Request

ENDPOINT /baas/qrcode/dynamic
MÉTODO POST

Request Body

```json
{
  "occurrence_type": "write_off",
  "qr_code_key": "461d29e6-d2ed-48f7-bc7b-c3143a1e43d2",
  "qr_code_type": "dynamic_term"
}

```

### Body Params

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `occurrence_type` * |  string |Tipo de ocorrencia. payment: Ocorrência do tipo pagamento, registration: Ocorrência do tipo registro, write_off: Ocorrência do tipo cancelamento pelo gerador, bank_written_off: Ocorrência do tipo cancelamento pelo banco. | - |
| `qr_code_type` * | string | Tipo do QR Code dinâmico | - |
| `qr_code_key` * | string | Chave do QR Code devolvida no momento da geração. | uuid |

## Response

STATUS 200

Response Body

```json
{
  "qr_code_type": "dynamic_instant",
  "amount": null,
  "expiration_seconds": null,
  "max_payment_days": 180,
  "receiver_conciliation_id": "461d29e6d2ed48f7bc7bc3143a1e43d2",
  "payer_name": null,
  "payer_document_number": null,
  "payer_person_type": "natural",
  "payer_request": null,
  "pix_message": null,
  "modality_alteration": false,
  "expiration_date": null,
  "rebate_amount": null,
  "interest_amount": null,
  "fine_amount": null,
  "paid_amount": null,
  "discounts": [],
  "additional_data": [],
  "origin": "system",
  "origin_key": null,
  "pix_key": "9de04466-0b02-4263-9c28-9cdc0fb638bb",
  "qr_code_key": "461d29e6-d2ed-48f7-bc7b-c3143a1e43d2",
  "occurrence_type": "write_off",
  "end_to_end_id": null,
  "source_account_branch": null,
  "source_account_financial_institution": null,
  "source_account_ispb": null,
  "source_account_number": null,
  "source_account_digit": null,
  "disable": null,
  "qr_code_occurrence_key": "32ec9e60-b630-45fa-a0c7-653fbb30a32a",
  "base_64": null,
  "image": null
}

```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}

```

---

# Busca por solicitação de limite Pix

URL: /documentation/pix/busca_por_solicitacao_de_limite_pix

## Request

ENDPOINT /baas/pix/limits_request
MÉTODO GET

### Query String

| Campo       | Tipo   | Descrição                      |Caracteres|
|-------------|--------|--------------------------------|---------|
| `account_key` | string | chave de identificação da QIConta | 36
| `request_status` | string | status da solicitação de limite. Status válidos: **"pending_approval"**, **"approved"**, **"rejected"**, **"executed"**. Pode ser enviado em forma de lista, por exemplo: **"pending_approval,approved"**|
| `page`                     | integer | Número da página pesquisada                       | -          |
| `page_size`                | integer | Quantidade de itens por página                  | -          |

## Response

STATUS 200

Response Body

```json
{
   "pagination": {
      "current_page": 0,
      "next_page": 1,
      "rows_per_page": 15,
      "total_pages": 1,
      "total_rows": 4
   },
   "data": [
      {
         "account_key": "dc94d45c-11a1-46f1-b19a-a1af9884a3c5",
         "amount_limit": 2000,
         "created_at": "2023-05-29T11:50:03",
         "limit_type": "daily",
         "request_key": "155afa76-4e80-4a11-917a-34d48e39325c",
         "request_status": "pending_approval",
         "routine_key": null
      },
      {
         "account_key": "dc94d45c-11a1-46f1-b19a-a1af9884a3c5",
         "amount_limit": 1000,
         "created_at": "2023-05-29T11:50:03",
         "limit_type": "nightly",
         "request_key": "805a457d-307d-46c5-8dce-e98e309a3380",
         "request_status": "pending_approval",
         "routine_key": null
      },
      {
         "account_key": "dc94d45c-11a1-46f1-b19a-a1af9884a3c5",
         "amount_limit": 1500,
         "created_at": "2023-05-29T11:50:03",
         "limit_type": "self_daily",
         "request_key": "7cd413ab-fc78-41e6-ab27-206f69e2e294",
         "request_status": "pending_approval",
         "routine_key": null
      },
      {
         "account_key": "dc94d45c-11a1-46f1-b19a-a1af9884a3c5",
         "amount_limit": 500,
         "created_at": "2023-05-29T11:50:03",
         "limit_type": "self_nightly",
         "request_key": "febe9087-1eba-4169-a63e-29e546aaf874",
         "request_status": "pending_approval",
         "routine_key": null
      }
   ]
}
```

STATUS 403

Response Body: Usuário não possui credenciais

```json
{
    "title": "Unauthorized",
    "description": "User is not allowed to do this transaction",
    "translation": "Usuário não tem autorização para fazer essa transação",
    "code": "PIT000001"
}
```

---

# Busca por uso de limite Pix

URL: /documentation/pix/busca_por_uso_de_limite_pix

## Request

ENDPOINT /baas/pix/limits/ ACCOUNT_KEY /usage
MÉTODO GET

### Path Params

| Campo       | Tipo   | Descrição                      |Caracteres|
|-------------|--------|--------------------------------|---------|
| `account_key` | string | chave de identificação da QIConta | 36 |

## Response

STATUS 200

Response Body

```json
{
	"daily_amount_limit": "800012.67",
	"daily_amount_percentage": null,
	"daily_amount_used": "0",
	"nightly_amount_limit": "100000.00",
	"nightly_amount_percentage": null,
	"nightly_amount_used": "0",
	"self_daily_amount_limit": "500.03",
	"self_daily_amount_percentage": null,
	"self_daily_amount_used": "0",
	"self_nightly_amount_limit": "100000.00",
	"self_nightly_amount_percentage": null,
	"self_nightly_amount_used": "0"
}
```

STATUS 403

Response Body: Usuário não possui credenciais

```json
{
    "title": "Unauthorized",
    "description": "User is not allowed to do this transaction",
    "translation": "Usuário não tem autorização para fazer essa transação",
    "code": "PIT000001"
}
```

---

# Chaves PIX mockadas em ambiente de sandbox

URL: /documentation/pix/chaves_pix_mockadas

## 104 - CAIXA ECONOMICA FEDERAL

| Chave Pix                            | Tipo         | Nome do titular  | Documento do titular | Número da conta | Agencia da conta | ISPB   |
|--------------------------------------|--------------|------------------|----------------------|-----------------|------------------|--------|
| +5568970000000                       | phone_number | Mock Person Name | 65322181032          | 21837-5         | 4458             | 360305 | 
| d6e2d611-6c68-4f84-9be5-962ad2f2bcb6 | random_key   | Mock Person Name | 61295118092          | 100091086-1     | 465              | 360305 | 
| 61295118092                          | cpf          | Mock Person Name | 61295118092          | 1300005670-8    | 4289             | 360305 | 
| pix03@pix03.com                      | email        | Mock Person Name | 96969879003          | 363214578-8     | 8615             | 360305 | 
| +5568911106520                       | phone_number | Mock Person Name | 66702118805          | 100071086-1     | 465              | 360305 | 
| 5e6ce02a-e0da-4d56-73b8-84f118b4f371 | random_key   | Mock Person Name | 52720072800          | 100061086-1     | 465              | 360305 | 
| 52720072800                          | cpf          | Mock Person Name | 52720072800          | 100071076-1     | 465              | 360305 | 
| pix10@pix10.com                      | email        | Mock Person Name | 24182533410          | 100071066-1     | 465              | 360305 | 
| pix33@pix33.com                      | email        | Mock Person Name | 56151446887          | 96764-6         | 919              | 360305 | 
| 88253032978                          | cpf          | Mock Person Name | 88253032978          | 96764-6         | 919              | 360305 | 

## 341 - ITAÚ UNIBANCO S.A.

| Chave Pix                            | Tipo       | Nome do titular  | Documento do titular | Número da conta | Agencia da conta | ISPB     |
|--------------------------------------|------------|------------------|----------------------|-----------------|------------------|----------|
| 22156083070                          | cpf        | Mock Person Name | 22156083070          | 19413-2         | 8534             | 60701190 | 
| 96969879003                          | cpf        | Mock Person Name | 96969879003          | 22110-1         | 8615             | 60701190 | 
| 5e6ce06a-e0da-4d56-93b8-84f118b4f371 | random_key | Mock Person Name | 43135154025          | 57980-4         | 5067             | 60701190 | 
| pix11@pix11.com                      | email      | Mock Person Name | 66702118805          | 86091-8         | 3101             | 60701190 | 
| 24182533410                          | cpf        | Mock Person Name | 24182533410          | 20467-1         | 5807             | 60701190 | 
| pix07@pix07.com                      | email      | Mock Person Name | 11646288874          | 33087-6         | 8872             | 60701190 | 

## 237 - BCO BRADESCO S.A.

| Chave Pix                            | Tipo         | Nome do titular  | Documento do titular | Número da conta       | Agencia da conta | ISPB     |
|--------------------------------------|--------------|------------------|----------------------|-----------------------|------------------|----------|
| 65322181032                          | cpf          | Mock Person Name | 65322181032          | 1017372-2             | 1                | 60746948 | 
| b9380607-dac6-4e17-8ca7-eb761e3aa1dd | random_key   | José Alves       | 24080025327          | 0001000000000022279-9 | 1                | 08744817 | 
| b9380607-dac6-4e17-8ca7-eb761e3aa1dd | random_key   | José Alves       | 24080025327          | 0003000000000000288-9 | 1                | 08744817 | 
| b9380607-dac6-4e17-8ca7-eb761e3aa1dd | random_key   | José Alves       | 24080025327          | 0013000000000013609-9 | 1                | 08744817 | 
| b9380607-dac6-4e17-8ca7-eb761e3aa1dd | random_key   | José Alves       | 24080025327          | 1288000000884535174-9 | 1                | 08744817 | 
| b9380607-dac6-4e17-8ca7-eb761e3aa1dd | random_key   | José Alves       | 24080025327          | 3701000000593070593-9 | 1                | 08744817 | 
| pix01@pix01.com                      | email        | Mock Person Name | 65322181032          | 1017372-2             | 1                | 60746948 | 
| pix01@pix01.com                      | email        | Mock Person Name | 65322181032          | 1925255-8             | 3952             | 60746948 | 
| pix12@pix12.com                      | email        | Mock Person Name | 11085087824          | 1071659-4             | 427              | 60746948 | 
| 5e6ce08a-e0da-4d56-93b8-84f118b4f371 | random_key   | Mock Person Name | 66702118805          | 1751795-3             | 6162             | 60746948 | 
| +5568911137576                       | phone_number | Mock Person Name | 82104056080          | 1587784-7             | 1340             | 60746948 | 

## 33 - BCO SANTANDER (BRASIL) S.A.

| Chave Pix                            | Tipo       | Nome do titular  | Documento do titular | Número da conta | Agencia da conta | ISPB     |
|--------------------------------------|------------|------------------|----------------------|-----------------|------------------|----------|
| 5e6ce05a-e0da-4d56-93b8-84f118b4f371 | random_key | Mock Person Name | 42759960030          | 9206744-2       | 4187             | 90400888 | 
| 34175131205                          | cpf        | Mock Person Name | 34175131205          | 9206744-2       | 4187             | 90400888 | 
| 5e6ce05a-e0da-4d56-53b8-74f118b4f371 | random_key | Mock Person Name | 11646288874          | 9206744-2       | 4187             | 90400888 | 
| 82104056080                          | cpf        | Mock Person Name | 82104056080          | 2850903-2       | 214              | 90400888 | 

## 77 - BANCO INTER

ISPB: 416968

| Chave Pix                            | Tipo         | Nome do titular       | Documento do titular | Número da conta | Agencia da conta | ISPB   |
|--------------------------------------|--------------|-----------------------|----------------------|-----------------|------------------|--------|
| 22156083070                          | cpf          | Mock Person Name      | 22156083070          | 4810813-8       | 1                | 416968 | 
| pix13@pix13.com                      | email        | Mock Person Name      | 43135154025          | 4830813-8       | 1                | 416968 | 
| 66702118805                          | cpf          | Mock Person Name      | 66702118805          | 4820813-8       | 1                | 416968 | 
| 5e6ce05a-e0da-4d56-93b7-84f118b4f371 | random_key   | Mock Person Name      | 24182533410          | 4850813-8       | 1                | 416968 | 
| +5568911168384                       | phone_number | Mock Person Name      | 17413005255          | 4850813-8       | 1                | 416968 | 
| pix06@pix06.com                      | email        | Mock Person Name      | 81035632691          | 4750813-8       | 1                | 416968 | 
| pix31@pix31.com                      | email        | Mock Person Name      | 55125236780          | 1768538-4       | 2960             | 416968 |
| 8501216b-d676-4927-be65-060d3d4394fb | random_key   | Mocked Enterprise S.A | 40008675000100       | 1049122-2       | 1                | 416968 |
| pix_key@mockenterprise.com.br        | email        | Mocked Enterprise S.A | 40008675000100       | 1049122-2       | 1                | 416968 |
| 40008675000100                       | cnpj         | Mocked Enterprise S.A | 40008675000100       | 1049122-2       | 1                | 416968 |
| +5568956720123                       | phone_number | Mocked Enterprise S.A | 40008675000100       | 1049122-2       | 1                | 416968 |

## 260 - NU PAGAMENTOS - IP

| Chave Pix                            | Tipo         | Nome do titular  | Documento do titular | Número da conta | Agencia da conta | ISPB     |
|--------------------------------------|--------------|------------------|----------------------|-----------------|------------------|----------|
| pix04@pix04.com                      | email        | Mock Person Name | 69017362073          | 81648459-8      | 1                | 18236120 | 
| pix09@pix09.com                      | email        | Mock Person Name | 34175131205          | 81538459-8      | 1                | 18236120 | 
| 5e6ce01a-e0da-4d56-93b8-44f118b4f371 | random_key   | Mock Person Name | 17413005255          | 81548459-8      | 1                | 18236120 | 
| +5568911186420                       | phone_number | Mock Person Name | 81035632691          | 81538459-8      | 1                | 18236120 | 
| pix32@pix32.com                      | email        | Mock Person Name | 56151446887          | 293201-6        | 2811             | 18236120 | 

## 336 - BCO C6 S.A.

| Chave Pix                            | Tipo       | Nome do titular  | Documento do titular | Número da conta | Agencia da conta | ISPB     |
|--------------------------------------|------------|------------------|----------------------|-----------------|------------------|----------|
| dbbf965d-677c-49ff-b9da-5131da1505f3 | random_key | Mock Person Name | 65322181032          | 1019902-6       | 1                | 31872495 | 
| 5e6ce07a-e0da-4d56-93b8-84f118b4f371 | random_key | Mock Person Name | 11085087824          | 1018902-6       | 1                | 31872495 | 
| 11646288874                          | cpf        | Mock Person Name | 11646288874          | 1017902-6       | 1                | 31872495 | 

## 403 - CORA SCD S.A.

| Chave Pix      | Tipo | Nome do titular | Documento do titular | Número da conta | Agencia da conta | ISPB     |
|----------------|------|-----------------|----------------------|-----------------|------------------|----------|
| 39284100000000 | cnpj | Parcela Mais    | 39284100000000       | 1708315-8       | 1                | 37880206 | 

## 422 - BCO SAFRA S.A.

| Chave Pix       | Tipo         | Nome do titular  | Documento do titular | Número da conta | Agencia da conta | ISPB     |
|-----------------|--------------|------------------|----------------------|-----------------|------------------|----------|
| pix02@pix02.com | email        | Mock Person Name | 69017362073          | 364522-5        | 284              | 58160789 | 
| pix08@pix08.com | email        | Mock Person Name | 34175131205          | 264522-5        | 284              | 58160789 | 
| +5568911106070  | phone_number | Mock Person Name | 11646288874          | 354522-5        | 284              | 58160789 | 
| 53465252110     | cpf          | Mock Person Name | 53465252110          | 364422-5        | 284              | 58160789 | 
| +5568911122488  | phone_number | Mock Person Name | 10632271             | 1558321-5       | 907              | 58160789 | 

## 655 - BCO VOTORANTIM S.A.

| Chave Pix  | Tipo | Nome do titular  | Documento do titular | Número da conta | Agencia da conta | ISPB     |
|------------|------|------------------|----------------------|-----------------|------------------|----------|
| 5301321099 | cpf  | Mock Person Name | 5301321099           | 622660113-8     | 1111             | 59588111 | 

## DOCK SOLUCOES EM MEIOS DE PAGAMENTO S A

| Chave Pix                            | Tipo         | Nome do titular  | Documento do titular | Número da conta | Agencia da conta | ISPB    |
|--------------------------------------|--------------|------------------|----------------------|-----------------|------------------|---------|
| +5568911165580                       | phone_number | Mock Person Name | 53465252110          | 622470112-8     | 1111             | 8744817 | 
| 17413005255                          | cpf          | Mock Person Name | 17413005255          | 622450112-8     | 1111             | 8744817 | 
| 81035632691                          | cpf          | Mock Person Name | 81035632691          | 622450113-8     | 1111             | 8744817 | 
| 5e6ce05a-e0da-4d56-93b8-64f118b4f371 | random_key   | Mock Person Name | 81035632691          | 622650113-8     | 1111             | 8744817 | 

## COMPANHIA GLOBAL DE SOLUCOES E SERVICOS DE PAGAMENTOS S.A.

| Chave Pix   | Tipo | Nome do titular | Documento do titular | Número da conta | Agencia da conta | ISPB     |
|-------------|------|-----------------|----------------------|-----------------|------------------|----------|
| 96755229091 | cpf  | Teste sem Compe | 96755229091          | 1444301-8       | 1                | 32024691 | 

## Empresas com CNPJ Alfanumérico

| Chave Pix      | Tipo | Nome do titular     | Documento do titular | Número da conta | Agencia da conta | ISPB     | Participante         |
|----------------|------|---------------------|----------------------|-----------------|------------------|----------|----------------------|
| HSRMASY3000160 | cnpj | Empresa Alfa Mock 1 | HSRMASY3000160       | 1050001-2       | 1                | 416968   | BANCO INTER          |
| 0ZSD0MBG000135 | cnpj | Empresa Alfa Mock 2 | 0ZSD0MBG000135       | 81550001-2      | 1                | 18236120 | NU PAGAMENTOS - IP   |
| DDA9RHST000100 | cnpj | Empresa Alfa Mock 3 | DDA9RHST000100       | 1750001-9       | 1                | 37880206 | CORA SCD S.A.        |

---

# Comprovante de transação

URL: /documentation/pix/comprovante_de_transferencia

## Request

ENDPOINT /transaction_receipt/TRANSACTION_KEY
MÉTODO GET

:::info

A resposta desta requisição irá trazer os dados referentes á aquela transação consultada e caso o parâmetro PDF seja verdadeiro o campo "pdf_encoded_string" estará disponível com a string do PDF encodada em base-64.

:::

### Path params

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `TRANSACTION_KEY` * | string |  Chave da transação consultada. | chave uuid |

### Query params

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `pdf` | boolean | Booleano que define se a resposta deverá gerar um PDF ou não. | true/false |

STATUS 200

Response Body: Recibo de transação com chave

```json
{
  "is_schedule": true,
  "origin_key": "f7507645-534c-4790-a19c-b89763d42fe5",
  "schedule_date": "2021-11-06",
  "scheduled_for_br_formatted": "Agendado Para 06/11/2021",
  "source_account": {
    "account_branch": "0001",
    "account_digit": "9",
    "account_number": "09661",
    "financial_institution_compe_number": 329,
    "financial_institution_name": "QI SOCIEDADE DE CRÉDITO DIRETO S.A.",
    "owner_document_number": "45783565660"
  },
  "source_subtype": "pix_withdrawal",
  "source_subtype_translation_ptbr": "Transferência de PIX",
  "target_account": {
    "account_branch": "3952",
    "account_digit": "8",
    "account_number": "1925255",
    "account_type": "checking_account",
    "account_type_str": "Conta Corrente",
    "financial_institution_compe_number": 237,
    "financial_institution_name": "BANCO BRADESCO S.A.",
    "owner_document_number": "***.221.81*-**",
    "owner_name": "Vivo Test",
    "pix_key": "pix01@pix01.com",
    "pix_transfer_type": "key"
  },
  "transaction_amount": 12.2,
  "transaction_key": "53301505-342a-4bf4-b7de-845e5c79ed02"
}
```

## Response

STATUS 200

Response Body: Recibo de transação manual

```json
{
  "chargeback_returned_amount": null,
  "end_to_end_id": "E3210272497339911957760452404275",
  "is_chargeback": false,
  "pix_message": null,
  "pix_transfer_key": "2c4d15c4-2a03-4979-813e-0ead374686d8",
  "source_account_key": "e10a6f94-facc-4392-9eba-d0d0b278bc5d",
  "receiver_conciliation_id": "REC00000000000000000000009459463343",
  "pix_transfer_type": "transfer",
  "target_account": {
    "account_branch": "3952",
    "account_digit": "8",
    "account_number": "1925255",
    "financial_institution_compe_number": 237,
    "financial_institution_name": "BANCO BRADESCO S.A.",
    "is_internal": false,
    "ispb_number": "60746948",
    "owner_document_number": "***22181***",
    "owner_name": "Vivo Test",
    "target_pix_key": "pix01@pix01.com"
  },
  "transfer_amount": 1891268.97
}
```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}
```

---

# Criar Chave Pix

URL: /documentation/pix/criar_chave

## Criar Chave Pix CPF, CNPJ ou Aleatória

### Request

- MÉTODO POST
- ENDPOINT /baas/pix/keys

Request Body

```json
{
    "account_key": "6d30a0b1-cb90-4ceb-b1ea-5bd600cdf3c8",
    "pix_key_type": "random_key"
}
```

Request Body

```json
{
    "account_key": "6d30a0b1-cb90-4ceb-b1ea-5bd600cdf3c8",
    "pix_key_type": "cnpj",
    "pix_key": "09080702000105"
}
```

Request Body

```json
{
    "account_key": "6d30a0b1-cb90-4ceb-b1ea-5bd600cdf3c8",
    "pix_key_type": "cpf",
    "pix_key": "03882617038"
}
```

:::info Tipos de Chave Pix
A “pix_key” pode ser um CPF, CNPJ, E-mail, Celular ou uma Chave Aleatória (UUID), seguindo as seguintes formatações:

CPF: Número inteiro com 11 dígitos.

CNPJ: Número inteiro com 14 dígitos.

E-mail: Texto contendo ao menos um “@”.

Celular: Texto contendo os seguintes valores: “+55” + “DDD do celular“ + “Número Inteiro do Celular com no mínimo 8 e no máximo 9 dígitos”. Ex: “+5511987654321“.

Chave Aleatória: UUID.
:::

:::info Regra de CPF/CNPJ no Ambiente Sandbox
Para simular situações de aprovação e reprovação pode ser utilizado o primeiro digito do CPF/CNPJ do titular da chave pix a ser criada:

1, 2, 3, 4, 5 -> Reprovado automático
0, 6, 7, 8, 9 -> Aprovação automática
:::

### Response

- MÉTODO POST
- ENDPOINT /baas/pix/keys

Response Body

```json
{
	"account_key": "6d30a0b1-cb90-4ceb-b1ea-5bd600cdf3c8",
	"created_at": "2022-09-02T18:20:52",
	"pix_key": {
		"account_key": "6d30a0b1-cb90-4ceb-b1ea-5bd600cdf3c8",
		"created_at": "2022-09-02T18:20:51",
		"pix_key": "09080702000105",
		"pix_key_status": "pending_confirmation",
		"pix_key_type": "cnpj",
		"updated_at": "2022-09-02T18:20:51"
	},
	"pix_key_request_key": "d60abf67-ad9c-42ee-9089-d26c8fc855b9",
	"request_data": {
		"account_created_at": "2022-09-02T22:44:36",
		"account_digit": "2",
		"account_number": "2359934",
		"account_type": "checking",
		"branch_number": "0001",
		"key": "09080702000105",
		"owner_document_number": "09080702000105",
		"owner_name": "VOVO LUCIA CONVENIENCIA LTDA",
		"owner_person_type": "legal",
		"trading_name": "VOVO LUCIA"
	},
	"request_failure_reason": null,
	"request_status": "pending",
	"request_type": "inclusion",
	"requester_key": "ef48fbe4-267b-45c1-9049-75345c075486",
	"updated_at": "2022-09-02T18:20:52"
}
```

STATUS 400

Response Body: Chave pix já existe.

  ```json
  {
    "title": "Bad Request",
    "description": "Pix key: \{pix_key\} already exists.",
    "translation": "A chave pix: \{pix_key\} já existe.",
    "code": "PIX000065"
  }
  ```

STATUS 404

Response Body: Conta não encontrada

    ```json
    {
        "title": "Account not found",
        "description": "Conta não encontrada para account_key: \{account_key\}",
        "translation": "Conta não encontrada para account_key: \{account_key\}",
        "code": "PIX000026"
    }
    ```

STATUS 400

Response Body: Pessoa não encontrada

    ```json
    {
        "title": "Person not found",
        "description": "Pessoa não encontrada para person_key: \{person_key\}",
        "translation": "Pessoa não encontrada para person_key: \{person_key\}",
        "code": "PIX000027"
    }
    ```

STATUS 400

Response Body: Chave Pix não Finalizada

    ```json
    {
        "title": "Pix Key Creation Non Finished",
        "description": "A chave pix \{pix_key\} já possui um pedido de criação não finalizado.",
        "translation": "A chave pix \{pix_key\} já possui um pedido de criação não finalizado.",
        "code": "PIX000074"
    }
    ```

STATUS 400

Response Body: Número Máximo de Chaves Pix em Uso

    ```json
    {
        "title": "Maximum Number of Pix Keys in Use",
        "description": "A conta \{account_key\} já atingiu o número máximo de chaves pix.",
        "translation": "A conta \{account_key\} já atingiu o número máximo de chaves pix.",
        "code": "PIX000014"
    }
    ```

STATUS 400

Response Body: Conta não Aberta

    ```json
    {
        "title": "Account is not Opened",
        "description": "A conta \{account_key\} não está aberta.",
        "translation": "A conta \{account_key\} não está aberta.",
        "code": "PIX000002"
    }
    ```

STATUS 403

Response Body: Permissão Inválida

    ```json
    {
        "title": "Invalid Permission",
        "description": "A pessoa \{person_key\} não possui credenciais de administrador para a conta \{account_key\}.",
        "translation": "A pessoa \{person_key\} não possui credenciais de administrador para a conta \{account_key\}.",
        "code": "PIX000054"
    }
    ```

STATUS 422

Response Body: Tentativa de Chave Pix CPF Inválida

    ```json
    {
        "title": "Attempted CPF Pix Key is Not that of Account Owner",
        "description": "A chave pix fornecida \{pix_key\} não corresponde ao CPF {document_number} do titular da conta.",
        "translation": "A chave pix fornecida \{pix_key\} não corresponde ao CPF {document_number} do titular da conta.",
        "code": "PIX000020"
    }
    ```

:::caution Atenção
No caso da Response de criação de uma Chave Pix **Aleatória**, o campo “***pix_key***“ retornará um valor nulo. Para recuperar o valor da chave aleatória gerada, é necessária realizar uma consulta à lista de chaves cadastradas em uma conta, ou através do webhook de ativação.
:::

:::caution Atenção
A criação de chaves é assíncrona, sendo assim, a chave apenas estará disponível para uso após o recebimento do [webhook de inclusão de chave pix.](#webhook-de-inclusao-de-chave-pix)
:::

## Criar Chave Pix E-mail e Celular

**Para criação da chave:** POST no endpoint “**/baas/pix/keys**“. Neste momento, será enviado um Token para o E-mail ou Celular informado no campo “***pix_key***“.

### Request

- MÉTODO POST
- ENDPOINT /baas/pix/keys

Request Body

```json
{
    "account_key": "6d30a0b1-cb90-4ceb-b1ea-5bd600cdf3c8",
    "pix_key_type": "email",
    "pix_key": "vovo.lucia@gmail.com.br"
}
```

Request Body

```json
{
    "account_key": "6d30a0b1-cb90-4ceb-b1ea-5bd600cdf3c8",
    "pix_key_type": "phone_number",
    "pix_key": "+5511987654321"
}

```

### Response

- MÉTODO POST
- ENDPOINT /baas/pix/keys

Response Body

```json
{
	"account_key": "6d30a0b1-cb90-4ceb-b1ea-5bd600cdf3c8",
	"created_at": "2022-09-02T17:41:55",
	"pix_key": {
		"account_key": "6d30a0b1-cb90-4ceb-b1ea-5bd600cdf3c8",
		"created_at": "2022-09-02T17:41:54",
		"pix_key": "pedro.pinho@qitech.com.br",
		"pix_key_status": "pending_confirmation",
		"pix_key_type": "email",
		"updated_at": "2022-09-02T17:41:54"
	},
	"pix_key_request_key": "f6209b7e-82da-44a8-9cfa-6ad0a689adb2",
	"request_data": {
		"account_created_at": "2022-09-02T22:44:36",
		"account_digit": "2",
		"account_number": "2359934",
		"account_type": "checking",
		"branch_number": "0001",
		"key": "pedro.pinho@qitech.com.br",
		"owner_document_number": "09080702000105",
		"owner_name": "VOVO LUCIA CONVENIENCIA LTDA",
		"owner_person_type": "legal",
		"trading_name": "VOVO LUCIA"
	},
	"request_failure_reason": null,
	"request_status": "pending_validation",
	"request_type": "inclusion",
	"requester_key": "ef48fbe4-267b-45c1-9049-75345c075486",
	"updated_at": "2022-09-02T17:41:55"
}
```

STATUS 400

Response Body: Chave pix já existe.

  ```json
  {
    "title": "Bad Request",
    "description": "Pix key: \{pix_key\} already exists.",
    "translation": "A chave pix: \{pix_key\} já existe.",
    "code": "PIX000065"
  }
  ```

STATUS 404

Response Body: Conta não encontrada

    ```json
    {
        "title": "Account not found",
        "description": "Conta não encontrada para account_key: \{account_key\}",
        "translation": "Conta não encontrada para account_key: \{account_key\}",
        "code": "PIX000026"
    }
    ```

STATUS 400

Response Body: Pessoa não encontrada

    ```json
    {
        "title": "Person not found",
        "description": "Pessoa não encontrada para person_key: \{person_key\}",
        "translation": "Pessoa não encontrada para person_key: \{person_key\}",
        "code": "PIX000027"
    }
    ```

STATUS 400

Response Body: Chave Pix não Finalizada

    ```json
    {
        "title": "Pix Key Creation Non Finished",
        "description": "A chave pix \{pix_key\} já possui um pedido de criação não finalizado.",
        "translation": "A chave pix \{pix_key\} já possui um pedido de criação não finalizado.",
        "code": "PIX000074"
    }
    ```

STATUS 400

Response Body: Número Máximo de Chaves Pix em Uso

    ```json
    {
        "title": "Maximum Number of Pix Keys in Use",
        "description": "A conta \{account_key\} já atingiu o número máximo de chaves pix.",
        "translation": "A conta \{account_key\} já atingiu o número máximo de chaves pix.",
        "code": "PIX000014"
    }
    ```

STATUS 400

Response Body: Conta não Aberta

    ```json
    {
        "title": "Account is not Opened",
        "description": "A conta \{account_key\} não está aberta.",
        "translation": "A conta \{account_key\} não está aberta.",
        "code": "PIX000002"
    }
    ```

STATUS 403

Response Body: Permissão Inválida

    ```json
    {
        "title": "Invalid Permission",
        "description": "A pessoa \{person_key\} não possui credenciais de administrador para a conta \{account_key\}.",
        "translation": "A pessoa \{person_key\} não possui credenciais de administrador para a conta \{account_key\}.",
        "code": "PIX000054"
    }
    ```

STATUS 422

Response Body: Tentativa de Chave Pix CPF Inválida

    ```json
    {
        "title": "Attempted CPF Pix Key is Not that of Account Owner",
        "description": "A chave pix fornecida \{pix_key\} não corresponde ao CPF {document_number} do titular da conta.",
        "translation": "A chave pix fornecida \{pix_key\} não corresponde ao CPF {document_number} do titular da conta.",
        "code": "PIX000020"
    }
    ```

**IMPORTANTE:** O valor retornado no campo “pix_key_request_key“ deve ser utilizado na URL da requisição para aprovação da criação da Chave Pix.

## Aprovação de Chave Pix E-mail ou Celular

### Request

- MÉTODO PATCH
- ENDPOINT /baas/pix/keys/ PIX_KEY_REQUEST_KEY /twofa_validation

Request Body

```json
{
    "verification_code": "756816"
}
```

### Response

Response Body

```json
{
	"account_key": "6d30a0b1-cb90-4ceb-b1ea-5bd600cdf3c8",
	"created_at": "2022-09-02T17:41:55",
	"pix_key": {
		"account_key": "6d30a0b1-cb90-4ceb-b1ea-5bd600cdf3c8",
		"created_at": "2022-09-02T17:41:54",
		"pix_key": "pedro.pinho@qitech.com.br",
		"pix_key_status": "pending_confirmation",
		"pix_key_type": "email",
		"updated_at": "2022-09-02T17:41:54"
	},
	"pix_key_request_key": "f6209b7e-82da-44a8-9cfa-6ad0a689adb2",
	"request_data": {
		"account_created_at": "2022-09-02T22:44:36",
		"account_digit": "2",
		"account_number": "2359934",
		"account_type": "checking",
		"branch_number": "0001",
		"key": "pedro.pinho@qitech.com.br",
		"owner_document_number": "09080702000105",
		"owner_name": "VOVO LUCIA CONVENIENCIA LTDA",
		"owner_person_type": "legal",
		"trading_name": "VOVO LUCIA"
	},
	"request_failure_reason": null,
	"request_status": "pending",
	"request_type": "inclusion",
	"requester_key": "ef48fbe4-267b-45c1-9049-75345c075486",
	"updated_at": "2022-09-02T17:41:55"
}
```

STATUS 404

Response Body: Solicitação de chave Pix não encontrada

    ```json
    {
      "title": "Pix Key Request not found",
      "description": "Pix Key Request not found for key: {pix_key_request_key}.",
      "translation": "Pix Key Request não encontrada para a chave: {pix_key_request_key}.",
      "code": "PIX000008"
    }
    ```

STATUS 403

Response Body: Erro do Validador de Permissão

    ```json
    {
        "title": "Permission Validator Error",
        "description": "Selected agent do not own this item.",
        "translation": "O agente selecionado não é dono do item.",
        "code": "QIT000005"
    }
    ```

STATUS 400

Response Body: Pedido de criação não possui validação

    ```json
    {
        "title": "Key request does not have validation",
        "description": "Key request does not have two steps validation",
        "translation": "Pedido de criação não possui validação de duas etapas",
        "code": "PIX000075"
    }
    ```

STATUS 400

Response Body: Pedido de criação não está pendente de validação

    ```json
    {
        "title": "Key Request Is Not Pending Validation",
        "description": "Key request {pix_key_request_key}, is not pending validation.",
        "translation": "Pedido de criação {pix_key_request_key}, não está pendente de validação.",
        "code": "PIX000076"
    }
    ```

STATUS 404

Response Body: Token Expirado

    ```json
    {
        "title": "Gone",
        "description": {
            "description": "Expired Code.",
            "translation": "Código de verificação expirado."
        },
        "translation": {},
        "extra_fields": {},
        "code": "2FA000410"
    }
    ```

STATUS 403

Response Body: Token Expirado

    ```json
    {
        "title": "Forbidden",
        "description": {
            "description": "Code already verified.",
            "translation": "Este código já foi utilizado."
        },
        "translation": {},
        "extra_fields": {},
        "code": "2FA000403"
    }
    ```

## Reenviar o token de aprovação

### Request

- MÉTODO PATCH
- ENDPOINT /baas/pix/keys/ PIX_KEY_REQUEST_KEY /resend_twofa

Request Body

```json
{}
```

### Response

Response Body

```json
{
	"account_key": "6d30a0b1-cb90-4ceb-b1ea-5bd600cdf3c8",
	"created_at": "2022-09-02T17:41:55",
	"pix_key": {
		"account_key": "6d30a0b1-cb90-4ceb-b1ea-5bd600cdf3c8",
		"created_at": "2022-09-02T17:41:54",
		"pix_key": "pedro.pinho@qitech.com.br",
		"pix_key_status": "pending_confirmation",
		"pix_key_type": "email",
		"updated_at": "2022-09-02T17:41:54"
	},
	"pix_key_request_key": "f6209b7e-82da-44a8-9cfa-6ad0a689adb2",
	"request_data": {
		"account_created_at": "2022-09-02T22:44:36",
		"account_digit": "2",
		"account_number": "2359934",
		"account_type": "checking",
		"branch_number": "0001",
		"key": "pedro.pinho@qitech.com.br",
		"owner_document_number": "09080702000105",
		"owner_name": "VOVO LUCIA CONVENIENCIA LTDA",
		"owner_person_type": "legal",
		"trading_name": "VOVO LUCIA"
	},
	"request_failure_reason": null,
	"request_status": "pending_validation",
	"request_type": "inclusion",
	"requester_key": "ef48fbe4-267b-45c1-9049-75345c075486",
	"updated_at": "2022-09-02T17:41:55"
}
```

STATUS 404

Response Body: Solicitação de chave Pix não encontrada

    ```json
    {
      "title": "Pix Key Request not found",
      "description": "Pix Key Request not found for key: {pix_key_request_key}.",
      "translation": "Pix Key Request não encontrada para a chave: {pix_key_request_key}.",
      "code": "PIX000008"
    }
    ```

STATUS 403

Response Body: Erro do Validador de Permissão

    ```json
    {
        "title": "Permission Validator Error",
        "description": "Selected agent do not own this item.",
        "translation": "O agente selecionado não é dono do item.",
        "code": "QIT000005"
    }
    ```

STATUS 400

Response Body: Pedido de criação não possui validação

    ```json
    {
        "title": "Key request does not have validation",
        "description": "Key request does not have two steps validation",
        "translation": "Pedido de criação não possui validação de duas etapas",
        "code": "PIX000075"
    }
    ```

STATUS 400

Response Body: Pedido de criação não está pendente de validação

    ```json
    {
        "title": "Key Request Is Not Pending Validation",
        "description": "Key request {pix_key_request_key}, is not pending validation.",
        "translation": "Pedido de criação {pix_key_request_key}, não está pendente de validação.",
        "code": "PIX000076"
    }
    ```

### Webhook de Inclusão de Chave Pix

WEBHOOK_TYPE key_inclusion
STATUS approved

Webhook Body

```json
{
	"pix_key": "c232142c-ddbf-41d6-a54f-3b90c28b97dc",
	"account_key": "94945886-7a6f-43e6-a307-e36c959e4903",
	"webhook_type": "key_inclusion",
	"pix_key_status": "active",
	"pix_key_request_key": "e274eb13-40b3-4902-978e-8e5fa267af53",
	"pix_key_request_type": "inclusion",
	"pix_key_request_status": "approved"
}
```

WEBHOOK_TYPE key_inclusion
STATUS failed

Webhook Body

```json
{
	"pix_key": "03882617038",
	"account_key": "94945886-7a6f-43e6-a307-e36c959e4903",
	"webhook_type": "key_inclusion",
	"pix_key_status": "inactivated",
	"pix_key_request_key": "e274eb13-40b3-4902-978e-8e5fa267af53",
	"pix_key_request_type": "inclusion",
	"pix_key_request_status": "failed",
	"request_failure_reason": "DCT200016"
}
```

:::info Código de Motivo de Falha da Requisição
- DCT200012: Já existe vínculo para essa chave, mas ela é possuída por outra pessoa. Indica-se que seja feita uma reivindicação de posse.
- DCT200013: Já existe vínculo para essa chave com o mesmo dono, mas ela encontra-se associada a outro participante. Indica-se que seja feita uma reivindicação de portabilidade.
- DCT200014: Existe uma reivindicação com status diferente de concluída ou cancelada para a chave do vínculo. Enquanto estiver nessa situação, o vínculo não pode ser excluído.
- DCT200015: Falha na validação dos parâmetros informados no request.
- DCT200016: O titular da chave (CPF/CNPJ) possui situação cadastral irregular. A inclusão da chave PIX não é permitida até a regularização.
:::

---

# Criar QR Code Pix dinâmico

URL: /documentation/pix/criar_qr_code_dinamico

## Request

ENDPOINT /baas/qrcode/dynamic
MÉTODO POST

Request Body: Com vencimento

```json
{
  "account_key": "f0d363be-fc49-4cfc-a1f8-c8d4d4195095",
  "amount": 22.34,
  "occurrence_type": "registration",
  "payer_document_number": "00000000000000",
  "payer_name": "Random",
  "payer_person_type": "legal",
  "payer_request": "Payment for order XXXXXXXXXX",
  "pix_key": "3d7d6a2b-f72f-44z7-bb20-79a94dff5645",
  "receiver_conciliation_id": "3d7d6a2bf72f44z7bb2079a94dff5645",
  "qr_code_type": "dynamic_term",
  "additional_data": [
    {
      "key_name": "Juros e Multa",
      "value": "Juros 2 ao mes e multa de 1%"
    }
  ],
  "fine_amount": 3,
  "interest_amount": 2,
  "expiration_date": "2023-03-25",
  "max_payment_days": 128,
  "rebate_amount": 1,
  "discounts": []
}

```

Request Body: Pagamento imediato

```json
{
  "account_key": "f0d363be-fc49-4cfc-a1f8-c8d4d4195095",
  "amount": 22.34,
  "expiration_seconds": 864000,
  "occurrence_type": "registration",
  "payer_document_number": "00000000000000",
  "payer_name": "Random",
  "payer_person_type": "legal",
  "payer_request": "Payment for order XXXXXXXXXX",
  "pix_key": "3d7d6a2b-f72f-44z7-bb20-79a94dff5645",
  "receiver_conciliation_id": "3d7d6a2bf72f44z7bb2079a94dff5645",
  "qr_code_type": "dynamic_instant",
  "additional_data": [
    {
      "key_name": "Juros e Multa",
      "value": "Juros 2 ao mes e multa de 1%"
    }
  ],
  "fine_amount": 3,
  "interest_amount": 2,
  "max_payment_days": 128,
  "rebate_amount": 1,
  "discounts": []
}

```

### Body Params

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `amount` * | float | Valor do QR Code antes do cálculo de descontos ou juros e multas. | - |
| `occurrence_type` * |  string |Tipo de ocorrencia. payment: Ocorrência do tipo pagamento, registration: Ocorrência do tipo registro, write_off: Ocorrência do tipo cancelamento pelo gerador, bank_written_off: Ocorrência do tipo cancelamento pelo banco. | - |
| `qr_code_type` * | string | Tipo do QR Code dinâmico | - |
| `pix_key` * | string | Chave Pix que representa a conta de destino da transação. | - |
| `receiver_conciliation_id` * | string | Identificador único para conciliação  | 32 |
| `expiration_date` | date | Data de vencimento da cobrança (no formato "YYYY-MM-DD" | - |
| `expiration_seconds`  | string | indica qual o tempo de validad e do QR Code em segundos, padrão 1 dia. | - |
| `payer_name` * | string | Nome do pagador. | - |
| `payer_document_number` * | string | CPF do pagador. | - |
| `payer_person_type` * | string | Tipo de pessoa (natural = física ou legal = jurídica). | - |
| `payer_request` * | string | Mensagem ao pagador. | - |
| `additional_data` * | array of objects | Informações que serão apresentadas para o pagador. | - |
| `max_payment_days` * | int32 | Dias máximo para pagamento da cobrança. |  - |
| `rebate_amount` * | float | Valor absoluto de abatimento antes do pagamento. | - |
| `interest_amount` * | float | Valor absoluto por dia de atraso após o vencimento, caso seja pago um dia após o vencimento o valor total será o valor ordinario + multa. |  - |
| `fine_amount` * | float | Multa em valor absoluto após o vencimento. |  - |
| `discounts` * | array of objects | Configurações de desconto. |  - |

### Objeto additional_data

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `key_name` * | string |  Nome do campo | - |
| `value` | string | Valor do campo | - |

### Objeto discount

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `discount_value` * | float |  Valor do desconto. | - |
| `discount_number` | int32 | Ordem que o desconto deve ser aplicado. | - |
| `discount_limit_date` | string | Data limite do desconto. | - |

## Response

STATUS 200

Response Body: Com vencimento

```json
{
  "qr_code_type": "dynamic_instant",
  "amount": 22.34,
  "expiration_seconds": null,
  "max_payment_days": null,
  "receiver_conciliation_id": "01GVGV9NXBCY287Z6CJ4S0ENW9",
  "payer_name": "Random",
  "payer_document_number": "00000000000000",
  "payer_person_type": "legal",
  "payer_request": "Payment for order XXXXXXXXXXXX",
  "pix_message": null,
  "modality_alteration": false,
  "expiration_date": "2023-03-25",
  "rebate_amount": 1,
  "interest_amount": 2,
  "fine_amount": 3,
  "paid_amount": null,
  "discounts": [],
  "additional_data": [],
  "origin": "system",
  "origin_key": null,
  "pix_key": "3d7d6a2b-f72f-44z7-bb20-79a94dff5645",
  "qr_code_key": "6fd14834-03e3-4777-b907-d2c43d4c2a1e",
  "occurrence_type": "registration",
  "end_to_end_id": null,
  "source_account_branch": null,
  "source_account_financial_institution": null,
  "source_account_ispb": null,
  "source_account_number": null,
  "source_account_digit": null,
  "disable": null,
  "qr_code_occurrence_key": "38c55754-2c26-4065-aa21-240c6b9a8ce7",
  "base_64": "\<BASE64 DA URI DO PIX COPIA E COLA\>",
  "image": "\<BASE64 DA IMAGEM\>"
}

```

STATUS 200

Response Body: Pagamento imediato

```json
{
  "qr_code_type": "dynamic_instant",
  "amount": 22.34,
  "expiration_seconds": 864000,
  "max_payment_days": null,
  "receiver_conciliation_id": "01GVGV9NXBCY287Z6CJ4S0ENW9",
  "payer_name": "Random",
  "payer_document_number": "00000000000000",
  "payer_person_type": "legal",
  "payer_request": "Payment for order XXXXXXXXXXXX",
  "pix_message": null,
  "modality_alteration": false,
  "expiration_date": null,
  "rebate_amount": 1,
  "interest_amount": 2,
  "fine_amount": 3,
  "paid_amount": null,
  "discounts": [],
  "additional_data": [],
  "origin": "system",
  "origin_key": null,
  "pix_key": "3d7d6a2b-f72f-44z7-bb20-79a94dff5645",
  "qr_code_key": "6fd14834-03e3-4777-b907-d2c43d4c2a1e",
  "occurrence_type": "registration",
  "end_to_end_id": null,
  "source_account_branch": null,
  "source_account_financial_institution": null,
  "source_account_ispb": null,
  "source_account_number": null,
  "source_account_digit": null,
  "disable": null,
  "qr_code_occurrence_key": "38c55754-2c26-4065-aa21-240c6b9a8ce7",
  "base_64": "\<BASE64 DA URI DO PIX COPIA E COLA\>",
  "image": "\<BASE64 DA IMAGEM\>"
}

```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}

```

---

# Criar QR Code Estático

URL: /documentation/pix/criar_qr_code_estatico

## Request

ENDPOINT /baas/qrcode/static
MÉTODO POST

Request Body

```json
{
    "qr_code_format": "both",
    "pix_key": "3d7d6a2b-f72f-44c7-bb20-79a94dff5954",
    "receiver_name": "Tywin Lannister",
    "amount": 10.25
}

```

### Body params

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `qrcode_format` | string | indica qual o tipo de retorno após a geração do QR Code (image, payload, both: padrão). | - |
| `pix_key` * | string |Chave Pix atrelada a conta de recebimento ao executar o pagamento com o QR Code. | 10 |
| `receiver_name` * | string | Nome do dono da conta. | - |
| `amount` | float | Valor do QR Code. Caso não seja enviado o pagador deverá inserir o total durante a transferência. | - |

## Response

STATUS 200

Response Body

```json
{
  "image": "\<BASE64 DA IMAGEM\>",
  "payload": "\<BASE64 DA URI DO PIX COPIA E COLA\>"
}

```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}

```

---

# Decodificar QR Code Pix

URL: /documentation/pix/decodificar_qr_code

Decodifica um QR Code Pix retornando os dados contidos no payload. Não realiza consulta DICT na conta destino e não persiste o QR Code consultado — adequado para fluxos de pré-visualização (preview) antes da decisão de pagamento.

## Request

ENDPOINT /pix/decode_qrcode_payload
MÉTODO POST

Request Body

```json
{
   "qr_code_payload": "00020126580014br.gov.bcb.pix0136a23bf0e9-5175-4829-bf89-e8fe6ac09aa1520400005303986540530.005802BR5914TywinLannister6008saopaulo62070503***6304D4FD"
}
```

### Body Params

| Campo               | Tipo   | Descrição               | Caracteres |
|---------------------|--------|-------------------------|------------|
| `qr_code_payload` * | string | Pix Copia e Cola        | -          |

## Response

STATUS 200

Response Body: QR Code estático

```json
{
  "qr_code_type": "static",
  "qr_code_payload": "00020126580014br.gov.bcb.pix0136a23bf0e9-5175-4829-bf89-e8fe6ac09aa1520400005303986540530.005802BR5914TywinLannister6008saopaulo62070503***6304D4FD",
  "pix_key": "a23bf0e9-5175-4829-bf89-e8fe6ac09aa1",
  "transfer_amount": "30.00",
  "additional_data": null,
  "qr_code_data": {
    "target_pix_key": "a23bf0e9-5175-4829-bf89-e8fe6ac09aa1",
    "amount": "30.00",
    "receiver_conciliation_id": "***",
    "additional_data": [],
    "category_code": "0000",
    "city": "saopaulo",
    "postal_code": null,
    "reusable_qrcode": "no"
  }
}
```

STATUS 200

Response Body: QR Code dinâmico pagamento imediato

```json
{
  "qr_code_type": "dynamic_instant",
  "qr_code_payload": "00020101021226850014br.gov.bcb.pix2563qrcodepix.bb.com.br/pix/v2/d373e385-dfe7-49f6-b9ec-14ba60a9b8285204000053039865802BR5925TESTE62070503***63047B7D",
  "pix_key": "teste.cobrancapix@gmail.com.br",
  "receiver_conciliation_id": "fgnb4NTt7pOUBGfrcporERwVVqr0f8PWRfK",
  "amount": "9367.61",
  "status": "ATIVA",
  "qr_code_data": {
    "target_pix_key": "teste.cobrancapix@gmail.com.br",
    "receiver_conciliation_id": "fgnb4NTt7pOUBGfrcporERwVVqr0f8PWRfK",
    "amount": "9367.61",
    "can_change": "no",
    "expiration_seconds": 201574,
    "created_at": "2023-03-13T19:00:28.440Z",
    "presented_at": "2023-03-14T19:07:48.729Z",
    "question_to_payer": "Liquidacao de Parcelas",
    "status": "ATIVA",
    "revision": 0,
    "category_code": "0000",
    "city": "RIO DE JANEIRO",
    "postal_code": null,
    "reusable_qrcode": "no",
    "receiver_url": "qrcodepix.bb.com.br/pix/v2/d373e385-dfe7-49f6-b9ec-14ba60a90000",
    "additional_data": [],
    "payer_name": "ISMAEL FATIMA AMARAL",
    "payer_document_number": "10003550206",
    "payer_person_type": "natural",
    "target_name": "TESTE LTDA.",
    "target_trading_name": null,
    "address": "Rua Tapajos, 941",
    "state": "RJ"
  }
}
```

STATUS 200

Response Body: QR Code dinâmico com vencimento

```json
{
  "qr_code_type": "dynamic_term",
  "qr_code_payload": "00020101021226840014br.gov.bcb.pix2562invoice.starkbank.com/v2/cobv/8b434df48c30482a81f7c936ae35cc123456000053039865802BR5925Oncred Sociedade de Credi6015TESTE 62070503***6304D008",
  "pix_key": "e623e7b0-d00a-400e-aee6-79632430e817",
  "receiver_conciliation_id": "8b434df48c30482a81f7c936ae35cc87",
  "amount": "55.59",
  "status": "ATIVA",
  "qr_code_data": {
    "target_pix_key": "e623e7b0-d00a-400e-aee6-79632430e817",
    "receiver_conciliation_id": "8b434df48c30482a81f7c936ae35cc87",
    "original_amount": "55.59",
    "reduction_amount": null,
    "discount_amount": null,
    "fee_amount": null,
    "fine_amount": null,
    "amount": "55.59",
    "due_date": "2023-03-27",
    "days_after_due_accepted": 16,
    "created_at": "2023-01-10T19:49:58.30Z",
    "presented_at": "2023-03-10T15:32:15.87Z",
    "question_to_payer": null,
    "status": "ATIVA",
    "revision": 0,
    "category_code": "0000",
    "reusable_qrcode": "no",
    "receiver_url": "invoice.starkbank.com/v2/cobv/8b434df48c30482a81f7c936ae351234",
    "additional_data": [],
    "payer_name": "Willian Rocha",
    "payer_document_number": "00000000000",
    "payer_person_type": "natural",
    "target_name": "TESTE LTDA.",
    "target_trading_name": null,
    "address": "Rua Tapajos, 941",
    "state": "SP",
    "city": "Sao Caetano do Sul",
    "postal_code": "09551230"
  }
}
```

### Campos da resposta

| Campo                              | Tipo            | Descrição                                                                                  | Presente em       |
|------------------------------------|-----------------|--------------------------------------------------------------------------------------------|-------------------|
| `qr_code_type`                     | string          | Tipo do QR Code: `static`, `dynamic_instant` ou `dynamic_term`                             | Todos             |
| `qr_code_payload`                  | string          | Payload EMV original enviado na requisição                                                 | Todos             |
| `qr_code_data.target_pix_key`      | string          | Chave Pix do recebedor                                                                     | Todos             |
| `qr_code_data.amount`              | string/decimal  | Valor da cobrança. Em `dynamic_term` representa o valor final (após multa/juros/desconto)  | Todos             |
| `qr_code_data.receiver_conciliation_id` | string     | Identificador de conciliação do recebedor (txid)                                           | Todos             |
| `qr_code_data.additional_data`     | array           | Lista de informações adicionais `{name, value}`                                            | Todos             |
| `qr_code_data.category_code`       | string          | Código de categoria do estabelecimento (MCC)                                               | Todos             |
| `qr_code_data.city`                | string          | Cidade do recebedor                                                                        | Todos             |
| `qr_code_data.postal_code`         | string          | CEP do recebedor                                                                           | Todos             |
| `qr_code_data.reusable_qrcode`     | string          | `yes` se o QR Code pode ser pago múltiplas vezes, `no` caso contrário                      | Todos             |
| `qr_code_data.receiver_url`        | string          | URL do PSP do recebedor (campo `loc` do BR Code)                                           | `dynamic_*`       |
| `qr_code_data.status`              | string          | Status da cobrança (ver enumeradores abaixo)                                               | `dynamic_*`       |
| `qr_code_data.revision`            | integer         | Versão atual da cobrança                                                                   | `dynamic_*`       |
| `qr_code_data.created_at`          | string (ISO)    | Data de criação da cobrança no PSP do recebedor                                            | `dynamic_*`       |
| `qr_code_data.presented_at`        | string (ISO)    | Data de apresentação da cobrança ao pagador                                                | `dynamic_*`       |
| `qr_code_data.question_to_payer`   | string          | Mensagem do recebedor para o pagador (`solicitacaoPagador`)                                | `dynamic_*`       |
| `qr_code_data.payer_name`          | string          | Nome do pagador esperado, quando informado pelo recebedor                                  | `dynamic_*`       |
| `qr_code_data.payer_document_number` | string        | CPF/CNPJ do pagador esperado                                                               | `dynamic_*`       |
| `qr_code_data.payer_person_type`   | string          | `natural` ou `legal`                                                                       | `dynamic_*`       |
| `qr_code_data.target_name`         | string          | Nome do recebedor                                                                          | `dynamic_*`       |
| `qr_code_data.expiration_seconds`  | integer         | Tempo de validade da cobrança em segundos a partir de `created_at`                         | `dynamic_instant` |
| `qr_code_data.can_change`          | string          | `yes` se o pagador pode alterar o valor, `no` caso contrário                               | `dynamic_instant` |
| `qr_code_data.original_amount`     | string/decimal  | Valor original da cobrança antes de multa/juros/desconto                                   | `dynamic_term`    |
| `qr_code_data.due_date`            | string (date)   | Data de vencimento da cobrança                                                             | `dynamic_term`    |
| `qr_code_data.days_after_due_accepted` | integer     | Dias após o vencimento em que a cobrança ainda aceita pagamento                            | `dynamic_term`    |
| `qr_code_data.fine_amount`         | string/decimal  | Multa aplicada após o vencimento                                                           | `dynamic_term`    |
| `qr_code_data.fee_amount`          | string/decimal  | Juros aplicados após o vencimento                                                          | `dynamic_term`    |
| `qr_code_data.discount_amount`     | string/decimal  | Desconto concedido antes do vencimento                                                     | `dynamic_term`    |
| `qr_code_data.reduction_amount`    | string/decimal  | Abatimento aplicado à cobrança                                                             | `dynamic_term`    |
| `qr_code_data.target_trading_name` | string          | Nome fantasia do recebedor                                                                 | `dynamic_*`       |
| `qr_code_data.address`             | string          | Logradouro do recebedor                                                                    | `dynamic_*`       |
| `qr_code_data.state`               | string          | UF do recebedor                                                                            | `dynamic_*`       |

:::caution Campos deprecated na raiz da resposta
Os campos abaixo são retornados na raiz da resposta apenas por retrocompatibilidade e serão removidos em uma versão futura. Utilize os equivalentes dentro de `qr_code_data`.

| Campo                      | Equivalente                              | Presente em  |
|----------------------------|------------------------------------------|--------------|
| `pix_key`                  | `qr_code_data.target_pix_key`            | Todos        |
| `transfer_amount`          | `qr_code_data.amount`                    | `static`     |
| `additional_data`          | `qr_code_data.additional_data`           | `static`     |
| `amount`                   | `qr_code_data.amount`                    | `dynamic_*`  |
| `receiver_conciliation_id` | `qr_code_data.receiver_conciliation_id`  | `dynamic_*`  |
| `status`                   | `qr_code_data.status`                    | `dynamic_*`  |
:::

:::info QR Code estático
Por especificação do BR Code, QR Codes estáticos não contêm dados do pagador esperado, data de expiração, multa, juros, descontos nem abatimento. Esses campos só existem em QR Codes dinâmicos.
:::

:::info Status
Para o QR Code do tipo dinâmico, é retornado o status do QR Code conforme a tabela de enumeradores abaixo.
:::

#### Enumeradores Status QR Code dinâmico

| Enumerador                          | Descrição                                            |
|-------------------------------------|------------------------------------------------------|
| **ATIVA**                           | Cobrança disponível, sem pagamento realizado         |
| **CONCLUIDA**                       | Cobrança paga e finalizada                           |
| **REMOVIDA_PELO_USUARIO_RECEBEDOR** | Usuário recebedor solicitou a remoção da cobrança    |
| **REMOVIDA_PELO_PSP**               | Banco recebedor solicitou a remoção da cobrança      |

## Erros

STATUS 400

QR Code com formato inválido

```json
{
  "data": "{\"title\": \"Invalid Qr Code Format\", \"description\": \"The Qr Code format is invalid, please enter a valid Qr Code\", \"translation\": \"O formato do Qr Code é inválido, por favor insira um Qr Code válido\", \"extra_fields\": {}, \"code\": \"PXT000070\"}"
}

```

Tipo de QR Code não identificado no payload

```json
{
  "data": "{\"title\": \"Invalid Qr Code Type\", \"description\": \"The Qr Code payload given did not provide a propper Qr Code type\", \"translation\": \"O payload de QR Code fornecido não contêm um tipo de Qr Code Válido\", \"extra_fields\": {}, \"code\": \"PXT000071\"}"
}

```

Erro ao processar QR Code dinâmico

```json
{
  "data": "{\"title\": \"Error in Qr Code Payload Request\", \"description\": \"An error occurred while requesting the qr code payload to the registry institution\", \"translation\": \"Um erro ocorreu durante a requisição do payload do qr code para a instituição de registro\", \"extra_fields\": {}, \"code\": \"PXT000069\"}"
}

```

---

# Excluir chave Pix

URL: /documentation/pix/excluir_chave

## Request

ENDPOINT /baas/pix/keys/ PIX_KEY
MÉTODO DELETE

### Path params

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `pix_key` * | string |  Chave PIX que será excluída. | chave uuid |  

## Response

STATUS 200

Response Body

```json
{
  "account_key": "9d3d0083-ac71-43f0-8a90-c00a157a4883",
  "created_at": "2021-12-06T21:16:11",
  "pix_key": {
    "account_key": "9d3d0083-ac71-43f0-8a90-c00a157a4883",
    "created_at": "2021-12-06T21:16:11",
    "pix_key": "b1afcafb-bd88-4958-b8ab-48c3a00044a0",
    "pix_key_status": "inactive",
    "pix_key_type": "random_key",
    "updated_at": "2021-12-06T21:16:22"
  },
  "pix_key_request_key": "ab816c64-bce9-42e9-be6f-9f690a1dccbc",
  "request_data": {},
  "request_failure_reason": null,
  "request_status": "approved",
  "request_type": "deletion",
  "requester_key": "62d1f47a-397d-4a46-bcf6-29e4a07d1375",
  "updated_at": "2021-12-06T21:16:22"
}

```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}

```

---

# Introdução

URL: /documentation/pix/introducao

Pix é o pagamento instantâneo brasileiro. O meio de pagamento criado pelo Banco Central (BACEN) em que os recursos são transferidos entre contas em poucos segundos, a qualquer hora ou dia. É prático, rápido e seguro.

A QI Tech por ser uma instituição homologada junto ao Banco Central é integrante do Sistema de Pagamento Brasileiro (SPB), podendo oferecer mais essa facilidade aos seus clientes.

## Vantagens e potencial
Além de aumentar a velocidade em que pagamentos ou transferências são feitos e recebidos, o Pix tem o potencial de:

- Alavancar a competitividade e a eficiência do mercado;
- Baixar o custo, aumentar a segurança e aprimorar a experiência dos clientes;
- Incentivar a eletronização do mercado de pagamentos de varejo;
- Promover a inclusão financeira; e
- Preencher uma série de lacunas existentes na cesta de instrumentos de pagamentos disponíveis atualmente à população.

## Erros

### Exemplo de resposta de erro:

**Response Body**

```json
{
  "title": "SPI Timeout Control",
  "description": "SPI Timeout Control.",
  "translation": "Controle de timeout no SPI.",
  "extra_fields": {
    "description": "SPI Timeout Control.",
    "translation": "Controle de timeout no SPI.",
    "external_title": "SPI Timeout Control",
    "external_code": "PXP000007"
  },
  "code": "PXP000007"
}
```

### Tabela de erros:

| Code | Message | Status HTTP | Description | Translated description |
|---|---|---|---|---|
| QIT000403 | Forbidden | 403 | Participant has not rights to this operation. | Participante não tem poderes para essa operação. |
| QIT000400 | BadRequest | 400 | The server cannot or will not process the request due to an apparent client error (e.g., malformed request syntax, size too large, invalid request message framing, or deceptive request routing). | O servidor não pode ou não processará a request devido a um erro do cliente (por exemplo, sintaxe de request malformada, tamanho muito grande, enquadramento de mensagem de request inválida ou roteamento de request enganoso). |
| PXP000046 | Gone | 410 | Expired QR code. |QR Code expirado. |
| PXP000046 | Gone | 410 | Expired QR code. | QR Code expirado. |
| QIT000404 | NotFound | 404 | The requested resource could not be found but may be available in the future. Subsequent requests by the client are permissible. | O resource solicitado não pôde ser encontrado, mas pode estar disponível no futuro. Requests subsequentes do cliente são permitidos. |
| QIT000500 | InternalServerError | 500 | An internal error has occurred and its being investigated. | Um erro interno aconteceu e está sendo investigado. |
| PXP000040 | ClaimKeyNotFound | 408 | Claim Key Not Found. | Chave a ser reivindicada não encontrada. |
| QIT000403 | Forbidden | AB03 | Participant has not rights to this operation. | Translated description |
| PXP000007 | AB03 | 408 | SPI Timeout Control. | Controle de timeout no SPI. |
| PXP000037 | AB09 | 502 | Cancelled transaction due to receiver's internal error. | Transação interrompida devido a erro no PSP do Recebedor. |
| PXP000037 | AB11 | 408 | Target PSP Timeout. | Timeout do participante emissor da ordem de pagamento. |
| PXP000009 | AC03 | 400 | Target account number is invalid. | Número da conta de destino é inexistente ou inválido. |
| PXP000010 | AC06 | 400 | Target account is blocked. | A conta de destino encontra-se bloqueada. |
| PXP000011 | AC07 | 400 | Target account is closed. | A conta de destino encontra-se encerrada. |
| PXP000032 | AC14 | 400 | Incorrect type for target account. | Tipo incorreto para a conta transacional especificada. | 
| PXP000012 | AG03 | 400 | Unsupported transaction for given target account. | A conta de destino não suporta este tipo de transação. |
| PXP000013 | AGNT | 400 | SPI participant is not PSP settler agent of payer nor receiver. | Participante direto do SPI não é liquidante do PSP do Pagador / Recebedor. |
| PXP000014 | AM01 | 400 | Zero value payment order. | Ordem de pagamento com valor zero. |
| PXP000015 | AM04 | 400 | Insufficient funds in PI account from payer. | Saldo insuficiente na conta PI do pagador. |
| PXP000016 | AM09 | 400 | Return value greater than corresponding payment order. | Valor de devolução acima do valor de pagamento correspondente. |
| PXP000017 | AM18 | 400 | Invalid transactions number. | Quantidade de transações inválida. |
| PXP000018 | BE01 | 400 | Beneficiary document number is not that of target account owner. | CPF/CNPJ do usuário recebedor não é compatível com o titular da conta de destino. |
| PXP000019 | CH11 | 400 | Invalid beneficiary document number. | CPF/CNPJ da conta de destino está incorreto. |
| PXP000020 | CH16 | 400 | Incorrect message element. | Elemento da mensagem incorreto. |
| PXP000021 | DS04 | 400 | Beneficiary's PSP has rejected payment order. | Ordem de pagamento foi rejeitada pelo banco recebedor. |
| PXP000022 | DS0G | 403 | Signing participant is unauthorized to make a payment order for paying account. | Participante que assinou a mensagem não é autorizado a realizar a operação na conta PI debitada. |
| PXP000023 | DT02 | 400 | Invalid datetime for message delivery. | Data e Hora do envio da mensagem inválida. |
| PXP000024 | ED05 | 400 | Error while processing payment (generic error). | Erro no processamento do pagamento (erro genérico). |
| PXP000025 | FF08 | 400 | Badly formatted operation's identifier. | Identificador da operação mal formatado. |
| PXP000026 | RC09 | 400 | Invalid or non-existent payer's PSP ISPB number. | Número ISPB do PSP do Pagador é inválido ou inexistente. |
| PXP000027 | RC10 | 400 | Invalid or non-existent beneficiary's PSP ISPB number. | Número ISPB do banco recebedor é inválido ou inexistente. |
| PXP000043 | DS27 | 400 | Invalid or non-existent ISPB number. | Número ISPB é inválido ou inexistente. |
| PXP000044 | AM02 | 400 | Amount too great for credited account. | Valor de pagamento/devolução acima do permitido para a conta de destino creditada. |
| PXP000028 | JDPISPI001 | 500 | Insufficient funds on JDPI managed PI account. | Saldo insuficiente na conta PI gerenciada pelo JDPI. |
| PXP000029 | JDPISPI002 | 500 | SPI has returned admi.002 message. N/A. | SPI retornou mensagem admi.002. Erro retornado na mensagem: N/A. |
| PXP000030 | JDPISPI003 | 500 | Insufficient funds on PSP sub-account. | Saldo insuficiente na subconta do PSP. |
| PXP000031 | JDPISPI004 | 500 | General failure during debt on JDPI managed PI account. | Falha geral ao realizar o débito em conta PI gerenciada pelo JDPI. |
| PXP000001 | JDPICHV001 | 404 | Pix key not found. | Chave Pix não encontrada. |
| PXP000002 | JDPICHV002 | 404 | Account has no pix keys linked. | Conta não possui nenhuma chave pix. |
| PXP000003 | JDPICHV003 | 404 | CPF/CNPJ has no pix keys linked. | CPF/CNPJ informada não possui nenhuma chave pix vinculada. |
| PXP000004 | JDPICHV004 | 400 | Pix key already linked on DICT. | Chave pix já está vinculada. |
| PXP000005 | JDPICHV005 | 400 | Pix key is linked to another person. Claim recommended. | Chave pix existe mas está possuída por outra pessoa. Reivindicação de posse recomendada. |
| PXP000006 | JDPICHV006 | 400 | Pix key is linked on another account of the same owner. Key alteration recommended. | Chave pix está vinculada a outra conta com o mesmo dono. Alteração de chave recomendada. |
| PXP000033 | JDPICHV007 | 400 | Missing new account or client name on pix key alteration request. | Nova conta ou nome do cliente faltando no pedido de alteração de chave pix. |
| PXP000034 | JDPICHV008 | 400 | Wrong field for trading name on natural person pix key alteration. | Campo para nome fantasia incorreto para alteração de chave pix pessoa física.recomendada. |
| PXP000035 | JDPICHV009 | 400 | Missing account type, account number, account created at, name or trading name on key alteration request. | Dados incompletos para alteração de chave pix. Faltando tipo de conta, número da conta, data de abertura, nome ou nome fantasia. |
| PXP000042 | JDPIRVN011 | 400 | Claim current status does not allow conclusion. | A situação da sua Reivindicação não permite a sua conclusão. |
| PXP000041 | JDPIRVN014 | 400 | Claim Key Not Found. | Chave a ser reivindicada não encontrada. |
| PXP000046 | EntryKeyInCustodyOfDifferentParticipant | 400 | There is already a link for this key with the same owner, but it is associated with another participant. It is indicated that a portability claim be made. | Já existe vínculo para essa chave com o mesmo dono, mas ela encontra-se associada a outro participante. Indica-se que seja feita uma reivindicação de portabilidade. |
| PXP000047 | RateLimited | 429 | Connection was refused by BACEN. Max requests per minute has been exceeded. | A requisição foi recusada pelo BACEN. A quantidade máxima de requisições por minuto foi excedida. |

---

# Listar chaves Pix de uma conta

URL: /documentation/pix/listar_chaves_pix

## Request

ENDPOINT /baas/pix/keys
MÉTODO GET

## Query Params

| Campo            | Tipo   | Descrição                                                                                                               | Caracteres |
|------------------|--------|-------------------------------------------------------------------------------------------------------------------------|------------|
| `account_key`*   | string | Chave uuid da conta.                                                                                                    | Chave uuid |
| `pix_key_status` | enum   | **[Enumerador Pix Key Status](#Pix-Key-Status)** Enumerador indicando o status das chaves pix que devem ser retornadas. | -          |

### Enumerador _Pix Key Status_

| Enumerador                             | Descrição                                                       |
|----------------------------------------|-----------------------------------------------------------------|
| **pending_confirmation**               | Pendente de confirmação                                         |
| **active**                             | Ativa                                                           |
| **inactivated**                        | Inativa                                                         |
| **pending_claim_request_confirmation** | Pendente de confirmação do pedido de portabilidade de chave Pix |

## Response

STATUS 200

Response Body

```json
[
  {
    "account_key": "6d30a0b1-cb90-4ceb-b1ea-5bd600cdf3c8",
    "pix_key": "63927180432",
    "pix_key_status": "active",
    "pix_key_type": "cpf",
    "updated_at": "2022-09-02T20:00:36",
    "created_at": "2022-09-02T20:00:36"
  },
  {
    "account_key": "40cea00e-9d99-46f9-b55f-dbafa84553a9",
    "pix_key": "+5562985013819",
    "pix_key_status": "pending_confirmation",
    "pix_key_type": "phone_number",
    "updated_at": "2022-09-02T20:00:36",
    "created_at": "2022-09-02T20:00:36"
  },
  {
    "account_key": "0ebc3bfb-be25-4093-adf2-f0cdee6f5e69",
    "pix_key": "address@email.com",
    "pix_key_status": "pending_confirmation",
    "pix_key_type": "email",
    "updated_at": "2022-09-02T20:00:36",
    "created_at": "2022-09-02T20:00:36"
  }
]
```

STATUS 400

Response Body

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}

```

---

# MED 2.0 — Consultar Recuperações de Valores

URL: /documentation/pix/med/consultar_recuperacao_de_valores

Além dos webhooks de acompanhamento, você pode consultar as recuperações de valores abertas contra a sua conta: a listagem devolve todas as recuperações recebidas, e a consulta individual devolve o detalhe de uma recuperação a partir do seu `funds_recovery_id` — o mesmo identificador recebido no webhook.

## Listar recuperações de valores

ENDPOINT /internal/pix/funds_recovery/incoming
MÉTODO GET

### Query params

| Campo                   | Tipo    | Descrição                                                                                              |
| ----------------------- | ------- | -------------------------------------------------------------------------------------------------------- |
| `funds_recovery_status` | string  | Filtra pelo status da recuperação: `awaiting_analysis`, `pending_approval`, `completed` ou `cancelled`. |
| `initial_date`          | string  | Filtra recuperações criadas a partir desta data. Formato `YYYY-MM-DD`.                                  |
| `final_date`            | string  | Filtra recuperações criadas até esta data. Formato `YYYY-MM-DD`.                                        |
| `page_number`           | integer | Página da listagem. Padrão: `1`.                                                                        |
| `page_size`             | integer | Itens por página. Padrão: `10`, máximo: `30`.                                                           |

### Response

STATUS 200

Response Body

```json
{
  "data": [
    {
      "funds_recovery_key": "9eb5f452-81fd-4f67-9f2a-49e14e53ef64",
      "funds_recovery_id": "b8d19bd4-51dc-4784-a2ad-52807c6dfc80",
      "infraction_report_id": "3541127e-cbc9-44f6-bb0e-3e346ddaefb4",
      "pix_transfer_key": "957ef961-1824-47e6-90fd-f8b4775a1e1c",
      "target_account_key": "6711e3cf-fdf4-41b4-88e8-0a31cb83b9f4",
      "target_person_key": "4f6ea994-e53a-4ef8-b2b0-89d14c4667bc",
      "end_to_end_id": "E12345678202607161648s188f18bJty",
      "funds_recovery_status": "awaiting_analysis",
      "situation_type": "scam",
      "report_details": "Transação acusada como fraudulenta pelo originador.",
      "infraction_amount": 150.50,
      "credited_participant": "32402502",
      "debited_participant": "12345678",
      "analysis_result": null,
      "analysis_details": null,
      "blocked_balance_status": "completelly_blocked",
      "tracking_graph": null,
      "funds_recovery_status_events": [
        {
          "old_status": null,
          "new_status": "awaiting_analysis",
          "created_at": "2026-07-16T16:48:43Z"
        }
      ],
      "updated_at": "2026-07-16T16:48:43Z",
      "created_at": "2026-07-16T16:48:43Z"
    }
  ],
  "pagination": {
    "current_page": 1,
    "next_page": null,
    "rows_per_page": 10
  }
}
```

| Campo    | Tipo  | Descrição                                                                                                                            |
| -------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `data` * | array | Lista de recuperações de valores abertas contra a sua conta, da mais recente para a mais antiga. **[Objeto funds_recovery](./recebimento_recuperacao_de_valores.md#objeto-funds_recovery)** |
| `pagination` * | object | Dados de paginação: `current_page`, `next_page` (nulo na última página) e `rows_per_page`. |

## Consultar uma recuperação de valores

ENDPOINT /internal/pix/funds_recovery/incoming/ FUNDS_RECOVERY_ID
MÉTODO GET

### Path params

| Campo                 | Tipo   | Descrição                                                                     | Caracteres |
| --------------------- | ------ | ------------------------------------------------------------------------------ | ---------- |
| `FUNDS_RECOVERY_ID` * | string | Identificador da recuperação de valores no Bacen (`funds_recovery_id`).       | 32         |

### Response

STATUS 200

A resposta é o **[objeto funds_recovery](./recebimento_recuperacao_de_valores.md#objeto-funds_recovery)**, incluindo o histórico de eventos de status (`funds_recovery_status_events`) e, quando a recuperação já foi respondida, o campo `client_awnser`.

---

# Mecanismo Especial de Devolução do PIX (MED)

URL: /documentation/pix/med/introducao

O Banco central desenvolveu um sistema de integração entre bancos com o objetivo de diminuir as ocorrências e a gravidade das fraudes cometidas envolvendo transações monetárias no escopo do PIX. O sistema consiste em duas entidades: o relato de infração e o pedido de devolução, sendo que para clientes internos da QI Tech, por questões de segurança, o gerenciamento das mesmas é realizado internamente, evitando possíveis fraudes.

O fluxo normalmente seguido é, ao identificar uma transação fraudulenta, o participante originador deve abrir um relato de infração, o qual o participante de destino deve apurar e, num período de 7 dias, responder acatando ou não o mesmo. Caso seja acatado, o participante originador novamente pode abrir um pedido de devolução relativo à infração, o qual deve ser acatado pelo participante recebedor.

---

# Recebimento de Pedidos de Devolução

URL: /documentation/pix/med/recebimento_pedidos_de_devolucao

Ao contrário de relatos de infração, os pedidos de devolução, desde que de acordo com algumas diretrizes, devem, sempre que possível, serem fechados com aceite, a não ser que a conta esteja fechada ou sem saldo. Dito isso, o cliente apenas receberá os webhooks de atualização de status do pedido de devolução, não sendo algo contestável, visto que as razões para se abrir um pedido de devolução pelo MED são ou devido a um relato de infração já aceito, ou outro participante abrindo vido a uma falha operacional.

## Webhook de um incoming refund request

Um incoming refund request é uma devolução aberta por outro banco, onde o dono da conta é o alvo da transação contestada.

## Webhook request body

Webhook: incoming refund request

```json
{
  "event_datetime": "2024-07-16T16:48:43Z",
  "key": "0dedf537-a75e-4945-be1d-5d278c623022",
  "data": {
    "refund_request_key": "9eb5f452-81fd-4f67-9f2a-49e14e53ef64",
    "infraction_report_key": "3541127e-cbc9-44f6-bb0e-3e346ddaefb4",
    "target_account_key": "6711e3cf-fdf4-41b4-88e8-0a31cb83b9f4",
    "refund_request_type": "fraud",
    "blocked_balance_status": "completelly_blocked",
    "pix_transfer_key": "957ef961-1824-47e6-90fd-f8b4775a1e1c",
    "end_to_end_id": "E12345678202404302308s188f18bJty",
    "requesting_participant": "18236120",
    "contested_participant": "32402502",
    "refund_request_details": null,
    "refund_payment_event": null,
    "requested_amount": 40,
    "refunded_amount": 0,
    "refund_request_status": "open",
    "analysis_result": null,
    "analysis_details": null,
    "reject_reason": null,
    "updated_at": "2024-07-16T19:48:43Z",
    "created_at": "2024-07-16T19:48:43Z"
  },
  "status": "open",
  "webhook_type": "incoming.internal_refund_request"
}

```

| Campo              | Tipo   | Descrição                                        | Caracteres                                                                    |
| ------------------ | ------ | ------------------------------------------------ | ----------------------------------------------------------------------------- |
| `event_datetime` * | string | Data e hora de criação da transação.             | 20                                                                            |
| `key` *            | string | Chave única de identificação do envio do evento. | 32                                                                            |
| `data` *           | string | Objeto incoming refund request data.             | **[Objeto incoming_refund_request](#objeto-incoming_refund_request)**         |
| `status` *         | string | Status da devolução.                             | **[Enumeradores refund_request_status](#enumeradores-refund_request_status)** |

### Enumeradores refund_request_status
| Enumerador  | Descrição                               |
| ----------- | --------------------------------------- |
| `open`      | Pedido recebido, e pendente de análise. |
| `closed`    | Análise concluída e pedido fechado.     |
| `cancelled` | Pedido cancelado pelo originados.       |

### Objeto incoming_refund_request
| Campo                      | Tipo   | Descrição                                                | Caracteres                                                                                      |
| -------------------------- | ------ | -------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| `refund_request_key` *     | string | UUID4 identificador da devolução no Bacen.               | 32                                                                                              |
| `infraction_report_key`    | string | UUID4 identificador da infração relacionada no Bacen.    | 32                                                                                              |
| `target_account_key` *     | string | Account key da conta de destino da transação original.   | 32                                                                                              |
| `refund_request_type` *    | string | Tipo do pedido de devolução.                             | **[Enumeradores refund_request_type](#enumeradores-refund_request_type)**                       |
| `pix_transfer_key` *       | string | Pix transfer key da transação original.                  | 32                                                                                              |
| `end_to_end_id` *          | string | end_to_end_id da transação original.                     | 32                                                                                              |
| `requesting_participant` * | string | Participante que originou a transação.                   | 8                                                                                               |
| `contested_participant` *  | string | Participante que recebeu a transação.                    | 8                                                                                               |
| `refund_request_details`   | string | Detalhes da devolução, enviados pelo outro participante. | 2000                                                                                            |
| `refund_payment_event`     | string | Evento de realização da devolução.                       | **[Objeto refund_payment_event](#objeto-refund_payment_event)**                                 |
| `requested_amount` *       | float  | Valor requisitado na devolução.                          | 2000                                                                                            |
| `refunded_amount` *        | float  | Valor total devolvido.                                   | 2000                                                                                            |
| `refund_request_status` *  | string | Status da devolução.                                     | **[Enumeradores refund_request_status](#enumeradores-refund_request_status)**                   |
| `analysis_result`          | string | Resultado da análise. Decidido pela QI Tech.             | **[Enumeradores refund_request_analysis_result](#enumeradores-refund_request_analysis_result)** |
| `analysis_details`         | string | Justificativa do resultado da análise.                   | 200                                                                                             |
| `reject_reason`            | string | Motivo de rejeição do pedido.                            | **[Enumeradores refund_request_reject_reason](#enumeradores-refund_request_reject_reason)**     |
| `blocked_balance_status` * | string | Status do bloqueio de saldo da conta de destino.         | **[Enumeradores blocked_balance_status](#enumeradores-blocked_balance_status)**                 |
| `created_at` *             | string | Data e hora de alteração da transação.                   | 20                                                                                              |
| `updated_at` *             | string | Data e hora de criação da transação.                     | 20                                                                                              |

### Objeto refund_payment_event
| Campo                  | Tipo   | Descrição                                   | Caracteres |
| ---------------------- | ------ | ------------------------------------------- | ---------- |
| `refund_end_to_end_id` | string | end_to_end_id da transação de devolução.    | 32         |
| `refund_transfer_key`  | string | Pix transfer key da transação de devolução. | 32         |
| `refund_amount`        | string | Valor da transação de devolução.            |            |
| `created_at`           | string | Data e hora de criação da transação.        | 20         |

### Enumeradores refund_request_analysis_result
| Enumerador           | Descrição                                                                                                      |
| -------------------- | -------------------------------------------------------------------------------------------------------------- |
| `totally_accepted`   | Devolução realizada de todos os valores requisitados.                                                          |
| `partially_accepted` | Devolução parcial por falta de saldo. Monitorando conta para realizar posteriores devoluções.                  |
| `rejected`           | Devolução rejeitada e nenhum recurso foi devolvido. Se motivo for por falta de saldo, a conta será monitorada. |

### Enumeradores refund_request_type
| Enumerador         | Descrição                                                                                        |
| ------------------ | ------------------------------------------------------------------------------------------------ |
| `fraud`            | Aberta posterior ao aceite de um relato de infração.                                             |
| `operational_flaw` | Aberta sem um relato de infração, utilizada para corrigir falhas operacionais dos participantes. |
| `refund_cancelled` | Correção de uma devolução realizada erroneamente.                                                |

### Enumeradores blocked_balance_status
| Enumerador            | Descrição                                                                         |
| --------------------- | --------------------------------------------------------------------------------- |
| `no_balance`          | Conta do cliente sem saldo. Monitorando saldo pendente.                           |
| `completelly_blocked` | Recursos equivalentes à transação completamente bloqueados.                       |
| `partially_blocked`   | Recursos equivalentes à transação parcialmente bloqueados. Monitorando saldo.     |
| `settled`             | Infração aceita, e pagamento do pedido de devolução realizado.                    |
| `partially_settled`   | Infração aceita, e pagamento do pedido de devolução parcialmente realizado.       |
| `released`            | Recursos liberados, seja por cancelamento da infração ou fechamento em desacordo. |

### Enumeradores refund_request_reject_reason
| Enumerador        | Descrição                                                           |
| ----------------- | ------------------------------------------------------------------- |
| `no_balance`      | Conta do cliente sem saldo. Monitorando saldo pendente.             |
| `account_closure` | Relacionamento com cliente encerrado. Impossível realizar devolução |
| `other`           | Outro motivo, não aplicável nos listados acima.                     |

:::info
O monitoramento de saldo de uma conta com devolução parcial tem um limite de 90 dias após a transação original ocorrer.
:::

## Webhook de um outgoing refund request

### Um outgoing refund request é pedido de devolução aberto pela QI, tendo como alvo outro participante.

## Webhook request body

Webhook: outgoing refund request

```json
{
  "event_datetime": "2024-07-22T10:31:09Z",
  "key": "15d91f4b-a55c-41a6-9c46-2704253a1cf7",
  "data": {
    "refund_request_key": "5f98671e-9ec0-4ed7-95a9-061861243efc",
    "pix_transfer_key": "d04e0858-ea91-4dab-8089-a27d6cc68235",
    "source_account_key": "134ad635-ce80-4c8c-bca0-9dd3e8251317",
    "end_to_end_id": "E32402502202404302308s188f18bJty",
    "requested_amount": 78.5,
    "refund_request_status": "open",
    "infraction_report_key": "3b727ade-a736-473e-91a6-07b841253f55",
    "refund_request_type": "fraud",
    "refund_request_details": "Infraction aceita, favor realizar devolução de recursos.",
    "requesting_participant": "32402502",
    "contested_participant": "12345678",
    "analysis_result": null,
    "analysis_details": null,
    "reject_reason": null,
    "refund_payment_event": null,
    "updated_at": "2024-07-16T19:48:43Z",
    "created_at": "2024-07-16T19:48:43Z",
  },
  "status": "open",
  "webhook_type": "outgoing.internal_refund_request"
}
```

| Campo              | Tipo   | Descrição                                        | Caracteres                                                                    |
| ------------------ | ------ | ------------------------------------------------ | ----------------------------------------------------------------------------- |
| `event_datetime` * | string | Data e hora de criação da transação.             | 20                                                                            |
| `key` *            | enum   | Chave única de identificação do envio do evento. | 32                                                                            |
| `data` *           | string | Objeto outgoing infraction report data.          | **[Objeto outgoing_refund_request](#objeto-outgoing_refund_request)**         |
| `status` *         | string | Status da devolução.                             | **[Enumeradores refund_request_status](#enumeradores-refund_request_status)** |

### Objeto outgoing_refund_request
| Campo                      | Tipo   | Descrição                                                | Caracteres                                                                                      |
| -------------------------- | ------ | -------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| `refund_request_key` *     | string | UUID4 identificador da devolução no Bacen.               | 32                                                                                              |
| `infraction_report_key`    | string | UUID4 identificador da infração relacionada no Bacen.    | 32                                                                                              |
| `source_account_key` *     | string | Account key da conta de origem da transação.             | 32                                                                                              |
| `refund_request_type` *    | string | Tipo do pedido de devolução.                             | **[Enumeradores refund_request_type](#enumeradores-refund_request_type)**                       |
| `pix_transfer_key` *       | string | Pix transfer key da transação original.                  | 32                                                                                              |
| `end_to_end_id` *          | string | end_to_end_id da transação original.                     | 32                                                                                              |
| `requesting_participant` * | string | Participante que originou a transação.                   | 8                                                                                               |
| `contested_participant` *  | string | Participante que recebeu a transação.                    | 8                                                                                               |
| `refund_request_details`   | string | Detalhes da devolução, enviados pelo outro participante. | 2000                                                                                            |
| `refund_payment_event`     | string | Evento de realização da devolução.                       | **[Objeto refund_payment_event](#objeto-refund_payment_event)**                                 |
| `requested_amount` *       | float  | Valor requisitado na devolução.                          | 2000                                                                                            |
| `refund_request_status` *  | string | Status da devolução.                                     | **[Enumeradores refund_request_status](#enumeradores-refund_request_status)**                   |
| `analysis_result`          | string | Resultado da análise. Decidido pela QI Tech.             | **[Enumeradores refund_request_analysis_result](#enumeradores-refund_request_analysis_result)** |
| `analysis_details`         | string | Justificativa do resultado da análise.                   | 200                                                                                             |
| `reject_reason`            | string | Motivo de rejeição do pedido.                            | **[Enumeradores refund_request_reject_reason](#enumeradores-refund_request_reject_reason)**     |
| `created_at` *             | string | Data e hora de alteração da transação.                   | 20                                                                                              |
| `updated_at` *             | string | Data e hora de criação da transação.                     | 20                                                                                              |

---

# MED 2.0 — Recebimento de Recuperação de Valores

URL: /documentation/pix/med/recebimento_recuperacao_de_valores

O MED 2.0 introduz a **recuperação de valores** (funds recovery), que unifica em um único fluxo o relato de infração e o pedido de devolução de uma transação PIX contestada. Ao receber uma recuperação de valores contra uma conta, a QI Tech automaticamente bloqueia de forma cautelar o recurso equivalente à transação contestada e envia uma notificação via webhook, dando a você a oportunidade de justificar a legitimidade da transação antes do fechamento.

O ciclo de vida de uma recuperação de valores recebida é:

1. **`awaiting_analysis`** — recuperação recebida e saldo bloqueado; aguardando a sua resposta, que deve ser enviada no prazo máximo de **5 dias**.
2. **`pending_approval`** — resposta enviada (justificativa + arquivo de evidências); em análise pela QI Tech.
3. **`completed`** — fechada pela QI Tech, acatando (`agreed`) ou recusando (`disagreed`) a recuperação.
4. **`cancelled`** — cancelada pelo participante originador.

Toda a comunicação de acompanhamento é realizada via webhooks.

## Webhook de uma incoming funds recovery

Uma incoming funds recovery é uma recuperação de valores aberta por outro participante, onde a sua conta é o alvo da transação contestada.

:::info Observação
Os webhooks de recuperação de valores são enviados com `webhook_type` **`incoming.internal_infraction_report`**. Para diferenciá-los dos relatos de infração, verifique a presença do campo `funds_recovery_key` no objeto `data`.
:::

Webhook: incoming funds recovery

```json
{
  "event_datetime": "2026-07-16T16:48:43Z",
  "key": "0dedf537-a75e-4945-be1d-5d278c623022",
  "data": {
    "funds_recovery_key": "9eb5f452-81fd-4f67-9f2a-49e14e53ef64",
    "funds_recovery_id": "b8d19bd4-51dc-4784-a2ad-52807c6dfc80",
    "infraction_report_id": "3541127e-cbc9-44f6-bb0e-3e346ddaefb4",
    "pix_transfer_key": "957ef961-1824-47e6-90fd-f8b4775a1e1c",
    "target_account_key": "6711e3cf-fdf4-41b4-88e8-0a31cb83b9f4",
    "target_person_key": "4f6ea994-e53a-4ef8-b2b0-89d14c4667bc",
    "end_to_end_id": "E12345678202607161648s188f18bJty",
    "funds_recovery_status": "awaiting_analysis",
    "situation_type": "scam",
    "report_details": "Transação acusada como fraudulenta pelo originador.",
    "infraction_amount": 150.50,
    "contact_email": "contato@participante.com.br",
    "contact_phone_number": "+5511999999999",
    "credited_participant": "32402502",
    "debited_participant": "12345678",
    "client_details": null,
    "analysis_result": null,
    "analysis_details": null,
    "blocked_balance_status": "completelly_blocked",
    "tracking_graph": null,
    "updated_at": "2026-07-16T16:48:43Z",
    "created_at": "2026-07-16T16:48:43Z"
  },
  "status": "awaiting_analysis",
  "webhook_type": "incoming.internal_infraction_report"
}
```

### Objeto funds_recovery

| Campo                     | Tipo   | Descrição                                                                 | Caracteres                                                                                  |
| ------------------------- | ------ | ------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| `funds_recovery_key` *    | string | UUID4 identificador da recuperação de valores na QI Tech.                 | 32                                                                                          |
| `funds_recovery_id` *     | string | Identificador da recuperação de valores no Bacen. Usado nas consultas e na resposta. | 32                                                                                          |
| `infraction_report_id` *  | string | Identificador da infração que originou a recuperação no Bacen.            | 32                                                                                          |
| `pix_transfer_key` *      | string | Pix transfer key da transação original.                                   | 32                                                                                          |
| `target_account_key` *    | string | Account key da conta de destino da transação original.                    | 32                                                                                          |
| `target_person_key` *     | string | Person key do alvo da recuperação.                                        | 32                                                                                          |
| `end_to_end_id` *         | string | end_to_end_id da transação original.                                      | 32                                                                                          |
| `funds_recovery_status` * | string | Status da recuperação de valores.                                         | **[Enumeradores funds_recovery_status](#enumeradores-funds_recovery_status)**               |
| `situation_type` *        | string | Situação apontada pelo originador.                                        | **[Enumeradores situation_type](#enumeradores-situation_type)**                             |
| `report_details`          | string | Detalhes enviados pelo participante originador.                           | 2000                                                                                        |
| `infraction_amount`       | number | Valor contestado. Quando ausente, considera-se o valor total da transação. | -                                                                                           |
| `contact_email`           | string | E-mail de contato do participante originador.                             | 255                                                                                         |
| `contact_phone_number`    | string | Telefone de contato do participante originador.                           | 20                                                                                          |
| `credited_participant` *  | string | Participante que recebeu a transação.                                     | 8                                                                                           |
| `debited_participant` *   | string | Participante que originou a transação.                                    | 8                                                                                           |
| `client_awnser`           | string | Justificativa enviada na resposta. Presente após responder.             | 2000                                                                                        |
| `analysis_result`         | string | Resultado da análise. Decidido pela QI Tech.                              | **[Enumeradores analysis_result](#enumeradores-analysis_result)**                           |
| `analysis_details`        | string | Justificativa do resultado da análise.                                    | 2000                                                                                        |
| `blocked_balance_status` * | string | Status do bloqueio de saldo da conta de destino.                          | **[Enumeradores blocked_balance_status](#enumeradores-blocked_balance_status)**             |
| `tracking_graph`          | object | Grafo de rastreamento das movimentações dos recursos contestados, quando disponível. | -                                                                                           |
| `created_at` *            | string | Data e hora de criação.                                                   | 20                                                                                          |
| `updated_at` *            | string | Data e hora de alteração.                                                 | 20                                                                                          |

### Enumeradores funds_recovery_status

| Enumerador          | Descrição                                                                  |
| ------------------- | --------------------------------------------------------------------------- |
| `awaiting_analysis` | Recuperação recebida e saldo bloqueado, aguardando a sua resposta.  |
| `pending_approval`  | Justificativa enviada, aguardando análise interna da QI Tech.              |
| `completed`         | Fechada pela QI Tech após a análise.                                       |
| `cancelled`         | Cancelada pelo participante originador.                                    |

### Enumeradores situation_type

| Enumerador          | Descrição                                               |
| ------------------- | ------------------------------------------------------- |
| `scam`              | Causa de golpe ou estelionato.                          |
| `account_takeover`  | Causa de transação não autorizada pela conta de origem. |
| `coercion`          | Causa de crime de coerção.                              |
| `fraudulent_access` | Causa de acesso fraudulento à conta de origem.          |
| `other`             | Quaisquer causas não aplicáveis às listadas acima.      |

### Enumeradores analysis_result

| Enumerador  | Descrição                                                       |
| ----------- | ---------------------------------------------------------------- |
| `agreed`    | A QI Tech acata a recuperação de valores e os recursos bloqueados são devolvidos. |
| `disagreed` | A QI Tech recusa a recuperação de valores e os recursos bloqueados são liberados. |

### Enumeradores blocked_balance_status

| Enumerador            | Descrição                                                                      |
| --------------------- | ------------------------------------------------------------------------------- |
| `completelly_blocked` | Recursos equivalentes ao valor contestado completamente bloqueados.            |
| `partially_blocked`   | Recursos equivalentes ao valor contestado parcialmente bloqueados. Monitorando saldo. |
| `no_balance`          | Conta sem saldo. Monitorando saldo pendente.                        |
| `account_closed`      | Conta encerrada. Nenhum recurso bloqueado.                          |

---

# Recebimento de Relatos de Infração

URL: /documentation/pix/med/recebimento_relatos_de_infracao

Ao receber um relato de infração, a QI Tech automaticamente bloqueará o recurso da conta equivalente à transação contestada, e enviará notificações de acompanhamento sobre todo o ciclo da infração, inclusive dando chance do cliente justificar a transação, entretanto, vale ressaltar que a decisão final sobre acatar ou não uma infração partirá da QI Tech. Toda a comunicação relativa às infrações são realizadas via webhooks.

## Webhook de uma incoming infraction report

Uma incoming infraction report é uma infração aberta por outro banco, onde o dono da conta é o alvo da transação contestada.

## Webhook request body

Webhook: incoming infraction report

```json
{
  "event_datetime": "2024-07-22T10:31:09Z",
  "key": "15d91f4b-a55c-41a6-9c46-2704253a1cf7",
  "data": {
    "target_person_key": "4f6ea994-e53a-4ef8-b2b0-89d14c4667bc",
    "end_to_end_id": "E12345678202407171627342xlR8KpoD",
    "pix_transfer_key": "6cf241f8-328a-4813-90ab-2aef74d853ac",
    "target_account_key": "9d5b1a98-03ac-4202-91e8-29dbff3d1108",
    "infraction_report_status": "pending_client_awnser",
    "infraction_report_situation": "fraudulent_access",
    "analysis_result": null,
    "analysis_details": null,
    "infraction_report_type": "refund_request",
    "debited_participant": "12345678",
    "credited_participant": "32402502",
    "blocked_balance_status": "completelly_blocked",
    "infraction_report_key": "90b4e1bc-89bc-4df8-98a2-f912447b178f",
    "infraction_report_details": "Transação acusada como fraudulenta pelo originador.",
    "client_details": null,
    "created_at": "2024-07-22T13:31:09Z",
    "updated_at": "2024-07-22T13:31:09Z",
  },
  "status": "pending_client_awnser",
  "webhook_type": "incoming.internal_infraction_report"
}
```

| Campo              | Tipo   | Descrição                                        | Caracteres                                                                                            |
| ------------------ | ------ | ------------------------------------------------ | ----------------------------------------------------------------------------------------------------- |
| `event_datetime` * | string | Data e hora de criação da transação.             | 20                                                                                                    |
| `key` *            | enum   | Chave única de identificação do envio do evento. | 32                                                                                                    |
| `data` *           | string | Objeto incoming infraction report data.          | **[Objeto incoming_infraction_report](#objeto-incoming_infraction_report)**                           |
| `status` *         | string | Status da infração.                              | **[Enumeradores incoming_infraction_report_status](#enumeradores-incoming_infraction_report_status)** |

### Objeto incoming_infraction_report
| Campo                           | Tipo   | Descrição                                                    | Caracteres                                                                                            |
| ------------------------------- | ------ | ------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------- |
| `target_person_key` *           | string | Person key do alvo da infração.                              | 32                                                                                                    |
| `end_to_end_id` *               | string | end_to_end_id da transação original.                         | 32                                                                                                    |
| `pix_transfer_key` *            | string | Pix transfer key da transação original.                      | 32                                                                                                    |
| `target_account_key` *          | string | Account key da conta de destino da transação original.       | 32                                                                                                    |
| `infraction_report_status` *    | string | Status da infração.                                          | **[Enumeradores incoming_infraction_report_status](#enumeradores-incoming_infraction_report_status)** |
| `infraction_report_situation` * | string | Situação da infração.                                        | **[Enumeradores infraction_report_situation](#enumeradores-infraction_report_situation)**             |
| `analysis_result`               | string | Resultado da análise. Decidido pela QI Tech.                 | **[Enumeradores infraction_report_analysis_result](#enumeradores-infraction_report_analysis_result)** |
| `analysis_details`              | string | Justificativa do resultado da análise.                       | 200                                                                                                   |
| `infraction_report_type` *      | string | Tipo do relato de infração.                                  | **[Enumeradores infraction_report_type](#enumeradores-infraction_report_type)**                       |
| `debited_participant` *         | string | Participante que originou a transação.                       | 8                                                                                                     |
| `credited_participant` *        | string | Participante que recebeu a transação.                        | 8                                                                                                     |
| `blocked_balance_status` *      | string | Status do bloqueio de saldo da conta de destino.             | **[Enumeradores blocked_balance_status](#enumeradores-blocked_balance_status)**                       |
| `infraction_report_key` *       | string | UUID4 identificador da transação no Bacen.                   | 32                                                                                                    |
| `infraction_report_details`     | string | Detalhes da infração, enviados pelo outro participante.      | 2000                                                                                                  |
| `client_details`                | string | Detalhes fornecidos pelo cliente sobre a transação original. | 2000                                                                                                  |
| `created_at` *                  | string | Data e hora de alteração da transação.                       | 20                                                                                                    |
| `updated_at` *                  | string | Data e hora de criação da transação.                         | 20                                                                                                    |

### Enumeradores incoming_infraction_report_status
| Enumerador              | Descrição                                                      |
| ----------------------- | -------------------------------------------------------------- |
| `pending_client_awnser` | Infração recebida, aguardando justificativa do cliente.        |
| `pending_approval`      | Justificativa enviada, aguardando aprovação interna.           |
| `automatically_closed`  | Fechado automaticamente devido a falta de resposta do cliente. |
| `manually_closed`       | Fechado pela QI Tech após análise da resposta do cliente.      |
| `cancelled`             | Cancelada pelo originador.                                     |

### Enumeradores infraction_report_situation
| Enumerador          | Descrição                                               |
| ------------------- | ------------------------------------------------------- |
| `scam`              | Causa de golpe ou estelionato.                          |
| `account_takeover`  | Causa de transação não autorizada pela conta de origem. |
| `coercion`          | Causa de crime de coerção.                              |
| `fraudulent_access` | Causa de acesso fraudulento à conta de origem.          |
| `other`             | Quaisquer causas não aplicáveis às listadas acima.      |

### Enumeradores infraction_report_analysis_result
| Enumerador  | Descrição                                                                                 |
| ----------- | ----------------------------------------------------------------------------------------- |
| `agreed`    | O Participante Indireto concorda com o Relato de Infração criado pelo outro Participante. |
| `disagreed` | O Participante Indireto discorda com o Relato de Infração criado pelo outro Participante. |

### Enumeradores infraction_report_type
| Enumerador         | Descrição                                                              |
| ------------------ | ---------------------------------------------------------------------- |
| `refund_cancelled` | Relato de infração será gerado pelo motivo de uma devolução cancelada. |
| `refund_request`   | Relato de infração será gerado a fim de se solicitar uma devolução.    |

### Enumeradores blocked_balance_status
| Enumerador            | Descrição                                                                         |
| --------------------- | --------------------------------------------------------------------------------- |
| `no_balance`          | Conta do cliente sem saldo. Monitorando saldo pendente.                           |
| `completelly_blocked` | Recursos equivalentes à transação completamente bloqueados.                       |
| `partially_blocked`   | Recursos equivalentes à transação parcialmente bloqueados. Monitorando saldo.     |
| `settled`             | Infração aceita, e pagamento do pedido de devolução realizado.                    |
| `partially_settled`   | Infração aceita, e pagamento do pedido de devolução parcialmente realizado.       |
| `released`            | Recursos liberados, seja por cancelamento da infração ou fechamento em desacordo. |

:::info
Uma infração será fechada automaticamente aceitando caso o cliente não responda à infração em 5 dias.
:::

## Webhook de uma outgoing infraction report

### Uma outgoing infraction report é uma infração aberta pela QI, tendo como alvo outro participante.

## Webhook request body

Webhook: outgoing infraction report

```json
{
  "event_datetime": "2024-07-22T10:31:09Z",
  "key": "15d91f4b-a55c-41a6-9c46-2704253a1cf7",
  "data": {
    "infraction_report_key": "4f6ea994-e53a-4ef8-b2b0-89d14c4667bc",
    "pix_transfer_key": "6cf241f8-328a-4813-90ab-2aef74d853ac",
    "source_account_key": "9d5b1a98-03ac-4202-91e8-29dbff3d1108",
    "end_to_end_id": "E32402502202407171627342xlR8KpoD",
    "infraction_report_status": "open",
    "infraction_report_situation": "account_takeover",
    "infraction_report_type": "refund_request",
    "infraction_report_details": "Transação fraudulenta.",
    "debited_participant": "32402502",
    "credited_participant": "12345678",
    "analysis_result": null,
    "analysis_details": null,
    "updated_at": "2024-07-22T13:31:09Z",
    "created_at": "2024-07-22T13:31:09Z",
},
  "status": "open",
  "webhook_type": "outgoing.internal_infraction_report"
}
```

| Campo              | Tipo   | Descrição                                        | Caracteres                                                                                   |
| ------------------ | ------ | ------------------------------------------------ | -------------------------------------------------------------------------------------------- |
| `event_datetime` * | string | Data e hora de criação da transação.             | 20                                                                                           |
| `key` *            | enum   | Chave única de identificação do envio do evento. | 32                                                                                           |
| `data` *           | string | Objeto outgoing infraction report data.          | **[Objeto outgoing_infraction_report](#objeto-outgoing_infraction_report)**                  |
| `status` *         | string | Status da infração.                              | **[Enumeradores infraction_report_status](#enumeradores-outgoing_infraction_report_status)** |

### Objeto outgoing_infraction_report
| Campo                           | Tipo   | Descrição                                               | Caracteres                                                                                            |
| ------------------------------- | ------ | ------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| `infraction_report_key` *       | string | UUID4 identificador da transação no Bacen.              | 32                                                                                                    |
| `end_to_end_id` *               | string | end_to_end_id da transação original.                    | 32                                                                                                    |
| `pix_transfer_key` *            | string | Pix transfer key da transação original.                 | 32                                                                                                    |
| `source_account_key` *          | string | Account key da conta de origem da transação original.   | 32                                                                                                    |
| `infraction_report_status` *    | string | Status da infração.                                     | **[Enumeradores outgoing_infraction_report_status](#enumeradores-outgoing_infraction_report_status)** |
| `infraction_report_situation` * | string | Situação da infração.                                   | **[Enumeradores infraction_report_situation](#enumeradores-infraction_report_situation)**             |
| `infraction_report_type` *      | string | Tipo do relato de infração.                             | **[Enumeradores infraction_report_type](#enumeradores-infraction_report_type)**                       |
| `infraction_report_details`     | string | Detalhes da infração, enviados pela QI Tech.            | 2000                                                                                                  |
| `debited_participant` *         | string | Participante que originou a transação.                  | 8                                                                                                     |
| `credited_participant` *        | string | Participante que recebeu a transação.                   | 8                                                                                                     |
| `analysis_result`               | string | Resultado da análise. Decidido pelo outro participante. | **[Enumeradores infraction_report_analysis_result](#enumeradores-infraction_report_analysis_result)** |
| `analysis_details`              | string | Justificativa do resultado da análise.                  | 200                                                                                                   |
| `created_at` *                  | string | Data e hora de alteração da transação.                  | 20                                                                                                    |
| `updated_at` *                  | string | Data e hora de criação da transação.                    | 20                                                                                                    |

### Enumeradores outgoing_infraction_report_status
| Enumerador  | Descrição                                        |
| ----------- | ------------------------------------------------ |
| `open`      | Infração aberta e enviada ao outro participante. |
| `closed`    | Infração respondida pelo outro participante.     |
| `cancelled` | Infração cancelada pela QI Tech.                 |

---

# MED 2.0 — Responder Recuperação de Valores

URL: /documentation/pix/med/responder_recuperacao_de_valores

Enquanto a recuperação de valores está com status `awaiting_analysis`, você pode respondê-la justificando a legitimidade da transação. A resposta é composta por uma **explicação em texto** e um **arquivo .zip de evidências** (nota fiscal, comprovantes, etc.), enviados como **`multipart/form-data`**.

Após a resposta, a recuperação passa para o status **`pending_approval`**, seguindo para a etapa de análise.

:::caution Aviso
O prazo máximo para responder a um MED é de **5 dias**.
:::

## Identificador da recuperação de valores

O identificador utilizado na rota é o campo **`funds_recovery_id`**, recebido no **[webhook de incoming funds recovery](./recebimento_recuperacao_de_valores.md#webhook-de-uma-incoming-funds-recovery)** no momento da abertura da recuperação.

O mesmo identificador também pode ser obtido pela **[listagem de recuperações de valores](./consultar_recuperacao_de_valores.md#listar-recuperações-de-valores)**.

## Request

ENDPOINT /internal/pix/funds_recovery/incoming/ FUNDS_RECOVERY_ID
MÉTODO PATCH

### Path params

| Campo                 | Tipo   | Descrição                                                               | Caracteres |
| --------------------- | ------ | ------------------------------------------------------------------------ | ---------- |
| `FUNDS_RECOVERY_ID` * | string | Identificador da recuperação de valores no Bacen (`funds_recovery_id`). | 32         |

### Form data

| Campo             | Tipo   | Descrição                                                                              | Caracteres |
| ----------------- | ------ | --------------------------------------------------------------------------------------- | ---------- |
| `client_awnser` * | string | Sua interpretação acerca da transação apontada como fraudulenta.                | 2000       |
| `file` *          | file   | Arquivo **.zip** com as evidências que sustentam a justificativa. Tamanho máximo: **50MB**. | -          |

### Response

STATUS 200

Response Body

```json
{
  "funds_recovery_key": "9eb5f452-81fd-4f67-9f2a-49e14e53ef64",
  "funds_recovery_id": "b8d19bd4-51dc-4784-a2ad-52807c6dfc80",
  "infraction_report_id": "3541127e-cbc9-44f6-bb0e-3e346ddaefb4",
  "pix_transfer_key": "957ef961-1824-47e6-90fd-f8b4775a1e1c",
  "target_account_key": "6711e3cf-fdf4-41b4-88e8-0a31cb83b9f4",
  "target_person_key": "4f6ea994-e53a-4ef8-b2b0-89d14c4667bc",
  "end_to_end_id": "E12345678202607161648s188f18bJty",
  "funds_recovery_status": "pending_approval",
  "situation_type": "scam",
  "report_details": "Transação acusada como fraudulenta pelo originador.",
  "infraction_amount": 150.50,
  "credited_participant": "32402502",
  "debited_participant": "12345678",
  "client_awnser": "Transação legítima, conforme demonstrado na nota fiscal XXXXXXXXXX que confirma a venda do produto.",
  "analysis_result": null,
  "analysis_details": null,
  "blocked_balance_status": "completelly_blocked",
  "tracking_graph": null,
  "funds_recovery_status_events": [
    {
      "old_status": null,
      "new_status": "awaiting_analysis",
      "created_at": "2026-07-16T16:48:43Z"
    },
    {
      "old_status": "awaiting_analysis",
      "new_status": "pending_approval",
      "created_at": "2026-07-17T10:12:05Z"
    }
  ],
  "updated_at": "2026-07-17T10:12:05Z",
  "created_at": "2026-07-16T16:48:43Z"
}
```

A resposta é o **[objeto funds_recovery](./recebimento_recuperacao_de_valores.md#objeto-funds_recovery)** atualizado, com `funds_recovery_status` = `pending_approval` e a justificativa em `client_awnser`.

### Erros

| Código      | Status | Descrição                                                                          |
| ----------- | ------ | ----------------------------------------------------------------------------------- |
| `MED000042` | 400    | A recuperação de valores não está com status `awaiting_analysis`.                  |
| `MED000043` | 400    | O arquivo enviado não é um arquivo **.zip**.                                       |
| `MED000044` | 400    | O arquivo enviado excede o tamanho máximo de **50MB**.                             |
| `MED000039` | 404    | Recuperação de valores não encontrada para o `FUNDS_RECOVERY_ID` informado.        |

---

# Responder Relatos de Infração

URL: /documentation/pix/med/resposta_relatos_de_infracao

O Banco central estipula um limite de 7 dias para a análise de relatos de infração, com o objetivo de manter a qualidade do serviço e do mecanismo de devolução. A QI Tech reserva até 5 dias para que o cliente responda à infração recebida justificando a legitmidade ou não da transação, e 2 dias para a análise interna e apuração dos fatos. Vale ressaltar que a palavra final para o aceite ou não de um relato cabe exclusivamente à QI Tech.

:::caution Aviso
Após o decorrer dos 5 dias, a infração será automaticamente fechada aceitando, caso o cliente não responda.
:::

## Request

ENDPOINT /internal/pix/infraction_report/incoming/ INFRACTION_REPORT_KEY
MÉTODO PATCH

Request Body

```json
{
    "client_awnser": "Transação legítma, conforme demonstrado na nota fiscal XXXXXXXXXX que confirma a venda do produto.",
}

```

### Body params

| Campo             | Tipo   | Descrição                                                               | Caracteres |
| ----------------- | ------ | ----------------------------------------------------------------------- | ---------- |
| `client_awnser` * | string | Interpretação do cliente acerca da transação apontada como fraudulenta. | 2000       |

### Response

STATUS 200

Response Body

```json
{
    "target_person_key": "4f6ea994-e53a-4ef8-b2b0-89d14c4667bc",
    "end_to_end_id": "E12345678202407171627342xlR8KpoD",
    "pix_transfer_key": "6cf241f8-328a-4813-90ab-2aef74d853ac",
    "target_account_key": "9d5b1a98-03ac-4202-91e8-29dbff3d1108",
    "infraction_report_status": "pending_approval",
    "infraction_report_situation": "fraudulent_access",
    "analysis_result": null,
    "analysis_details": null,
    "infraction_report_type": "refund_request",
    "debited_participant": "12345678",
    "credited_participant": "32402502",
    "blocked_balance_status": "completelly_blocked",
    "infraction_report_key": "90b4e1bc-89bc-4df8-98a2-f912447b178f",
    "infraction_report_details": "Transação acusada como fraudulenta pelo originador.",
    "client_details": "Transação legítma, conforme demonstrado na nota fiscal XXXXXXXXXX que confirma a venda do produto.",
    "created_at": "2024-07-22T13:31:09Z",
    "updated_at": "2024-07-22T13:31:09Z",
}
```

| Campo                          | Tipo   | Descrição                                                    | Caracteres                                                                                            |
| ------------------------------ | ------ | ------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------- |
| `target_person_key`*           | string | Person key do alvo da infração.                              | 32                                                                                                    |
| `end_to_end_id`*               | string | end_to_end_id da transação original.                         | 32                                                                                                    |
| `pix_transfer_key`*            | string | Pix transfer key da transação original.                      | 32                                                                                                    |
| `target_account_key`*          | string | Account key da conta de destino da transação original.       | 32                                                                                                    |
| `infraction_report_status`*    | string | Status da infração.                                          | **[Enumeradores incoming_infraction_report_status](#enumeradores-incoming_infraction_report_status)** |
| `infraction_report_situation`* | string | Situação da infração.                                        | **[Enumeradores infraction_report_situation](#enumeradores-infraction_report_situation)**             |
| `analysis_result`              | string | Resultado da análise. Decidido pela QI Tech.                 | **[Enumeradores infraction_report_analysis_result](#enumeradores-infraction_report_analysis_result)** |
| `analysis_details`             | string | Justificativa do resultado da análise.                       | 200                                                                                                   |
| `infraction_report_type`*      | string | Tipo do relato de infração.                                  | **[Enumeradores infraction_report_type](#enumeradores-infraction_report_type)**                       |
| `debited_participant`*         | string | Participante que originou a transação.                       | 8                                                                                                     |
| `credited_participant`*        | string | Participante que recebeu a transação.                        | 8                                                                                                     |
| `blocked_balance_status`*      | string | Status do bloqueio de saldo da conta de destino.             | **[Enumeradores blocked_balance_status](#enumeradores-blocked_balance_status)**                       |
| `infraction_report_key`*       | string | UUID4 identificador da transação no Bacen.                   | 32                                                                                                    |
| `infraction_report_details`    | string | Detalhes da infração, enviados pelo outro participante.      | 2000                                                                                                  |
| `client_details`*              | string | Detalhes fornecidos pelo cliente sobre a transação original. | 2000                                                                                                  |
| `created_at`*                  | string | Data e hora de alteração da transação.                       | 20                                                                                                    |
| `updated_at`*                  | string | Data e hora de criação da transação.                         | 20                                                                                                    |

### Enumeradores incoming_infraction_report_status
| Enumerador              | Descrição                                                      |
| ----------------------- | -------------------------------------------------------------- |
| `pending_client_awnser` | Infração recebida, aguardando justificativa do cliente.        |
| `pending_approval`      | Justificativa enviada, aguardando aprovação interna.           |
| `automatically_closed`  | Fechado automaticamente devido a falta de resposta do cliente. |
| `manually_closed`       | Fechado pela QI Tech após análise da resposta do cliente.      |
| `cancelled`             | Cancelada pelo originador.                                     |

### Enumeradores infraction_report_situation
| Enumerador          | Descrição                                               |
| ------------------- | ------------------------------------------------------- |
| `scam`              | Causa de golpe ou estelionato.                          |
| `account_takeover`  | Causa de transação não autorizada pela conta de origem. |
| `coercion`          | Causa de crime de coerção.                              |
| `fraudulent_access` | Causa de acesso fraudulento à conta de origem.          |
| `other`             | Quaisquer causas não aplicáveis às listadas acima.      |

### Enumeradores infraction_report_analysis_result
| Enumerador  | Descrição                                                                                 |
| ----------- | ----------------------------------------------------------------------------------------- |
| `agreed`    | O Participante Indireto concorda com o Relato de Infração criado pelo outro Participante. |
| `disagreed` | O Participante Indireto discorda com o Relato de Infração criado pelo outro Participante. |

### Enumeradores infraction_report_type
| Enumerador         | Descrição                                                              |
| ------------------ | ---------------------------------------------------------------------- |
| `refund_cancelled` | Relato de infração será gerado pelo motivo de uma devolução cancelada. |
| `refund_request`   | Relato de infração será gerado a fim de se solicitar uma devolução.    |

### Enumeradores blocked_balance_status
| Enumerador            | Descrição                                                                         |
| --------------------- | --------------------------------------------------------------------------------- |
| `no_balance`          | Conta do cliente sem saldo. Monitorando saldo pendente.                           |
| `completelly_blocked` | Recursos equivalentes à transação completamente bloqueados.                       |
| `partially_blocked`   | Recursos equivalentes à transação parcialmente bloqueados. Monitorando saldo.     |
| `settled`             | Infração aceita, e pagamento do pedido de devolução realizado.                    |
| `partially_settled`   | Infração aceita, e pagamento do pedido de devolução parcialmente realizado.       |
| `released`            | Recursos liberados, seja por cancelamento da infração ou fechamento em desacordo. |

---

# Pesquisar por QR Code Pix dinâmico próprio

URL: /documentation/pix/pesquisar_por_qr_code_dinamico

## Request

ENDPOINT /baas/qrcode/dynamic
MÉTODO GET

### Path params

| Campo                      | Tipo    | Descrição                                                        | Caracteres |
|----------------------------|---------|------------------------------------------------------------------|------------|
| `account_key`              | string  | chave de identificação da QIConta vinculada à chave pix (UUIDv4) | 36         |
| `pix_key`                  | string  | Chave PIX vinculado ao QRCode                                    | -          |
| `receiver_conciliation_id` | string  | Identicação de conciliação do recebedor                          | max_length = 35         |
| `page`                     | integer | Número da página pesquisada (default = 0)                        | -          |
| `page_size`                | integer | Quantidade de itens por página (default = 15)                    | -          |
| `first_result`             | boolean | Retornar apenas o primeiro resultado (default = desc)               | -          |
| `order_by`                 | string  | Determina a ordem de retorno dos resultados (default = desc)     | asc, desc  |

:::info
É obrigatório enviar `account_key` ou `pix_key`, sendo apenas um deles obrigatório.
::: 

:::caution Atenção
Para consultar apenas um QR Code específico, devem ser utilizados os parâmetros `receiver_conciliation_id` e `pix_key`.
:::

## Response

STATUS 200

Response Body

```json
{
	"pagination": {
		"current_page": 0,
		"next_page": 1,
		"rows_per_page": 15,
		"total_pages": 1,
		"total_rows": 4
	},
	"data": [
		{
			"additional_data": [],
			"amount": 1.0,
			"discounts": [],
			"qr_code_type": "dynamic_term",
			"end_to_end_id": null,
			"base_64": "MDAwMjAxMjY4OTAwMTRici5nb3YuYmNiLnBpeDI1NjdxcmNvZGUtaC5kZXYucWl0ZWNoLmFwcC9iYWNlbi9jb2J2LzQ1NWQ4ZmY1NGE0ZDQ2Mzg4YmVhN2I4MmFhMDZiNzdmNTIwNDAwMDA1MzAzOTg2NTgwMkJSNTkxOVBydVBydXVDb211bmljYWNvZXM2MDA4i2FvUGF1bG82MTA4MDU0MjUwMjA2MjA3MDUwMyoqKjYzMDQyNkNF",
			"expiration_date": "2023-03-30",
			"expiration_seconds": null,
			"max_payment_days": 180,
			"rebate_amount": 0.0,
			"interest_amount": 0.0,
			"fine_amount": 0.0,
			"paid_amount": null,
			"payer_request": null,
			"pix_message": null,
			"modality_alteration": false,
			"payer_name": "Random",
			"payer_document_number": "00000000000000",
			"payer_person_type": "natural",
			"pix_key": {
				"account_key": "ce0db38f-a2ba-446f-bb1a-51d0bf3f40fc",
				"is_activated": true,
				"pix_key": "63602991000100",
				"created_at": "2023-02-14T23:26:52"
			},
			"qr_code_key": "455d8ff5-4a4d-4638-8bea-7b82aa06b77f",
			"qr_code_status": {
				"enumerator": "active"
			},
			"receiver_conciliation_id": "01234567891293134978",
			"created_at": "2023-03-29T15:26:50"
		}
	]
}

```

STATUS 400

Response Body: Parâmetros Obrigatórios Faltantes

```json
{
    "title": "Bad Request",
    "description": "Must use pix key or account key to search for QR Codes",
    "translation": "Chave Pix ou Chave da Conta devem ser utilizados para realizar buscas por QR Codes",
    "code": "PQR000009"
}
```

STATUS 400

Response Body: Usuário não possui credenciais

```json
{
    "title": "Unauthorized",
    "description": "User is not allowed to do this transaction",
    "translation": "Usuário não tem autorização para fazer essa transação",
    "code": "PQR000004"
}
```

STATUS 400

Response Body: Usuário não é dono da conta

```json
{
    "title": "Unauthorized",
    "description": "Person is not account owner.",
    "translation": "A pessoa não é dona da conta.",
    "code": "PQR000005"
}
```

STATUS 404

Response Body: Chave Pix Não encontrada

```json
{
    "title": "Not Found",
    "description": "No active Pix key found with key \{pix_key\}",
    "translation": "Não foi encontrada pix key ativa com a chave \{pix_key\}",
    "code": "PQR000007"
}
```

### Enumeradores QR Code Status
| Enumerador         | Descrição                                                |
|--------------------|----------------------------------------------------------|
| `active`           | QR Code ativo                                            |
| `finished`         | QR Code pago                                             |
| `written_off`      | QR Code desativado por solicitação do recebedor/parceiro |
| `bank_written_off` | QR Code desativado pela QI                               |

---

# Conclusão da portabilidade

URL: /documentation/pix/portabilidade/conclusao_de_portabilidade

:::danger Atenção!
Os webhooks da QI Tech não devem ser mapeadas de forma restrita.
Campos adicionais podem ser incluídos aos payloads dos webhooks retornados em nossas APIs.
:::

Após a confirmação ou recusa da portabilidade, a QI dará continuidade ao processo de portabilidade da chave. O usuário deve receber autualizações da portabilidade no banco de destino em alguns minutos.

Assim que o pedido de portabilidade for concluído ou cancelado, a QI informará o solicitante sobre a conclusão da portabilidade através do seguinte webhook:

WEBHOOK_TYPE claim_request

Webhook Body

```json
{
  "account_key": "169010e3-6c1e-4521-9253-11cbbf36c59j",
  "pix_key": "12345678000190",
  "pix_key_type": "cnpj",
  "claim_request_type": "portability",
  "role": "claimant",
  "claim_request_key": "7f8b67d2-d8e4-4759-85eb-e4d0ac24708c",
  "claim_request_status": "concluded",
  "claimant_person_type": "natural",
  "claimant_document_number": "12345678000190",
  "claimant_account_branch": "0001",
  "claimant_account_number": "5050396",
  "claimant_account_digit": "1",
  "webhook_type": "claim_request"
}
```

#### Enumeradores claim_request_status

| Enumerador           | Tradução                |
|----------------------|-------------------------|
| **concluded**          | concluído               |
| **cancelled**            | cancelado               |
| **failed**               | falha                   |
| **pending_confirmation** | pendente de confirmação |

---

# Consulta de portabilidade por conta

URL: /documentation/pix/portabilidade/consulta_de_portabilidade_por_conta

## Request

ENDPOINT /baas/pix/key_claim_request/account/ ACCOUNT_KEY
MÉTODO GET

Request Body

### Path Params

| Campo         | Tipo   | Descrição                          | Caracteres |
|---------------|--------|------------------------------------|------------|
| `account_key` | string | chave de identificação da QIConta. | 36         |

### Query Params

| Campo          | Tipo    | Descrição                                                                                            | Caracteres                                     |
|----------------|---------|------------------------------------------------------------------------------------------------------|------------------------------------------------|
| `page_number`  | integer | Página atual que está sendo consultada.                                                              | -                                              |
| `page_size`    | integer | Quantidade de resultados por página.                                                                 | -                                              |
| `claim_status` | string  | Status da portabilidade. Caso não seja enviado, todas as portabiliades não concluidas serão listadas | **[Enumeradores](#enumeradores-pix_key_type)** |

#### Enumeradores pix_key_type

| Enumerador                     | Tradução                      |
|--------------------------------|-------------------------------|
| **pending**                    | pendente                      |
| **opened**                     | aberto                        |
| **pending_confirmation**       | confirmação pendente          |
| **confirmed**                  | confirmado                    |
| **cancelled**                  | cancelado                     |
| **concluded**                  | concluído                     |
| **failed**                     | falha                         |
| **pending_donator_validation** | validação de doador pendente  |
| **pending_claimer_validation** | validaçao de pedinte pendente |

## Response

STATUS 200

Response Body

```json
{
  "data": [
    {
        "account_key": "be0884bc-44a4-4907-8627-ef976e477aef",
        "cancellation_reason": null,
        "cancelled_by": null,
        "claim_flow_type": "donator",
        "claim_request_key": "be0884bc-44a4-4907-8627-ef976e477aef",
        "claim_status": "pending_confirmation",
        "claim_type": "portability",
        "claimant_account_branch": "9999",
        "claimant_account_number": "0",
        "claimant_document_number": "37059093800",
        "claimant_person_type": "natural",
        "confirmation_reason": null,
        "created_at": "2023-11-06T17:30:11",
        "donator_ispb": 32402502,
        "limit_conclusion_date": null,
        "limit_resolve_date": "2023-11-13T17:29:00",
        "max_conclusion_date": null,
        "max_resolution_date": "2023-11-13T17:29:00",
        "pix_key": "45574823098",
        "pix_key_claim_id": "205c72ab-c03e-43b7-a43d-2409e21fa5be",
        "pix_key_type": "cpf",
        "requester_key": "be0884bc-44a4-4907-8627-ef976e477aef"
    }
  ],
  "pagination": {
    "current_page": 1,
    "next_page": null,
    "rows_per_page": 10
  }
} 
```

STATUS 4XX

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`           | Descrição (eng)<br/>`Description`                                                 | Descrição (ptbr)<br/>`translation`                                                  |
|-------------|----------------------|------------------------------|-----------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|
| 400         | PIX000071            | Unknown Claim Request Status | Unknown claim_status \{claim_status\}.                                              | claim_status \{claim_status\} não reconhecido.                                        |
| 403         | PIX000054            | Invalid Permission           | Person \{person_key\} does not have administration roles for account \{account_key\}. | Pessoa \{person_key\} não tem credencial de administrador para a conta \{account_key\}. |

---

# Criando um pedido de portabilidade

URL: /documentation/pix/portabilidade/criando_um_pedido_de_portabilidade

:::caution **Atenção**
É necessário realizar validação de dois fatores caso o tipo da chave que a portabilidade está sendo solicitada seja
número de telefone ou e-mail, o token será enviado para o número ou e-mail solicitado. Caso a validação de dois fatores seja necessária o "claim_request_status" será "pending_claimer_validation".

A orientação para o envio do token está no item 2.5.3.5.2 Validação de dois fatores
:::

:::danger **Atenção!!**
A criação do pedido de portabilidade deve ser feita utilizando uma das chaves Pix mockadas para o ambiente de sandbox.
[Chaves Pix Mockadas](/documentation/pix/chaves_pix_mockadas)
:::

### Request

ENDPOINT /baas/pix/key_claim_request
MÉTODO POST

Request Body

```json
{
  "account_key": "169010e3-6c1e-4521-9253-11cbbf36c59j",
  "pix_key": "12345678000190",
  "pix_key_type": "cnpj"
}
```

#### Body Params

| Campo          | Tipo   | Descrição                               | Caracteres                                     |
|----------------|--------|-----------------------------------------|------------------------------------------------|
| `account_key`  | string | chave de identificação da QIConta.      | 36                                             |
| `pix_key`      | enum   | chave a ser solicitada a portabilidade. | -                                              |
| `pix_key_type` | enum   | tipo da chave pix da portabilidade.     | **[Enumeradores](#enumeradores-pix_key_type)** |

#### Enumeradores pix_key_type

| Enumerador       | Tradução           |
|------------------|--------------------|
| **random_key**   | aleatória          |
| **email**        | e-mail             |
| **phone_number** | número de telefone |
| **cpf**          | cpf                |
| **cnpj**         | cnpj               |

:::info Tipos de Chave Pix
A “pix_key” pode ser um CPF, CNPJ, E-mail, Celular ou uma Chave Aleatória (UUID), seguindo as seguintes formatações:

CPF: Número inteiro com 11 dígitos.

CNPJ: Número inteiro com 14 dígitos.

E-mail: Texto contendo ao menos um “@”.

Celular: Texto contendo os seguintes valores: “+55” + “DDD do celular“ + “Número Inteiro do Celular com no mínimo 8 e no
máximo 9 dígitos”. Ex: “+5511987654321“.

Chave Aleatória: UUID.
:::

### Response

STATUS 200

Response Body

```json
{
  "max_conclusion_date": "2023-05-26T12:13:25",
  "claim_request_status": "pending",
  "claimant": {
    "document_number": "12345678000190",
    "claimant_key": "6aaadfbc-76ba-45d2-bb21-138bcb2baa62",
    "account_opened_at": "2023-01-17T12:28:37",
    "account_branch": "0001",
    "account_type": "escrow",
    "account_number": "7336349",
    "person_type": "legal",
    "account_digit": "0"
  },
  "max_resolution_date": "2023-05-19T12:13:25",
  "claimant_bank_name": "QI SCD S.A.",
  "pix_key": {
    "pix_key_type": "cnpj",
    "pix_key_status": "pending_confirmation",
    "created_at": "2023-05-12T12:13:24",
    "updated_at": "2023-05-12T12:13:24",
    "account_key": "169010e3-6c1e-4521-9253-11cbbf36c59j",
    "pix_key": "12345678000190"
  },
  "donator_ispb": null,
  "external_key": null,
  "claim_request_key": "7f8b67d2-d8e4-4759-85eb-e4d0ac24708c",
  "claim_request_type": "portability",
  "client_role": "claimant",
  "confirmation_reason": null,
  "requester_key": "e151044c-44d0-48b3-9df1-0b9475077fe5",
  "claimant_bank_code": "329",
  "cancelled_by": null,
  "request_failure_reason": null,
  "donator": null,
  "account_key": "169010e3-6c1e-4521-9253-11cbbf36c59j"
}
```

STATUS 4XX

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                            | Descrição (eng)<br/>`Description`                                                                                                | Descrição (ptbr)<br/>`translation`                                                                                                 |
|-------------|----------------------|-----------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|
| 400         | PIX000022            | Pix key already registered                    | Pix key already registered for the account.                                                                                      | Chave pix já cadastrada para a conta.                                                                                              |
| 400         | PIX000014            | Maximum Number of Pix Keys in Use             | Maximum number of pix keys for account \{account_key\} has reached                                                                 | A conta \{account_key\} já tem o número máximo de chaves pix.                                                                        |
| 400         | PIX000003            | Account is not Opened                         | Account \{account_key\} is not opened                                                                                              | Conta \{account_key\} não está aberta                                                                                                |
| 400         | PIX000053            | Invalid Portability Request                   | Portability within same Financial Institution should follow key alteration flow instead                                          | Não é possível realizar portabilidade dentro da própria instituição financeira. Proceder com o fluxo de alteração                  |
| 403         | PIX000054            | Invalid Permission                            | Person 5dbd5598-6b42-4d80-8e5e-1c616cf8b9ab does not have administration roles for account 169010e3-6c1e-4521-9253-11cbbf36c59j. | Pessoa 5dbd5598-6b42-4d80-8e5e-1c616cf8b9ab não tem credencial de administrador para a conta 169010e3-6c1e-4521-9253-11cbbf36c59j. |
| 404         | PIX000017            | Pix Key is Unregistered                       | Pix key 12345678000190 is not currently used.                                                                                    | A chave pix 12345678000190 não está sendo utilizada.                                                                               |
| 422         | PIX000077            | Error when querying pix key                   | Error when querying pix key 12345678000190                                                                                       | Erro ao consultar chave pix 12345678000190                                                                                         |
| 400         | PIX000028            | Key Type not allowed for portability or claim | Only cpf, cnpj, email and phone_number key_types can be portabilized or claim. Received key_type: random_key                     | Somente os key_types cpf, cnpj, email e phone_number podem ser portabilizados ou reivindicados. key_type recebido: random_key      |
| 400         | PIX000061            | Invalid Document                              | Invalid document sent 12345678000190.                                                                                            | Documento enviado é inválido 12345678000190.                                                                                       |
| 404         | PIX000026            | Account not found                             | Account not found for account_key: 6aaadfbc-76ba-45d2-bb21-138bcb2baa62                                                          | Conta não encontrada para account_key: 6aaadfbc-76ba-45d2-bb21-138bcb2baa62                                                        |
| 404         | PIX000027            | Person not found                              | Person not found for person_key: \{person_key\}                                                                                    | Pessoa não encontrada para person_key: \{person_key\}                                                                                |
| 422         | PIX000069            | Pix Key inquiry timeout                       | Pix key inquiry timeout. Please try again.                                                                                       | Consulta de chave pix excedeu o tempo limite. Por favor tente novamente.                                                           |
| 400         | PIX000072            | Pix Key Claim Non Finished                    | Pix key 12345678000190, already has a claim request non finished.                                                                | Chave pix 12345678000190, já possui um pedido de portabilidade não finalizado.                                                     |

---

# Deletando um pedido de portabilidade

URL: /documentation/pix/portabilidade/deletando_um_pedido_de_portabilidade

Caso o pedido de portabilidade esteja no status "pending_claimer_validation" é possível deletar a portabilidade.

### Request

ENDPOINT /baas/pix/key_claim_request/ CLAIM_REQUEST_KEY
MÉTODO DELETE

Request Body

```json
{}
```

### Response

STATUS 200

Response Body

```json
{
  "max_conclusion_date": "2023-05-26T12:13:25",
  "claim_request_status": "cancelled",
  "claimant": {
    "document_number": "12345678000190",
    "claimant_key": "6aaadfbc-76ba-45d2-bb21-138bcb2baa62",
    "account_opened_at": "2023-01-17T12:28:37",
    "account_branch": "0001",
    "account_type": "escrow",
    "account_number": "7336349",
    "person_type": "legal",
    "account_digit": "0"
  },
  "max_resolution_date": "2023-05-19T12:13:25",
  "claimant_bank_name": "QI SCD S.A.",
  "pix_key": {
    "pix_key_type": "email",
    "pix_key_status": "inactivated",
    "created_at": "2023-05-12T12:13:24",
    "updated_at": "2023-05-12T12:13:24",
    "account_key": "169010e3-6c1e-4521-9253-11cbbf36c59j",
    "pix_key": "example@gmail.com"
  },
  "donator_ispb": null,
  "external_key": null,
  "claim_request_key": "7f8b67d2-d8e4-4759-85eb-e4d0ac24708c",
  "claim_request_type": "portability",
  "client_role": "claimant",
  "confirmation_reason": null,
  "requester_key": "e151044c-44d0-48b3-9df1-0b9475077fe5",
  "claimant_bank_code": "329",
  "cancelled_by": null,
  "request_failure_reason": null,
  "donator": null,
  "account_key": "169010e3-6c1e-4521-9253-11cbbf36c59j"
}
```

STATUS 4XX

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                                        | Descrição (eng)<br/>`Description`                                                               | Descrição (ptbr)<br/>`translation`                                                                           |
|-------------|----------------------|-----------------------------------------------------------|-------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|
| 404         | PIX000031            | Claim Request not found                                   | Claim Request not found for key: 7f8b67d2-d8e4-4759-85eb-e4d0ac24708c.                          | Claim Request não encontrada para a chave: 7f8b67d2-d8e4-4759-85eb-e4d0ac24708c.                             |
| 403         | QIT000005            | Permission Validator Error.                               | Selected agent do not own this item.                                                            | O agente selecionado não é dono do item.                                                                     |
| 400         | PIX000047            | Claim request does not have validation.                   | Claim request does not have two steps validation.                                               | Pedido de reinvindicação não possui validação de duas etapas.                                                |
| 400         | PIX000047            | Claim Request Is Not Pending Validation From The Claimer. | Claim request 7f8b67d2-d8e4-4759-85eb-e4d0ac24708c, is not pending validation from the claimer. | Pedido de portabilidade 7f8b67d2-d8e4-4759-85eb-e4d0ac24708c, não está pendente de validação do solicitante. |

---

# Portabilidade

URL: /documentation/pix/portabilidade/recebendo_pedido_de_portabilidade

:::danger Atenção!
Os webhooks da QI Tech não devem ser mapeadas de forma restrita.
Campos adicionais podem ser incluídos aos payloads dos webhooks retornados em nossas APIs.
:::

## Recebendo pedido de portabilidade

Após a criação do pedido de portabilidade em outro banco, a QI informará o solicitante sobre o pedido de portabilidade
em aberto através do seguinte webhook:

WEBHOOK_TYPE claim_request

Webhook Body

```json
{
  "account_key": "169010e3-6c1e-4521-9253-11cbbf36c59j",
  "pix_key": "12345678000190",
  "pix_key_type": "cnpj",
  "claim_request_type": "portability",
  "role": "donator",
  "claim_request_key": "7f8b67d2-d8e4-4759-85eb-e4d0ac24708c",
  "claim_request_status": "pending_confirmation",
  "claimant_person_type": "natural",
  "claimant_document_number": "12345678000190",
  "claimant_account_branch": "0001",
  "claimant_account_number": "5050396",
  "claimant_account_digit": "1",
  "webhook_type": "claim_request"
}
```

#### Enumeradores claim_request_status

| Enumerador           | Tradução                |
|----------------------|-------------------------|
| concluded            | concluído               |
| cancelled            | cancelado               |
| failed               | falha                   |
| pending_confirmation | pendente de confirmação |

---

# Reenviando a validação de dois fatores

URL: /documentation/pix/portabilidade/reenviando_a_2fa

Caso o pedido de portabilidade esteja no status "pending_claimer_validation" é possível reenviar o código da validação
de dois fatores.

### Request

ENDPOINT /baas/pix/key_claim_request/ CLAIM_REQUEST_KEY /resend_twofa
MÉTODO PATCH

Request Body

```json
{}
```

### Response

STATUS 205

Response Body

```json
{
  "max_conclusion_date": "2023-05-26T12:13:25",
  "claim_request_status": "pending_claimer_validation",
  "claimant": {
    "document_number": "12345678000190",
    "claimant_key": "6aaadfbc-76ba-45d2-bb21-138bcb2baa62",
    "account_opened_at": "2023-01-17T12:28:37",
    "account_branch": "0001",
    "account_type": "escrow",
    "account_number": "7336349",
    "person_type": "legal",
    "account_digit": "0"
  },
  "max_resolution_date": "2023-05-19T12:13:25",
  "claimant_bank_name": "QI SCD S.A.",
  "pix_key": {
    "pix_key_type": "email",
    "pix_key_status": "pending_confirmation",
    "created_at": "2023-05-12T12:13:24",
    "updated_at": "2023-05-12T12:13:24",
    "account_key": "169010e3-6c1e-4521-9253-11cbbf36c59j",
    "pix_key": "example@gmail.com"
  },
  "donator_ispb": null,
  "external_key": null,
  "claim_request_key": "7f8b67d2-d8e4-4759-85eb-e4d0ac24708c",
  "claim_request_type": "portability",
  "client_role": "claimant",
  "confirmation_reason": null,
  "requester_key": "e151044c-44d0-48b3-9df1-0b9475077fe5",
  "claimant_bank_code": "329",
  "cancelled_by": null,
  "request_failure_reason": null,
  "donator": null,
  "account_key": "169010e3-6c1e-4521-9253-11cbbf36c59j"
}

```

STATUS 4XX

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                                        | Descrição (eng)<br/>`Description`                                                               | Descrição (ptbr)<br/>`translation`                                                                           |
|-------------|----------------------|-----------------------------------------------------------|-------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|
| 404         | PIX000031            | Claim Request not found                                   | Claim Request not found for key: 7f8b67d2-d8e4-4759-85eb-e4d0ac24708c.                          | Claim Request não encontrada para a chave: 7f8b67d2-d8e4-4759-85eb-e4d0ac24708c.                             |
| 403         | QIT000005            | Permission Validator Error.                               | Selected agent do not own this item.                                                            | O agente selecionado não é dono do item.                                                                     |
| 400         | PIX000047            | Claim request does not have validation.                   | Claim request does not have two steps validation.                                               | Pedido de reinvindicação não possui validação de duas etapas.                                                |
| 400         | PIX000047            | Claim Request Is Not Pending Validation From The Claimer. | Claim request 7f8b67d2-d8e4-4759-85eb-e4d0ac24708c, is not pending validation from the claimer. | Pedido de portabilidade 7f8b67d2-d8e4-4759-85eb-e4d0ac24708c, não está pendente de validação do solicitante. |

---

# Portabilidade

URL: /documentation/pix/portabilidade/respondendo_pedido_de_portabilidade

### Request

ENDPOINT /baas/pix/key_claim_request/ CLAIM_REQUEST_KEY/
CLAIM_ACTION
MÉTODO PATCH

#### Path params

| Campo       | Tipo   | Descrição                      |
|-------------|--------|--------------------------------|
| `claim_request_key` | string | a chave do pedido de portabilidade. |
| `claim_action` | enum | **[Enumeradores](#enumeradores-claim_action)** |

#### Enumeradores claim_action

| Enumerador | Tradução | Descrição                      |
|---|---|---|
|  confirmed  | confirmado | use essa action para confirmar o pedido de portabilidade
|  cancelled  | cancelado | use essa action para cancelar o pedido de portabilidade
|  pending_donator_validation  | pending_donator_validation | use essa auction para receber a autenticaçã de dois fatores

:::caution **Atenção**
Antes de cancelar uma claim que o "claim_request_type" seja "ownership" é necessário realizar a action "pending_donator_validation" para receber a autenticação de dois fatores e realizar o envio no payload. A única "cancelation_reason" aceita para cancelamento de claims desse tipo são "ownership" e "fraud".
:::
:::caution **Atenção**
Após a action de cancelamento ser executada o processo de claim request chegou ao final e não existem hooks para serem recebidos.
:::

Request Body

```json title='Confirmação'
{
    "confirmation_reason": "client_request"
}
```
```json title='Cancelamento'
{
    "cancellation_reason": "client_request"
}
```
```json title='Cancelamento de ownership'
{
    "cancellation_reason": "fraud",
    "verification_code": "432371"
}
```
```json title='Pendente de validação do doador'
{}
```

#### Body Params

| Campo | Tipo | Descrição | Caracteres |
|---|---|---|---|
| `confirmation_reason` | enum | **[Enumeradores](#enumeradores-confirmation_reason)**. | 14 |
| `cancellation_reason` | enum |  **[Enumeradores](#enumeradores-cancellation_reason)**. | 14 |
| `verification_code` | string | token recebido no número de telefone ou e-mail. | 6 |

#### Enumeradores confirmation_reason

| Enumerador | Tradução |
|---|---|
|  client_request  | pedido do clitente |

#### Enumeradores cancellation_reason

| Enumerador | Tradução |
|---|---|
|  **client_request**  | pedido do clitente |
|  **fraud**  | fraude |

:::caution **Atenção**
Ao cancelar um pedido de portabilidade do tipo "ownership" o "cancelation_reason" sempre deve ser "fraud".
:::

### Response

STATUS 200

Response Body

```json
{
    "max_conclusion_date": "2023-05-26T12:13:25",
    "claim_request_status": "confirmed",
    "claimant": {
        "document_number": "12345678000190",
        "claimant_key": "6aaadfbc-76ba-45d2-bb21-138bcb2baa62",
        "account_opened_at": "2023-01-17T12:28:37",
        "account_branch": "0001",
        "account_type": "checking",
        "account_number": "7336349",
        "person_type": "legal",
        "account_digit": "0"
    },
    "max_resolution_date": "2023-05-19T12:13:25",
    "claimant_bank_name": "QI SCD S.A.",
    "pix_key": {
        "pix_key_type": "cnpj",
        "pix_key_status": "active",
        "created_at": "2023-05-12T12:13:24",
        "updated_at": "2023-05-12T12:13:24",
        "account_key": "169010e3-6c1e-4521-9253-11cbbf36c59j",
        "pix_key": "12345678000190"
    },
    "donator_ispb": null,
    "external_key": null,
    "claim_request_key": "7f8b67d2-d8e4-4759-85eb-e4d0ac24708c",
    "claim_request_type": "portability",
    "client_role": "claimant",
    "confirmation_reason": null,
    "requester_key": "e151044c-44d0-48b3-9df1-0b9475077fe5",
    "claimant_bank_code": "329",
    "cancelled_by": null,
    "request_failure_reason": null,
    "donator": null,
    "account_key": "169010e3-6c1e-4521-9253-11cbbf36c59j"
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                            | Descrição (eng)<br/>`Description`                                                                                                | Descrição (ptbr)<br/>`translation`                                                                                                 |
|-------------|----------------------|-----------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|
| 400         | PIX000043            | Claim request action not allowed on current status                    | confirmed Claim request action only allowed for pending_confirmation requests                                                                                      | Ação confirmed para claim request permitida somente para pedidos com status pending_confirmation.                                                                                              |
| 400         | PIX000036            | Claim request action not allowed for claimant             | Claim request action not allowed for claimant. Only donator can perform this action                                                                 | Ação sobre claim request não permitida para reivindicador. Somente o doador pode executar esta ação                                                                        |
| 400         | PIX000044            | Claim request confirm action without reason                         | confirmation_reason is required on action confirmed                                                                                              | confirmation_reason é obrigatório na ação confirmed                                                                                                |
| 400         | PIX000045            | Razão da confirmação não permitida                   | cancellation_reason: invalid not allowed for client_role: donator and claim_request_type: portability                                          | cancellation_reason: invalid não permitida para client_role: donator and claim_request_type: portability                  |
| 400         | PIX000039            | Claim request action not allowed on current status                            | Cancelled Claim request action only allowed for non concluded requests | Ação cancelled para claim request permitida somente para pedidos com status diferente de concluded |
| 400         | PIX000040            | Claim request cancel action without reason                       | cancellation_reason is required on action cancelled                                                                                    | cancellation_reason é obrigatório na ação cancelled                                                                               |
| 400        | PIX000042            | Razão do cancelamento não permitida                   | cancellation_reason: client_request not allowed for client_role: donator and claim_request_type: ownership                                                                                       | cancellation_reason: client_request não permitida para client_role: donator and claim_request_type: ownership                                                                                         |
| 400         | PIX000051            | Verification code required | 2FA verification code required.                     | Código de verificação 2FA necessário.     |
| 400 | PIX000100 | External Claim Already Cancelled | The external claim request has already been cancelled | O pedido de portabilidade externo já foi cancelado |
| 404         | PIX000034            | Claim Request not found                              | IClaim Request not found. claim_request_key: 7f8b67d2-d8e4-4759-85eb-e4d0ac24708c external_key: b8e25f24-4051-4b13-90a7-76be7b6e96d2.                                                                                            | Claim Request não encontrada. claim_request_key: 7f8b67d2-d8e4-4759-85eb-e4d0ac24708c external_key: b8e25f24-4051-4b13-90a7-76be7b6e96d2.                                                                                       |
| 401         | 2FA000401            | Unauthorized                             | Invalid verification combination.                                                          | CCódigo de verificação inválido.                                                        |
| 403         | 2FA000403            | Forbidden                              | Code already verified.                                                                                    | Este código já foi utilizado.                                                                                |
| 410         | 2FA000410            | Gone                       | Expired Code.                                                                                       | Código de verificação expirado.                                                           |

---

# Simular alteração de status de portabilidade

URL: /documentation/pix/portabilidade/simular_alteracao_de_status_de_portabilidade

### Request

ENDPOINT /mock/pix_keys/key_claim_simulation/ CLAIM_REQUEST_KEY
/receive_response/ CLAIM_ACTION
MÉTODO PATCH

#### Path params

| Campo               | Tipo   | Descrição                                                |
|---------------------|--------|----------------------------------------------------------|
| `claim_request_key` | uuidv4 | Chave única de identificação do pedido de portabilidade. |
| `claim_action`      | string | **[Enumeradores](#enumeradores-claim_action)**           |

#### Enumeradores claim_action

| Enumerador    | Tradução   | Descrição                                                                                                                                 |
|---------------|------------|-------------------------------------------------------------------------------------------------------------------------------------------|
| **failed**    | falhou     | O pedido de portabilidade falhou                                                                                                          |
| **confirmed** | confirmado | O pedido de portabilidade está confirmado, necessita de aprovação do banco doador para ser concluido ou de rejeição para ser cancelado    |
| **cancelled** | cancelado  | O pedido de portabilidade está cancelado, logo, para se realizar uma claim sobre está chave deve-se abrir um novo pedido de portabilidade |
| **concluded** | concluído  | O pedido de portabilidade está concluído                                                                                                  |

Request Body

```json
{}
```

### Response

STATUS 204

Response Body

```json
{}
```

STATUS 4XX

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                           | Descrição (eng)<br/>`Description`                                                         | Descrição (ptbr)<br/>`translation`                                                                  |
|-------------|----------------------|----------------------------------------------|-------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------|
| 404         | PIX000034            | Claim Request not found                      | Claim Request not found. claim_request_key: claim_request_key external_key: external_key. | Claim Request não encontrada. claim_request_key: claim_request_key external_key: external_key.      |
| 400         | PIX000035            | Claim request action not allowed for donator | Claim request action not allowed for donator. Only claimant can perform this action       | Ação sobre claim request não permitida para doador. Somente o reinvidicador pode executar esta ação |

---

# Simular webhook de conclusão do pedido de portabilidade

URL: /documentation/pix/portabilidade/simular_webhook_de_conclusao

### Request

ENDPOINT /mock/pix_keys/key_claim_simulation/ CLAIM_REQUEST_KEY
/complete
MÉTODO PATCH

#### Path params

| Campo               | Tipo   | Descrição                           |
|---------------------|--------|-------------------------------------|
| `claim_request_key` | string | a chave do pedido de portabilidade. |

Request Body

```json
{}
```

### Response

STATUS 204

Response Body

```json
{}
```

STATUS 4XX

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                                  | Descrição (eng)<br/>`Description`                                                                                                         | Descrição (ptbr)<br/>`translation`                   |
|-------------|----------------------|-----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------|
| 404         | PIX000034            | Pedido de portabilidade não encontrado              | Claim Request não encontrada. claim_request_key: 7f8b67d2-d8e4-4759-85eb-e4d0ac24708c external_key: b8e25f24-4051-4b13-90a7-76be7b6e96d2. | Pedido de portabilidade não encontrado.              |
| 400         | PIX000046            | Ação de portabilidade não permitida no status atual | Ação concluded para pedido de reivindicação permitida somente para status confirmed                                                       | Ação de portabilidade não permitida no status atual. |
| 400         | PIX000036            | Ação não permitida para requerente                  | Ação sobre claim request não permitida para reivindicador. Somente o doador pode executar esta ação                                       | Ação não permitida para requerente.                  |

---

# Simular webhook de recebimento de um pedido de portabilidade

URL: /documentation/pix/portabilidade/simular_webhook_recebimento

### Request

ENDPOINT
      /mock/pix_keys/key_claim_simulation/receive
MÉTODO
      POST

Request Body

```json
{
  "pix_key": "12345678000190",
  "pix_key_type": "cnpj"
}
```

#### Body Params

| Campo          | Tipo | Descrição                                                    | Caracteres                                     |
|----------------|------|--------------------------------------------------------------|------------------------------------------------|
| `pix_key`      | enum | chave para simular o recebimento de pedido de portabilidade. | -                                              |
| `pix_key_type` | enum | tipo da chave pix da portabilidade.                          | **[Enumeradores](#enumeradores-pix_key_type)** |

#### Enumeradores pix_key_type

| Enumerador   | Tradução           |
|--------------|--------------------|
| **random_key**   | aleatória          |
| **email**        | e-mail             |
| **phone_number** | número de telefone |
| **cpf**          | cpf                |
| **cnpj**         | cnpj               |

:::info Tipos de Chave Pix
A chave pix enviada no payload deve estar ativa no ambiente de sandbox e em uma conta que você tenha criado.
:::

### Response

STATUS 201

Response Body

```json
{}
```

STATUS 4XX

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`         | Descrição (eng)<br/>`Description`                                       | Descrição (ptbr)<br/>`translation`                                             |
|-------------|----------------------|----------------------------|-------------------------------------------------------------------------|--------------------------------------------------------------------------------|
| 400         | PIX000072            | Pix Key Claim Non Finished | Pix key 12345678000190, already has a claim request non finished.       | Chave pix 12345678000190, já possui um pedido de portabilidade não finalizado. |
| 400         | PIX000026            | Account not found          | Account not found for account_key: 6aaadfbc-76ba-45d2-bb21-138bcb2baa62 | Conta não encontrada para account_key: 6aaadfbc-76ba-45d2-bb21-138bcb2baa62    |

---

# Validação de dois fatores

URL: /documentation/pix/portabilidade/validacao_de_dois_fatores

:::info Token em Sandbox
Para facilitar os testes no ambiente de sandbox, o token terá sempre o valor `329329`.

Este comportamento é exclusivo para o ambiente de sandbox.
:::

### Request

ENDPOINT /baas/pix/key_claim_request/ CLAIM_REQUEST_KEY /twofa_validation
MÉTODO PATCH

#### Path params

| Campo               | Tipo   | Descrição                           |
|---------------------|--------|-------------------------------------|
| `claim_request_key` | string | a chave do pedido de portabilidade. |

Request Body

```json
{
  "verification_code": "432371"
}
```

#### Body Params

| Campo               | Tipo   | Descrição                                       | Caracteres |
|---------------------|--------|-------------------------------------------------|------------|
| `verification_code` | string | token recebido no número de telefone ou e-mail. | 6          |

### Response

STATUS 200

Response Body

```json
{
  "max_conclusion_date": "2023-05-26T12:13:25",
  "claim_request_status": "pending",
  "claimant": {
    "document_number": "12345678000190",
    "claimant_key": "6aaadfbc-76ba-45d2-bb21-138bcb2baa62",
    "account_opened_at": "2023-01-17T12:28:37",
    "account_branch": "0001",
    "account_type": "escrow",
    "account_number": "7336349",
    "person_type": "legal",
    "account_digit": "0"
  },
  "max_resolution_date": "2023-05-19T12:13:25",
  "claimant_bank_name": "QI SCD S.A.",
  "pix_key": {
    "pix_key_type": "cnpj",
    "pix_key_status": "pending_confirmation",
    "created_at": "2023-05-12T12:13:24",
    "updated_at": "2023-05-12T12:13:24",
    "account_key": "169010e3-6c1e-4521-9253-11cbbf36c59j",
    "pix_key": "12345678000190"
  },
  "donator_ispb": null,
  "external_key": null,
  "claim_request_key": "7f8b67d2-d8e4-4759-85eb-e4d0ac24708c",
  "claim_request_type": "portability",
  "client_role": "claimant",
  "confirmation_reason": null,
  "requester_key": "e151044c-44d0-48b3-9df1-0b9475077fe5",
  "claimant_bank_code": "329",
  "cancelled_by": null,
  "request_failure_reason": null,
  "donator": null,
  "account_key": "169010e3-6c1e-4521-9253-11cbbf36c59j"
}

```

STATUS 4XX

Response Body: Error

```json
{
  "title": "titulo",
  "description": "description in English",
  "translation": "descrição em portugues",
  "code": "codigo",
  "extra_fields": {}
}
```

| Código HTTP | Código QI<br/>`code` | Título<br/>`title`                                 | Descrição (eng)<br/>`Description`                                           | Descrição (ptbr)<br/>`translation`                                                  |
|-------------|----------------------|----------------------------------------------------|-----------------------------------------------------------------------------|-------------------------------------------------------------------------------------|
| 400         | PIX000047            | Claim request action not allowed on current status | Validate Claim request action only allowed for pending_validation requests. | Ação validate para claim request permitida somente para pedidos pending_validation. |
| 401         | 2FA000401            | Unauthorized                                       | Invalid verification combination.                                           | Código de verificação inválido.                                                     |
| 403         | 2FA000403            | Forbidden                                          | Code already verified.                                                      | Este código já foi utilizado.                                                       |
| 403         | QIT000005            | Permission Validator Error.                        | Selected agent do not own this item.                                        | O agente selecionado não é dono do item.                                            |
| 410         | 2FA000410            | Gone                                               | Expired Code.                                                               | Código de verificação expirado.                                                     |
| 404         | PIX000031            | Claim Request not found                            | Claim Request not found for key: 7f8b67d2-d8e4-4759-85eb-e4d0ac24708c.      | Claim Request não encontrada para a chave: 7f8b67d2-d8e4-4759-85eb-e4d0ac24708c.    |

---

# Simulação de cenários

URL: /documentation/pix/simulacao

Passo a passo para simular a efetivação de ações feitas por agentes externos. Essas simulações incluem: entrada, estorno
e portabilidade IN de chave PIX.

## 1 - Simulação de entrada de PIX

### Request

ENDPOINT /mock/pix_transfer/incoming_pix_transfer
MÉTODO POST

Request Body

```json
{
  "target_account_key": "\<Chave unitária da conta de destino\>",
  "amount": "\<Valor da transação\>"
}
```

### Body Parameters

| Campo                | Tipo   | Descrição                          | Máx. Caract. | Exemplo                                | Observação              |
|----------------------|--------|------------------------------------|--------------|----------------------------------------|-------------------------|
| `target_account_key` | string | Chave unitária da conta de destino | 36           | "41112f46-0034-4007-85687-5e592173db2" |                         |
| `amount`             | number | Valor da transação                 | 6            | 1000                                   | Valor máximo de 100.000 |

## Response

STATUS 201

Response Body

```json
{
  "end_to_end_id": "E60701190202601291553Zrxq8RRUwS1"
}
```

## 2 - Simulação de resultado da análise de entrada PIX

Para simular o cenário onde a entrada PIX entra em análise manual, é necessário simular uma entrada com valor superior a R$ 2.000.000,00 (dois milhões de reais). Nesse caso, o PIX ficará em status de análise manual e o cliente receberá os devidos webhooks.

:::caution Atenção
A regra de dois milhões é exclusiva para ambiente de sandbox e **não reflete os casos de produção**.
:::

Após receber o webhook de análise manual, é necessário utilizar esta rota de simulação para aprovar ou recusar a entrada do recurso. O cliente também receberá os devidos webhooks com o resultado da análise.

### Request

ENDPOINT /mock/pix_transfer/incoming_pix_analysis_result
MÉTODO POST

Request Body

```json
{
  "end_to_end_id": "E60701190202601291537yo1ZxpvVzJn",
  "analysis_status": "manually_reproved"
}
```

### Body Parameters

| Campo             | Tipo   | Descrição                                                   | Máx. Caract. | Exemplo                            | Observação |
|-------------------|--------|-------------------------------------------------------------|--------------|------------------------------------|-----------|
| `end_to_end_id`   | string | Chave unitária da transação PIX                             | 32           | "E60701190202601291537yo1ZxpvVzJn" |            |
| `analysis_status` | enum   | [Enumerador Analysis Status](#enumerador-analysis-status)   |              | "manually_reproved"                |            |

### Enumerador Analysis Status

| Enumerador            | Descrição             |
|-----------------------|-----------------------|
| **manually_approved** | Aprovado manualmente  |
| **manually_reproved** | Reprovado manualmente |

## 3 - Simulação de pagamento de PIX QR Code

### Request

ENDPOINT /mock/pix_transfer/incoming_pix_qrcode
MÉTODO POST

Request Body

```json
{
  "qr_code_key": "41112f46-0034-4007-85687-5e592173db2"
}
```

### Body Parameters

| Campo         | Tipo   | Descrição                                  | Máx. Caract. | Exemplo                                | Observação |
|---------------|--------|--------------------------------------------|--------------|----------------------------------------|------------|
| `qr_code_key` | string | Chave unitária de identificação do qr code | 36           | "41112f46-0034-4007-85687-5e592173db2" |            |

## 4 - Simulação de estorno de PIX

### Request

ENDPOINT /mock/pix_transfer/chargeback
MÉTODO POST

Request Body

```json
{
  "end_to_end_id": "\<Chave unitária da transação\>",
  "amount": "\<Valor da transação\>"
}
```

### Body Parameters

| Campo           | Tipo   | Descrição                       | Máx. Caract. | Exemplo                            | Observação              |
|-----------------|--------|---------------------------------|--------------|------------------------------------|-------------------------|
| `amount`        | number | Valor da transação              | 6            | 1000                               | Valor máximo de 100.000 |                        |
| `end_to_end_id` | string | Chave unitária da transação PIX | 32           | "E3240250220210723142712312751267" |                         |                         

## 5 - Simulação de webhook de portabilidade IN de chave PIX

### Request

ENDPOINT /mock/pix_keys/key_claim_request/webhook
MÉTODO POST

Request Body

```json
{
  "claim_request_key": "\<Chave unitária do requester\>",
  "claim_request_status": "\<Enumerador de status\>"
}
```

### Body Parameters

| Campo                  | Tipo   | Descrição                                                           | Máx. Caract. | Exemplo                                | Observação |
|------------------------|--------|---------------------------------------------------------------------|--------------|----------------------------------------|------------|
| `claim_request_key`    | string | Chave unitária do requester                                         | 36           | "ced00dc6-000a-0bd4-a111-85710a46ec05" |            |
| `claim_request_status` | enum   | [Enumerador Claim Request Status](#enumerador-claim-request-status) |              | "concluded"                            |            |

### Enumerador _Claim Request Status_

| Enumerador               | Descrição               |
|--------------------------|-------------------------|
| **concluded**            | Concluído               |
| **cancelled**            | Cancelado               |
| **failed**               | Falha                   |
| **pending_confirmation** | Pendente de confirmação |

## 6 - Simulação de transação em estado pendente de confirmação

Transações pix podem entrar em status **pending_confirmation** quando ocorre alguma demora no retorno da resposta da
transação Pix pelo Banco Central. Para simular este cenário, realize uma transação com a chave
pix `"target_pix_key": "0476f803-0129-430a-a66c-d2f0d7cf4aaa"` ou, para transferências pix do tipo **manual**,
utilize `"owner_document_number": "35586870002"` como número de documento do proprietário da conta de destino.

Para que o status da transação seja atualizado, realize a requisição abaixo com `transaction_status` de **sent** para
aprovar a transação, ou **rejected** para reprová-la.

### Request

ENDPOINT /mock/pix_transfer/pending_confirmation
MÉTODO POST

Request Body

```json
{
  "end_to_end_id": "E32402502202308181802vSHbiqNCk9i",
  "transaction_status": "rejected",
  "status_reason_information": {
    "error_description": "description",
    "error_translation": "translation",
    "error_short_description": "short_description"
  },
  "error_code": "test_error"
}
```

### Body Parameters

| Campo                       | Tipo   | Descrição                                                             | Máx. Caract. |
|-----------------------------|--------|-----------------------------------------------------------------------|--------------|
| `end_to_end_id`*            | string | Chave unitária da transação PIX                                       | 36           |
| `transaction_status`*       | enum   | [Enumerador Transaction Status](#enumerador-transaction-status)       |
| `status_reason_information` | objeto | [Objeto Status Reason Information](#objeto-status-reason-information) |
| `error_code`                | string | Código de erro                                                        |

### Enumerador Transaction Status

| Enumerador   | Descrição |
|--------------|-----------|
| **sent**     | Concluído |
| **rejected** | Rejeitado |

### Objeto Status Reason Information

| Campo                     | Tipo   | Descrição                         | Máx. Caract. |
|---------------------------|--------|-----------------------------------|--------------|
| `error_description`       | string | Descrição do erro em inglês       | 100          |
| `error_translation`       | string | Descrição do erro em português    | 100          |
| `error_short_description` | string | Descrição curta do erro em inglês | 100          |

## 7 - Simulação de transação rejeitada

Transações pix podem entrar em status **rejected** quando ocorre algum retorno esperado de recusa da
transação Pix pelo Banco Central ou PSP recebedor. Para simular este cenário, realize uma transação com a chave
pix `"target_pix_key": "b9380607-dac6-4e17-8ca7-eb761e3aa1dc"` ou, para transferências pix do tipo **manual**,
utilize `"owner_document_number": "66972913039"` ou `"owner_document_number": "50305556000164"` como número de documento
do proprietário da conta de destino.

## 8 - Recuperar Token enviado para Autenticação de Dois Fatores

Para transações pix individuais e em lote de parceiros integradores com configuração de autenticação de dois fatores,
um `token` é enviado ao aprovador de movimentação da conta. Por meio deste endpoint é possível recuperar o endpoint
enviado para fins de teste de integração.

ENDPOINT /mock/2fa/transaction_request/ TRANSACTION_REQUEST_KEY
MÉTODO GET

## Path Params

| Campo                     | Tipo  | Descrição                                                                                                                                                           | Caracteres |
|---------------------------|-------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|
| `transaction_request_key` | uuid4 | Chave única de identificação transação. Para o caso de transação pix seria a `pix_transfer_key` e para o caso de transação pix em lote é a `pix_transfer_batch_key` | 36         |

Response Body

```json
{
  "token": "1a2b3c"
}
```

---

# Solicitar alteração de limite Pix

URL: /documentation/pix/solicitar_alteracao_de_limite_pix

## Request

ENDPOINT /baas/pix/limits/ ACCOUNT_KEY
MÉTODO POST

Request Body

```json
{
    "daily_amount_limit": 2000.00,
    "nightly_amount_limit": 1000.00,
    "self_daily_amount_limit": 1500.00,
    "self_nightly_amount_limit": 500.00
}
```

### Body Params

| Campo                       | Tipo  | Descrição                                                                          |
|-----------------------------|-------|------------------------------------------------------------------------------------|
| `daily_amount_limit`        | float | Limite durante o período diurno para transferências Pix de diferente titularidade  |
| `nightly_amount_limit`      | float | Limite durante o período noturno para transferências Pix de diferente titularidade |
| `self_daily_amount_limit`   | float | Limite durante o período diurno para transferências Pix de mesma titularidade      |
| `self_nightly_amount_limit` | float | Limite durante o período noturno para transferências Pix de mesma titularidade     | 

:::info Horário diurno
Para o período **diurno** são contabilizadas transferências realizadas entre **06:00** e **20:00**.
:::

:::danger Atenção
As Solicitações de aumento de limite Pix possuem um SLA de **48 horas** para aprovação.

Solicitações de redução do limite Pix são aprovação e executadas imediatamente. 

Caso o SLA de **48 horas** seja atingido sem aprovação, a solicitação é automaticamente rejeitada com o motivo `Tempo de avaliação expirado.` e um webhook de rejeição é enviado ao requisitante (ver [Webhook Request Rejected Body](#webhook-request-rejected-body)).
:::

## Response

STATUS 200

Response Body

```json
[
	{
		"account_digit": "5",
		"account_key": "467ce632-cc2c-412a-bc56-aa949bd8393d",
		"account_name": "Default",
		"account_number": "26709",
		"amount_limit": 2000.0,
		"event_type": "pix_limit_request",
		"limit_type": "daily",
		"owner_document_number": "63602991000100",
		"request_status": "pending_approval",
		"requester_document_number": "77669728833"
	},
	{
		"account_digit": "5",
		"account_key": "467ce632-cc2c-412a-bc56-aa949bd8393d",
		"account_name": "Default",
		"account_number": "26709",
		"amount_limit": 1000.0,
		"event_type": "pix_limit_request",
		"limit_type": "nightly",
		"owner_document_number": "63602991000100",
		"request_status": "pending_approval",
		"requester_document_number": "77669728833"
	},
	{
		"account_digit": "5",
		"account_key": "467ce632-cc2c-412a-bc56-aa949bd8393d",
		"account_name": "Default",
		"account_number": "26709",
		"amount_limit": 1500.0,
		"event_type": "pix_limit_request",
		"limit_type": "self_daily",
		"owner_document_number": "63602991000100",
		"request_status": "pending_approval",
		"requester_document_number": "53417895200"
	},
	{
		"account_digit": "5",
		"account_key": "467ce632-cc2c-412a-bc56-aa949bd8393d",
		"account_name": "Default",
		"account_number": "26709",
		"amount_limit": 500.0,
		"event_type": "pix_limit_request",
		"limit_type": "self_nightly",
		"owner_document_number": "63602991000100",
		"request_status": "pending_approval",
		"requester_document_number": "53417895200"
	}
]

```

STATUS 400

Response Body: Número enviado inválido

```json
{
	"title": "Bad Request",
	"description": "Invalid decimal amount, sent 1500.001",
	"translation": "Valor decimal inválido, enviado 1500.001",
	"code": "PXT000043",
	"additional_data": {}
}
```

STATUS 403

Response Body: Usuário não possui credenciais

```json
{
    "title": "Unauthorized",
    "description": "User is not allowed to do this transaction",
    "translation": "Usuário não tem autorização para fazer essa transação",
    "code": "PIT000001"
}
```

### Webhook Response

:::info Evento gerador de webhook
Webhooks são enviados ao requisitante da conta ao ser realizada a execução da solicitação de limite
:::

Webhook Request Accepted Body

```json
{
   "webhook_type": "baas.pix.limits.account_limit_config.updated",
   "webhook_datetime": "2023-08-05T19:54:01.514Z",
   "data": {
      "pix_transfer_limit_config": [
         {
            "period": "daily",
            "account_key": "467ce632-cc2c-412a-bc56-aa949bd8393d",
            "amount_limit": 800012.67,
            "self_amount_limit": 500.03
         },
         {
            "period": "nightly",
            "account_key": "467ce632-cc2c-412a-bc56-aa949bd8393d",
            "amount_limit": 100000.0,
            "self_amount_limit": 100000.0
         }
      ]
   }
}
```

Webhook Request Rejected Body

```json
{
   "webhook_type":"baas.pix.limits.account_limit_config.updated",
   "webhook_datetime": "2023-08-05T19:54:01.514Z",
   "data":{
     "message": "QI Tech informa que a solicitacao de limite PIX diário para terceiros da sua conta foi rejeitada. Motivo: limite reanalisado.",
     "account_key": "467ce632-cc2c-412a-bc56-aa949bd8393d",
     "request_status": "rejected",
     "limit_type": "daily"
   }
}
```

### Enumeradores limit_type
| Enumerador            | Descrição                                                                          |
|-----------------------|------------------------------------------------------------------------------------|
| `daily`               | Limite durante o período diurno para transferências Pix de diferente titularidade  |
| `nightly`             | Limite durante o período noturno para transferências Pix de diferente titularidade |
| `self_daily`          | Limite durante o período diurno para transferências Pix de mesma titularidade      |
| `self_nightly`        | Limite durante o período noturno para transferências Pix de mesma titularidade     |

---

# Webhook por QR Code Pix dinâmico expirado

URL: /documentation/pix/webhook_por_qr_code_expirado

:::danger Atenção!
Os webhooks da QI Tech não devem ser mapeadas de forma restrita. 
Campos adicionais podem ser incluídos aos payloads dos webhooks retornados em nossas APIs.
:::

:::info Reenvio de Webhooks
Você pode consultar e reenviar webhooks seguindo as instruções detalhadas na documentação: [Reenvio de Webhooks](/documentation/notificacoes/reenvio_de_notificacoes).
:::

## Webhook

:::info Evento gerador de webhook
Webhooks são enviados ao detentor da chave pix vinculada ao QR Code Dinâmico. Este evento ocorre uma única vez após o vencimento do QR Code.
:::

Resquest Body

```json
{
   "event_type":"baas.pix_qr_code.occurrence.bank_write_off",
   "origin_key":"faf1ef5b-e0a9-4430-8aa4-367b4825854c",
   "data":{
      "pix_key":"c05b7c73-fb43-45c2-871d-8c890dbe5d85",
      "qr_code_key":"458b4a77-9cb2-4232-bae5-078150c4e93d",
      "qr_code_type":"dynamic_instant",
      "qr_code_status":"bank_written_off",
      "qr_code_occurrence_key":"faf1ef5b-e0a9-4430-8aa4-367b4825854c",
      "receiver_conciliation_id":"458b4a779cb24232bae5078150c4e93d"
   }
}
```

---

# Atualizar regra de movimentação automática

URL: /documentation/regras_de_movimentacao/atualizar_regra_movimentacao

## Request

ENDPOINT /baas/automatic_transfer/transfer_configuration
MÉTODO PUT

:::danger Desativar transferência automática:
- Para desativar uma transferência automática basta enviar o parâmetro 'is_active' com valor false
:::

**REGRA DIVISÃO PERCENTUAL**

**Request Body**
    

```json
{
        "transfer_cronstring": "*/5 * * * *",
        "automatic_transfer_key": "967c40ea-ba35-4445-89b1-fa35bd0749a4",
        "rule_configuration": {
          "destinations": [
            {
              "account_digit": "9",
              "financial_institutions_code_number": "063",
              "document_number": "48504807000198",
              "account_number": "1232046",
              "percentage": 100,
              "name": "Mateus Fonseca",
              "account_branch": "0931",
              "is_pix_transfer": false
            }
          ],
          "remaining_balance": 0
        },
        "is_active": false,
        "rule": "split_percentage"
}
```

### Body Params

| Campo                           | Tipo   | Descrição                                                                                 | Caracteres                                                  |
|---------------------------------|--------|-------------------------------------------------------------------------------------------|-------------------------------------------------------------|
| `transfer_cronstring`*          | string | Frequência de transferência do dinheiro em CRON, padrão que permite expressar recorrência. | **[CRON Guru](https://crontab.guru/#0_9_*_*_*)**            |
| `rule`*                         | enum   | Regra a ser seguida. (split_equal ou split_percentage).                                    | **[Enumeradores](#enumeradores-rule)**                      
| `rule_configuration`*           | object | Objeto de configuração da regra escolhida.                                                 | **[Objeto rule_configuration](#objeto-rule_configuration)** |
| `account_key`*                  | uuid   | Key da conta origem das transferências.                                                    | -                                                           |
| `automatic_transfer_key`*       | uuid   | Key da configuração a ser alterada.                                                        | -                                                           |

### Obejto rule_configuration

| Campo          | Tipo | Descrição | Caracteres                                       |
|----------------|---| ---|--------------------------------------------------|
| `destinations` | object | Contas destino e outros dados. | **[Array of destination](#objeto-destinations)** |
| `remaining_balance` | float  | Valor de saldo que irá permanecer na conta.                                               | -                                                           |

### Objeto destinations

| Campo | Tipo    | Descrição                                                                                            | Caracteres |
|---|---------|------------------------------------------------------------------------------------------------------|------------|
| `account_branch`* | string  | Agência da conta destino.                                                                            | 3          |
| `account_number`* | string  | Número da conta destino.                                                                             | 3          |
| `account_digit`* | string  | Dígito da conta destino.                                                                             | 3          |
| `document_number`* | string  | Número do documento do dono da conta.                                                                | 3          |
| `name`* | string  | Nome da pessoa física ou razão social da pessoa jurídica.                                            | 3          |
| `financial_institutions_code_number`* | string  | Código COMPE da instituição financeira (https://www.bcb.gov.br/pom/spb/estatistica/port/ASTR003.pdf) | 3          |
| `financial_institutions_ispb`* | string  | Número ISPB da instituição financeira.                                                               | 8          |
| `is_pix_transfer`* | boolean | Define se a transferência será va pix.                                                               | -          |
| `percentage`* | float   | Porcentagem a ser destinada a essa conta.                                                            | -          |

### Enumeradores rule 

| Enumerador         | Tradução                                  |
|--------------------|-------------------------------------------|
| **split_percentage**   | [divisão percentual](./regras_de_movimentacao.md) |
| **split_equal**        | [divisão igual](./regras_de_movimentacao.md) |
| **single_beneficiary** | [beneficiário único](./regras_de_movimentacao.md) |

## Response

STATUS 200

**Response Body**

```json
{
  "automatic_transfer_key": "967c40ea-ba35-4445-89b1-fa35bd0749a4",
  "is_active": false,
  "rule": "split_percentage",
  "rule_configuration": {
    "destinations": [
      {
        "account_branch": "0931",
        "account_digit": "9",
        "account_number": "1232046",
        "document_number": "48504807000198",
        "financial_institutions_code_number": "063",
        "is_pix_transfer": false,
        "name": "Mateus Fonseca",
        "percentage": 100
      }
    ],
    "remaining_balance": 0
  },
  "transfer_cronstring": "*/5 * * * *"
}

```

**REGRA DIVISÃO IGUALITÁRIA**

**Request Body**
    

```json
{
        "transfer_cronstring": "*/5 * * * *",
        "automatic_transfer_key": "967c40ea-ba35-4445-89b1-fa35bd0749a4",
        "rule_configuration": {
          "destinations": [
            {
              "account_digit": "9",
              "financial_institutions_code_number": "063",
              "document_number": "48504807000198",
              "account_number": "1232046",
              "name": "Mateus Fonseca",
              "account_branch": "0931"
            }
          ],
          "remaining_balance": 0
        },
        "is_active": false,
        "rule": "split_equal"
}
```

### Body Params

| Campo | Tipo   | Descrição                                                                              | Caracteres                                                  |
|---|--------|----------------------------------------------------------------------------------------|-------------------------------------------------------------|
| `transfer_cronstring`* | string | Frequência de transferência do dinheiro em CRON, padrão que permite expressar recorrência. | **[CRON Guru](https://crontab.guru/#0_9_*_*_*)**            |
| `rule`* | enum   | Regra a ser seguida. (split_equal ou split_percentage).                                | **[Enumeradores](#enumeradores-rule)**                      
| `rule_configuration`*| object | Objeto de configuração da regra escolhida.                                             | **[Objeto rule_configuration](#objeto-rule_configuration)** |
| `account_key`*| uuid   | Key da conta origem das transferências.                                               | -                                                           |
| `automatic_transfer_key`*| uuid   | Key da configuração a ser alterada.                                                   | -                                                           |

### Obejto rule_configuration

| Campo          | Tipo | Descrição | Caracteres                                       |
|----------------|---| ---|--------------------------------------------------|
| `destinations` | object | Contas destino e outros dados. | **[Array of destination](#objeto-destinations)** |
| `remaining_balance` | float  | Valor de saldo que irá permanecer na conta.                                                | -                                                           |

### Objeto destinations

| Campo | Tipo   | Descrição | Caracteres |
|---|--------| ---|------------|
| `account_branch`* | string |  Agência da conta destino. | 3          |
| `account_number`* | string | Número da conta destino. | -          |
| `account_digit`* | string | Dígito da conta destino. | 3          |
| `document_number`* | string | Número do documento do dono da conta. | -          |
| `name`* | string | Nome da pessoa física ou razão social da pessoa jurídica. | 3          |
| `financial_institutions_code_number`* | string | Código COMPE da instituição financeira (https://www.bcb.gov.br/pom/spb/estatistica/port/ASTR003.pdf) | 3          |
| `financial_institutions_ispb`* | string | Número ISPB da instituição financeira. | 8          |

### Enumeradores rule 

| Enumerador         | Tradução                                  |
|--------------------|-------------------------------------------|
| **split_percentage**   | [divisão percentual](./regras_de_movimentacao.md) |
| **split_equal**        | [divisão igual](./regras_de_movimentacao.md) |
| **single_beneficiary** | [beneficiário único](./regras_de_movimentacao.md) |

## Response

STATUS 200

**Response Body**

```json
{
  "automatic_transfer_key": "967c40ea-ba35-4445-89b1-fa35bd0749a4",
  "is_active": false,
  "rule": "split_equal",
  "rule_configuration": {
    "destinations": [
      {
        "account_branch": "0931",
        "account_digit": "9",
        "account_number": "1232046",
        "document_number": "48504807000198",
        "financial_institutions_code_number": "063",
        "name": "Mateus Fonseca"
      }
    ],
    "remaining_balance": 0
  },
  "transfer_cronstring": "*/5 * * * *"
}

```

**REGRA BENEFICIÁRIO ÚNICO**

**Request Body**
    

```json
{
        "transfer_cronstring": "*/5 * * * *",
        "automatic_transfer_key": "967c40ea-ba35-4445-89b1-fa35bd0749a4",
        "rule_configuration": {
          "destination": 
            {
              "account_digit": "9",
              "financial_institutions_code_number": "063",
              "document_number": "48504807000198",
              "account_number": "1232046",
              "name": "Mateus Fonseca",
              "account_branch": "0931"
            },
          "remaining_balance": 0
        },
        "is_active": false,
        "rule": "single_beneficiary"
}
```

### Body Params

| Campo | Tipo   | Descrição                                                                                  | Caracteres                                                  |
|---|--------|--------------------------------------------------------------------------------------------|-------------------------------------------------------------|
| `transfer_cronstring`* | string | Frequência de transferência do dinheiro em CRON, padrão que permite expressar recorrência. | **[CRON Guru](https://crontab.guru/#0_9_*_*_*)**            |
| `rule`* | enum   | Regra a ser seguida. (split_equal ou split_percentage).                                    | **[Enumeradores](#enumeradores-rule)**                      
| `rule_configuration`*| object | Objeto de configuração da regra escolhida.                                                 | **[Objeto rule_configuration](#objeto-rule_configuration)** |
| `account_key`*| uuid   | Key da conta origem das transferências.                                                   | -                                                           |
| `automatic_transfer_key`*| uuid   | Key da configuração a ser alterada.                                                   | -                                                           |

### Obejto rule_configuration

| Campo | Tipo | Descrição | Caracteres |
|---|---| ---| ---|
| `destination` | object | Contas destino e outros dados. | **[destination](#objeto-destinations)**  |
| `remaining_balance` | float  | Valor de saldo que irá permanecer na conta.                                                | -                                                           |

### Objeto destination

| Campo | Tipo   | Descrição | Caracteres |
|---|--------| ---| ---|
| `account_branch`* | string |  Agência da conta destino. | 3 |
| `account_number`* | string | Número da conta destino. | 3 |
| `account_digit`* | string | Dígito da conta destino. | 3 |
| `document_number`* | string | Número do documento do dono da conta. | 3 |
| `name`* | string | Nome da pessoa física ou razão social da pessoa jurídica. | 3 |
| `financial_institutions_code_number`* | string | Código COMPE da instituição financeira (https://www.bcb.gov.br/pom/spb/estatistica/port/ASTR003.pdf) | 3 |
| `financial_institutions_ispb`* | string | Número ISPB da instituição financeira. | 8 |

### Enumeradores rule 

| Enumerador         | Tradução                                  |
|--------------------|-------------------------------------------|
| **split_percentage**   | [divisão percentual](./regras_de_movimentacao.md) |
| **split_equal**        | [divisão igual](./regras_de_movimentacao.md) |
| **single_beneficiary** | [beneficiário único](./regras_de_movimentacao.md) |

## Response

STATUS 200
**Response Body**

```json
{
  "automatic_transfer_key": "967c40ea-ba35-4445-89b1-fa35bd0749a4",
  "is_active": false,
  "rule": "single_beneficiary",
  "rule_configuration": {
    "destination": {
      "account_branch": "0931",
      "account_digit": "9",
      "account_number": "1232046",
      "document_number": "48504807000198",
      "financial_institutions_code_number": "063",
      "name": "Mateus Fonseca"
    },
    "remaining_balance": 0
  },
  "transfer_cronstring": "*/5 * * * *"
}

```

STATUS 400
**Response Body**

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}
```

---

# Criar regra de movimentação automática

URL: /documentation/regras_de_movimentacao/criar_regra_de_movimentacao

## Request

ENDPOINT /baas/automatic_transfer/transfer_configuration
MÉTODO POST
**REGRA DIVISÃO PERCENTUAL**

**Request Body**
    

```json
{
        "transfer_cronstring": "*/5 * * * *",
        "account_key": "6203037b-4405-4602-b7ce-ff99806d9cb0",
        "rule_configuration": {
          "destinations": [
            {
              "account_digit": "9",
              "financial_institutions_code_number": "063",
              "document_number": "48504807000198",
              "account_number": "1232046",
              "percentage": 100,
              "name": "Mateus Fonseca",
              "account_branch": "0931",
              "is_pix_transfer": false
            }
          ],
          "remaining_balance": 0
        },
        "is_active": true,
        "rule": "split_percentage"
}
```

### Body Params

| Campo                | Tipo   | Descrição                                                                                 | Caracteres                                                  |
|----------------------|--------|-------------------------------------------------------------------------------------------|-------------------------------------------------------------|
| `transfer_cronstring`* | string | Frequência de transferência do dinheiro em CRON, padrão que permite expressar recorrência. | **[CRON Guru](https://crontab.guru/#0_9_*_*_*)**            |
| `rule`*              | enum   | Regra a ser seguida. (split_equal ou split_percentage).                                    | **[Enumeradores](#enumeradores-rule)**                      
| `rule_configuration`* | object | Objeto de configuração da regra escolhida.                                                 | **[Objeto rule_configuration](#objeto-rule_configuration)** |
| `account_key`*       | uuid   | Key da conta origem das transferências.                                                    | -                                                           |

### Obejto rule_configuration

| Campo          | Tipo | Descrição | Caracteres                                       |
|----------------|---| ---|--------------------------------------------------|
| `destinations` | object | Contas destino e outros dados. | **[Array of destination](#objeto-destinations)** |
| `remaining_balance` | float  | Valor de saldo que irá permanecer na conta.                                               | -                                                           |

### Objeto destinations

| Campo | Tipo    | Descrição                                                                                            | Caracteres |
|---|---------|------------------------------------------------------------------------------------------------------|------------|
| `account_branch`* | string  | Agência da conta destino.                                                                            | 3          |
| `account_number`* | string  | Número da conta destino.                                                                             | 3          |
| `account_digit`* | string  | Dígito da conta destino.                                                                             | 3          |
| `document_number`* | string  | Número do documento do dono da conta.                                                                | 3          |
| `name`* | string  | Nome da pessoa física ou razão social da pessoa jurídica.                                            | 3          |
| `financial_institutions_code_number`* | string  | Código COMPE da instituição financeira (https://www.bcb.gov.br/pom/spb/estatistica/port/ASTR003.pdf) | 3          |
| `financial_institutions_ispb`* | string  | Número ISPB da instituição financeira.                                                               | 8          |
| `is_pix_transfer`* | boolean | Define se a transferência será va pix.                                                               | -          |
| `percentage`* | float   | Porcentagem a ser destinada a essa conta.                                                            | -          |

### Enumeradores rule 

| Enumerador         | Tradução                                  |
|--------------------|-------------------------------------------|
| **split_percentage**   | [divisão percentual](./regras_de_movimentacao.md) |
| **split_equal**        | [divisão igual](./regras_de_movimentacao.md) |
| **single_beneficiary** | [beneficiário único](./regras_de_movimentacao.md) |

## Response

STATUS 200

**Response Body**

```json

{
  "account_key": "6203037b-4405-4602-b7ce-ff99806d9cb0",
  "automatic_transfer_key": "9284ef1d-3689-4bb0-8543-89fffab790a1",
  "rule": "split_percentage",
  "rule_configuration": {
    "destinations": [
      {
        "account_branch": "0931",
        "account_digit": "9",
        "account_number": "1232046",
        "document_number": "48504807000198",
        "financial_institutions_code_number": "063",
        "is_pix_transfer": false,
        "name": "Mateus Fonseca",
        "percentage": 100
      }
    ],
    "remaining_balance": 0
  },
  "status": "active",
  "transfer_cronstring": "*/5 * * * *"
}

```

**REGRA DIVISÃO IGUALITÁRIA**

**Request Body**
    

```json
{
        "transfer_cronstring": "*/5 * * * *",
        "account_key": "6203037b-4405-4602-b7ce-ff99806d9cb0",
         "rule_configuration": {
          "destinations": [
            {
              "account_digit": "9",
              "financial_institutions_code_number": "063",
              "document_number": "48504807000198",
              "account_number": "1232046",
              "name": "Mateus Fonseca",
              "account_branch": "0931"
            }
          ],
          "remaining_balance": 0
        },
        "is_active": true,
        "rule": "split_equal"
}
```

### Body Params

| Campo | Tipo   | Descrição                                                                                  | Caracteres                                                  |
|---|--------|--------------------------------------------------------------------------------------------|-------------------------------------------------------------|
| `transfer_cronstring`* | string | Frequência de transferência do dinheiro em CRON, padrão que permite expressar recorrência. | **[CRON Guru](https://crontab.guru/#0_9_*_*_*)**            |
| `rule`* | enum   | Regra a ser seguida. (split_equal ou split_percentage).                                    | **[Enumeradores](#enumeradores-rule)**                      
| `rule_configuration`*| object | Objeto de configuração da regra escolhida.                                                 | **[Objeto rule_configuration](#objeto-rule_configuration)** |
| `account_key`*| uuid   | Key da conta origem das transferências.                                                   | -                                                           |

### Obejto rule_configuration

| Campo          | Tipo | Descrição | Caracteres                                       |
|----------------|---| ---|--------------------------------------------------|
| `destinations` | object | Contas destino e outros dados. | **[Array of destination](#objeto-destinations)** |
| `remaining_balance` | float  | Valor de saldo que irá permanecer na conta.                                                | -                                                           |

### Objeto destinations

| Campo | Tipo   | Descrição | Caracteres |
|---|--------| ---|------------|
| `account_branch` * | string |  Agência da conta destino. | 3          |
| `account_number` * | string | Número da conta destino. | -          |
| `account_digit` * | string | Dígito da conta destino. | 3          |
| `document_number` * | string | Número do documento do dono da conta. | -          |
| `name` * | string | Nome da pessoa física ou razão social da pessoa jurídica. | 3          |
| `financial_institutions_code_number` * | string | Código COMPE da instituição financeira (https://www.bcb.gov.br/pom/spb/estatistica/port/ASTR003.pdf) | 3          |
| `financial_institutions_ispb` * | string | Número ISPB da instituição financeira. | 8          |

### Enumeradores rule 

| Enumerador         | Tradução                                  |
|--------------------|-------------------------------------------|
| **split_percentage**   | [divisão percentual](./regras_de_movimentacao.md) |
| **split_equal**        | [divisão igual](./regras_de_movimentacao.md) |
| **single_beneficiary** | [beneficiário único](./regras_de_movimentacao.md) |

## Response

STATUS 200

**Response Body**

```json
{
  "account_key": "6203037b-4405-4602-b7ce-ff99806d9cb0",
  "automatic_transfer_key": "d39fba5b-dec7-4773-9bba-120e9f61ffa0",
  "rule": "split_equal",
  "rule_configuration": {
    "destinations": [
      {
        "account_branch": "0931",
        "account_digit": "9",
        "account_number": "1232046",
        "document_number": "48504807000198",
        "financial_institutions_code_number": "063",
        "name": "Mateus Fonseca"
      }
    ],
    "remaining_balance": 0
  },
  "status": "active",
  "transfer_cronstring": "*/5 * * * *"
}

```

**REGRA BENEFICIÁRIO ÚNICO**

**Request Body**
    

```json
{
        "transfer_cronstring": "*/5 * * * *",
        "rule_configuration": {
          "destination": 
            {
              "account_digit": "9",
              "financial_institutions_code_number": "063",
              "document_number": "48504807000198",
              "account_number": "1232046",
              "name": "Mateus Fonseca",
              "account_branch": "0931"
            },
          "remaining_balance": 0
        },
        "is_active": false,
        "rule": "single_beneficiary"
}
```

### Body Params

| Campo | Tipo   | Descrição                                                                                  | Caracteres                                                  |
|---|--------|--------------------------------------------------------------------------------------------|-------------------------------------------------------------|
| `transfer_cronstring`* | string | Frequência de transferência do dinheiro em CRON, padrão que permite expressar recorrência. | **[CRON Guru](https://crontab.guru/#0_9_*_*_*)**            |
| `rule`* | enum   | Regra a ser seguida. (split_equal ou split_percentage).                                    | **[Enumeradores](#enumeradores-rule)**                      
| `rule_configuration`*| object | Objeto de configuração da regra escolhida.                                                 | **[Objeto rule_configuration](#objeto-rule_configuration)** |
| `account_key`*| uuid   | Key da conta origem das transferências.                                                   | -                                                           |

### Obejto rule_configuration

| Campo | Tipo | Descrição | Caracteres |
|---|---| ---| ---|
| `destination` | object | Contas destino e outros dados. | **[destination](#objeto-destinations)**  |
| `remaining_balance` | float  | Valor de saldo que irá permanecer na conta.                                                | -                                                           |

### Objeto destination

| Campo | Tipo   | Descrição | Caracteres |
|---|--------| ---| ---|
| `account_branch`* | string |  Agência da conta destino. | 3 |
| `account_number`* | string | Número da conta destino. | 3 |
| `account_digit`* | string | Dígito da conta destino. | 3 |
| `document_number`* | string | Número do documento do dono da conta. | 3 |
| `name`* | string | Nome da pessoa física ou razão social da pessoa jurídica. | 3 |
| `financial_institutions_code_number`* | string | Código COMPE da instituição financeira (https://www.bcb.gov.br/pom/spb/estatistica/port/ASTR003.pdf) | 3 |
| `financial_institutions_ispb`* | string | Número ISPB da instituição financeira. | 8 |

### Enumeradores rule 

| Enumerador         | Tradução                                  |
|--------------------|-------------------------------------------|
| **split_percentage**   | [divisão percentual](./regras_de_movimentacao.md) |
| **split_equal**        | [divisão igual](./regras_de_movimentacao.md) |
| **single_beneficiary** | [beneficiário único](./regras_de_movimentacao.md) |

## Response

STATUS 200

**Response Body**

```json
{
  "is_active": false,
  "rule": "single_beneficiary",
  "rule_configuration": {
    "destination": {
      "account_branch": "0931",
      "account_digit": "9",
      "account_number": "1232046",
      "document_number": "48504807000198",
      "financial_institutions_code_number": "063",
      "name": "Mateus Fonseca"
    },
    "remaining_balance": 0
  },
  "transfer_cronstring": "*/5 * * * *"
}

```

STATUS 400
**Response Body**

```json
{
  "data": "{\"title\": \"Bad Request\", \"description\": \"Invalid request body.\", \"translation\": \"Corpo da requisição inválido.\", \"extra_fields\": {}, \"code\": \"LEG000069\"}"
}
```

---

# Regras de movimentação

URL: /documentation/regras_de_movimentacao/

No momento da abertura de uma conta QI Tech, disponibilizamos aos nossos clientes a possibilidade de criar regras de movimentação para a conta. Estas regras visam facilitar operações repetivias, por exemplo, a transferência de todo ou parte do saldo da conta ao final do dia. Aqui iremos exemplificar as diferenças entre as principais regras presentes em nosso sistema: "split_equal", "split_percentage". Caso o cliente tenha uma regra que não se enquadre nestas duas ele pode solicitar ao nosso time durante sua integração a criação de uma regra em nosso sistema que atenda suas necessidades.

### REGRA DIVISÃO PERCENTUAL (SPLIT_PERCENTAGE)

A regra de divisão percentual divide o saldo disponível em conta percentualmente para as contas destino, na periocidade escolhida em "transfer_cronstring". A soma dos percentuais de cada conta destino pode ser menor ou igual a 100. Caso a soma das porcentagens seja menor que 100, a porcentagem faltante ficará como saldo na conta. Assim, o cliente pode escolher transferir, por exemplo, 80% do dinheiro entre contas e deixar sempre 20% de saldo.

### REGRA DIVISÃO IGUALITÁRIA (SPLIT_EQUAL)

A regra de divisão igualitária divide igualmente o saldo disponível em conta para as contas destino, na periocidade escolhida em "transfer_cronstring", deixando apenas o valor definido em "remaining_balance" como saldo. Caso o campo "remaining_balance" não seja preenchido, 100% do saldo da conta é transferido. Caso o saldo disponível em conta seja igual ou menor do que "remaining_balance", a transação não ocorre.

### REGRA BENEFICIÁRIO ÚNICO (SINGLE_BENEFICIARY)

A regra de divisão para beneficiário único permite a transferência para um único beneficiário, na periocidade escolhida em "transfer_cronstring".

---

# Abrir lote de tombamento de boletos

URL: /documentation/troca_de_titularidade/abrir_lote

Esse endpoint criará um lote de tombamento de boletos. 
O lote é criado sem nenhum boleto, e os boletos precisarão ser inseridos através do endpoint de [inclusão de boletos](/incluir_boletos).

## Request

ENDPOINT /account/ ACCOUNT-KEY /requester_profile/ REQUESTER-PROFILE-KEY /bank_slip_ownership_exchange_batch/stream
MÉTODO POST

### Path parameters

| Campo         | Tipo   | Descrição                                                                                                              | Caracteres |
|---------------|--------|------------------------------------------------------------------------------------------------------------------------|------------|
| `ACCOUNT-KEY` | uuidv4 | Chave única de identificação da conta de origem, onde os boletos foram originalmente registrados.                      | 36         |
| `REQUESTER-PROFILE-KEY` | uuidv4 | Chave única de identificação da carteira de cobrança de origem, onde os boletos foram originalmente registrados. | 36         |

Request Body - Chave UUID da carteira de cobrança

```json
{
	"request_control_key": "66c9399a-1463-4e2b-acc0-7ee447f81bf0",
	"new_requester_profile_key": "e494067f-5bd4-4819-b64f-0687bd217f45",
	"new_pix_key": "2376da91-86ad-4a0b-a466-f0f5acf53e24"
}
```

Request Body - Código da carteira de cobrança

```json
{
	"request_control_key": "66c9399a-1463-4e2b-acc0-7ee447f81bf0",
	"new_requester_profile_code": "329-09-0001-1234567",
	"new_pix_key": "2376da91-86ad-4a0b-a466-f0f5acf53e24"
}
```

:::info Código da Carteira de Cobrança de boletos
O Código da Carteira de Cobrança é uma string que segue o seguinte padrão:

[ Número do Banco ] + [ Código da Carteira ] + [ Número da Agência da Conta ] + [ Número da Conta com 7 caracteres e sem dígito verificador ]

Por padrão, na QI Tech, o Número do Banco, o Código da Carteira e a Agência, sempre serão `329`, `09` e `0001`, respectivamente.

Sendo assim, o Código da Carteira de Cobrança da conta 5308318-3, será: `329-09-0001-5308318`.
:::

## Body Params
| Campo | Tipo | Descrição | Caracteres |
|---|------|-----------| --|
|`request_control_key`| uuidv4 | Chave única de identificação da requisição neste endpoint. Utilizada para evitar duplicidade na chamada via API. |36|
|`new_requester_profile_key`| uuidv4 | Chave única de identificação da carteira de cobrança de destino. É a carteira de cobrança para onde os boletos serão tombados. Você consegue opter essa chave através do [endpoint de consulta de carteiras de cobrança de uma conta](../boletos/carteira/listar_carteiras) |36|
|`new_requester_profile_code`| string | Código da carteira de cobrança de destino. É a carteira de cobrança para onde os boletos serão tombados. |19|
|`new_pix_key` | string | Chave pix da conta de destino do tombamento (para os casos de bolepix). | 255 |

## Response

STATUS 202

Response Body

```json
{
    "bank_slip_ownership_exchange_batch_key": "243c9369-ce8b-49df-969c-d891c2fc8c21",
    "request_control_key": "66c9399a-1463-4e2b-acc0-7ee447f81bf0",
    "bank_slip_ownership_exchange_batch_status": "open",
    "new_requester_profile_key": "e494067f-5bd4-4819-b64f-0687bd217f45",
    "new_requester_profile_code": "329-09-0001-8703524",
    "new_requester_profile_owner_name": "Fulano de Tal",
    "new_requester_profile_owner_document_number": "70896538000101",
    "new_requester_profile_account_number": "8703524",
    "new_requester_profile_account_digit": "1",
    "new_requester_profile_account_branch": "0001",
    "new_pix_key": "2376da91-86ad-4a0b-a466-f0f5acf53e24",
    "total_bank_slip_count": 0,
    "total_amount": 0
}
```

## Response Params
| Campo                                         | Tipo  | Descrição                                                                                                                                                                                                                                                                   | Caracteres                                                                                                          |
|-----------------------------------------------|-------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------|
| `bank_slip_ownership_exchange_batch_key`      | uuidv4 | Chave única de indentificação do lote de tombamento.                                                                                                                                                                                                                        | 36                                                                                                                  |
| `request_control_key`                         | uuidv4 | Chave única de identificação da requisição neste endpoint. Utilizada para evitar duplicidade na chamada via API.                                                                                                                                                            | 36                                                                                                                  |
| `bank_slip_ownership_exchange_batch_status`   | enum  | Status do lote de tombamento.                                                                                                                                                                                                                                               | [Enumeradores `bank_slip_ownership_exchange_batch_status`](#enumeradores-bank_slip_ownership_exchange_batch_status) |
| `new_requester_profile_key`                   | uuidv4 | Chave única de identificação da carteira de cobrança de destino. É a carteira de cobrança para onde os boletos serão tombados. Você consegue opter essa chave através do [endpoint de consulta de carteiras de cobrança de uma conta](../boletos/carteira/listar_carteiras) | 36                                                                                                                  |
| `new_requester_profile_code`                  | string | Código da carteira de cobrança de destino. É a carteira de cobrança para onde os boletos serão tombados.                                                                                                                                                                    | 19                                                                                                                  |
| `new_requester_profile_owner_name`            | string | Nome do titular da conta de destino e do beneficiário da carteira de cobrança de destino.                                                                                                                                                                                   | 255                                                                                                                 |
| `new_requester_profile_owner_document_number` | string | Número do documento (CPF/CNPJ) do titular da conta de destino e do beneficiário da carteira de cobrança de destino.                                                                                                                                                         | 255                                                                                                                 |
| `new_requester_profile_account_number`        | string | Número da conta de destino do tombamento.                                                                                                                                                                                                                                   | 7                                                                                                                   |
| `new_requester_profile_account_digit`         | string | Dígito verificador da conta de destino do tombamento.                                                                                                                                                                                                                       | 1                                                                                                                   |
| `new_requester_profile_account_branch`        | string | Número da agência da conta de destino do tombamento.                                                                                                                                                                                                                        | 4                                                                                                                   |
| `new_pix_key`                                 | string | Chave pix da conta de destino do tombamento (para os casos de bolepix).                                                                                                                                                                                                     | 255                                                                                                                 |
| `total_bank_slip_count`                       | float | Total de boletos no lote de tombamento.                                                                                                                                                                                                                                     | -                                                                                                                   |
| `total_amount`                                 | float | Somatória do valor de face dos boletos no lote de tombamento.                                                                                                                                                                                                               | -                                                                                                                   |                                                                                                                                                                                                               

### Enumeradores bank_slip_ownership_exchange_batch_status
| Enumerador | Descrição                                                                                              |
|------------|--------------------------------------------------------------------------------------------------------|
| open       | O lote foi criado e ainda está aberto para inclusão/exclusão de boletos.                               |
| sent     | A seleção dos boletos foi concluída e o lote de tombamento esta pendente de aprovação. A parte aprovadora necessita realizar a aprovação                  |
| processing | A seleção dos boletos foi concluída e o tombamento dos boletos contidos no lote esta sendo processado. |
| approved | Os boletos contidos no lote já foram tombados o destinatário |
| cancelled   | Lote de tombamento cancelado. |
| rejected | Lote de tomabamento rejeitado. |

---

# Aprovar lote de tombamento de boletos

URL: /documentation/troca_de_titularidade/aprovar_lote

Uma vez que foi feito o envio do lote de tombamento através do ```/send```, é necessário realizar a aprovação do tombamento.

A aprovação deve ser feita pela conta e requester de destino, que serão os novos responsáveis pelos boletos após o tombamento. Se o tombamento for entre contas do mesmo requester, basta fazer a alteração da account-key.

## Request

ENDPOINT /account/ ACCOUNT-KEY /requester_profile/ REQUESTER-PROFILE-KEY /bank_slip_ownership_exchange_batch/ BANK-SLIP-OWNERSHIP-EXCHANGE-BATCH-KEY /approve
MÉTODO PATCH

### Path parameters

| Campo                                    | Tipo   | Descrição                                                                                                        | Caracteres |
|------------------------------------------|--------|------------------------------------------------------------------------------------------------------------------|------------|
| `ACCOUNT-KEY`                            | uuidv4 | Chave única de identificação da conta de destino, onde os boletos serão enviados.                | 36         |
| `REQUESTER-PROFILE-KEY`                  | uuidv4 | Chave única de identificação da carteira de destino, onde os boletos serão transferidos. | 36         |
| `BANK-SLIP-OWNERSHIP-EXCHANGE-BATCH-KEY` | uuidv4 | Chave única de indentificação do lote de tombamento.                                                             | 36         |

Request Body

```json
{}
```

## Response

STATUS 200

Response Body

```json
{
    "bank_slip_ownership_exchange_batch_key": "243c9369-ce8b-49df-969c-d891c2fc8c21",
    "request_control_key": "66c9399a-1463-4e2b-acc0-7ee447f81bf0",
    "bank_slip_ownership_exchange_batch_status": "processing",
    "new_requester_profile_key": "e494067f-5bd4-4819-b64f-0687bd217f45",
    "new_requester_profile_code": "329-09-0001-8703524",
    "new_requester_profile_owner_name": "Fulano de Tal",
    "new_requester_profile_owner_document_number": "70896538000101",
    "new_requester_profile_account_number": "8703524",
    "new_requester_profile_account_digit": "1",
    "new_requester_profile_account_branch": "0001",
    "new_pix_key": "2376da91-86ad-4a0b-a466-f0f5acf53e24",
    "total_bank_slip_count": 3,
    "total_amount": 750.00
}
```

## Response Params
| Campo | Tipo | Descrição | Caracteres                                                                                                          |
|---|------|-----------|---------------------------------------------------------------------------------------------------------------------|
| `bank_slip_ownership_exchange_batch_key`      | uuidv4 | Chave única de indentificação do lote de tombamento.                                                                                                                                                                                                                        | 36                                                                                                                  |
| `request_control_key`                         | uuidv4 | Chave única de identificação da requisição neste endpoint. Utilizada para evitar duplicidade na chamada via API.                                                                                                                                                            | 36                                                                                                                  |
| `bank_slip_ownership_exchange_batch_status`   | enum  | Status do lote de tombamento.                                                                                                                                                                                                                                               | [Enumeradores `bank_slip_ownership_exchange_batch_status`](#enumeradores-bank_slip_ownership_exchange_batch_status) |
| `new_requester_profile_key`                   | uuidv4 | Chave única de identificação da carteira de cobrança de destino. É a carteira de cobrança para onde os boletos serão tombados. Você consegue opter essa chave através do [endpoint de consulta de carteiras de cobrança de uma conta](../boletos/carteira/listar_carteiras) | 36                                                                                                                  |
| `new_requester_profile_code`                  | string | Código da carteira de cobrança de destino. É a carteira de cobrança para onde os boletos serão tombados.                                                                                                                                                                    | 19                                                                                                                  |
| `new_requester_profile_owner_name`            | string | Nome do titular da conta de destino e do beneficiário da carteira de cobrança de destino.                                                                                                                                                                                   | 255                                                                                                                 |
| `new_requester_profile_owner_document_number` | string | Número do documento (CPF/CNPJ) do titular da conta de destino e do beneficiário da carteira de cobrança de destino.                                                                                                                                                         | 255                                                                                                                 |
| `new_requester_profile_account_number`        | string | Número da conta de destino do tombamento.                                                                                                                                                                                                                                   | 7                                                                                                                   |
| `new_requester_profile_account_digit`         | string | Dígito verificador da conta de destino do tombamento.                                                                                                                                                                                                                       | 1                                                                                                                   |
| `new_requester_profile_account_branch`        | string | Número da agência da conta de destino do tombamento.                                                                                                                                                                                                                        | 4                                                                                                                   |
| `new_pix_key`                                 | string | Chave pix da conta de destino do tombamento (para os casos de bolepix).                                                                                                                                                                                                     | 255                                                                                                                 |
| `total_bank_slip_count`                       | float | Total de boletos no lote de tombamento.                                                                                                                                                                                                                                     | -                                                                                                                   |
| `total_amount`                                | float | Somatória do valor de face dos boletos no lote de tombamento. | -                                                                                                                   |                                                                                                                                                                                                               

### Enumeradores bank_slip_ownership_exchange_batch_status
| Enumerador | Descrição                                                                                              |
|------------|--------------------------------------------------------------------------------------------------------|
| open       | O lote foi criado e ainda está aberto para inclusão/exclusão de boletos.                               |
| closed     | O lote se encontra fechado e o tombamento dos boletos contidos no lote foi concluído.                  |
| processing | A seleção dos boletos foi concluída e o tombamento dos boletos contidos no lote esta sendo processado. |
| pending_approval | A seleção dos boletos foi concluída e o lote de tombamento esta pendente de aprovação. A parte aprovadora, pode remover boletos do lote. |
| canceled   | Lote de tombamento cancelado. |
| rejected | Lote de tomabamento rejeitado. |

---

# Cancelar lote de tombamento de boletos

URL: /documentation/troca_de_titularidade/cancelar_lote

## Request

ENDPOINT /bank_slip/account/ ACCOUNT-KEY /requester_profile/ REQUESTER-PROFILE-KEY /bank_slip_ownership_exchange_batch/ BANK-SLIP-OWNERSHIP-EXCHANGE-BATCH-KEY /cancel
MÉTODO PATCH

### Path parameters

| Campo                                    | Tipo   | Descrição                                                                                                              | Caracteres |
|------------------------------------------|--------|------------------------------------------------------------------------------------------------------------------------|------------|
| `ACCOUNT-KEY`                            | uuidv4 | Chave única de identificação da conta de origem, onde os boletos foram originalmente registrados.                      | 36         |
| `REQUESTER-PROFILE-KEY`                  | uuidv4 | Chave única de identificação da carteira de cobrança de origem, onde os boletos foram originalmente registrados. | 36         |
| `BANK-SLIP-OWNERSHIP-EXCHANGE-BATCH-KEY` | uuidv4 |Chave única de indentificação do lote de tombamento.| 36         |

Request Body

```json
{}
```

## Response

STATUS 200

Response Body

```json
{
    "bank_slip_ownership_exchange_batch_key": "243c9369-ce8b-49df-969c-d891c2fc8c21",
    "request_control_key": "66c9399a-1463-4e2b-acc0-7ee447f81bf0",
    "bank_slip_ownership_exchange_batch_status": "canceled",
    "new_requester_profile_key": "e494067f-5bd4-4819-b64f-0687bd217f45",
    "new_requester_profile_code": "329-09-0001-8703524",
    "new_requester_profile_owner_name": "Fulano de Tal",
    "new_requester_profile_owner_document_number": "70896538000101",
    "new_requester_profile_account_number": "8703524",
    "new_requester_profile_account_digit": "1",
    "new_requester_profile_account_branch": "0001",
    "new_pix_key": "2376da91-86ad-4a0b-a466-f0f5acf53e24",
    "total_bank_slip_count": 3,
    "total_amount": 750.00
}
```

## Response Params
| Campo | Tipo | Descrição | Caracteres                                                                                                          |
|---|------|-----------|---------------------------------------------------------------------------------------------------------------------|
| `bank_slip_ownership_exchange_batch_key`      | uuidv4 | Chave única de indentificação do lote de tombamento.                                                                                                                                                                                                                        | 36                                                                                                                  |
| `request_control_key`                         | uuidv4 | Chave única de identificação da requisição neste endpoint. Utilizada para evitar duplicidade na chamada via API.                                                                                                                                                            | 36                                                                                                                  |
| `bank_slip_ownership_exchange_batch_status`   | enum  | Status do lote de tombamento.                                                                                                                                                                                                                                               | [Enumeradores `bank_slip_ownership_exchange_batch_status`](#enumeradores-bank_slip_ownership_exchange_batch_status) |
| `new_requester_profile_key`                   | uuidv4 | Chave única de identificação da carteira de cobrança de destino. É a carteira de cobrança para onde os boletos serão tombados. Você consegue opter essa chave através do [endpoint de consulta de carteiras de cobrança de uma conta](../boletos/carteira/listar_carteiras) | 36                                                                                                                  |
| `new_requester_profile_code`                  | string | Código da carteira de cobrança de destino. É a carteira de cobrança para onde os boletos serão tombados.                                                                                                                                                                    | 19                                                                                                                  |
| `new_requester_profile_owner_name`            | string | Nome do titular da conta de destino e do beneficiário da carteira de cobrança de destino.                                                                                                                                                                                   | 255                                                                                                                 |
| `new_requester_profile_owner_document_number` | string | Número do documento (CPF/CNPJ) do titular da conta de destino e do beneficiário da carteira de cobrança de destino.                                                                                                                                                         | 255                                                                                                                 |
| `new_requester_profile_account_number`        | string | Número da conta de destino do tombamento.                                                                                                                                                                                                                                   | 7                                                                                                                   |
| `new_requester_profile_account_digit`         | string | Dígito verificador da conta de destino do tombamento.                                                                                                                                                                                                                       | 1                                                                                                                   |
| `new_requester_profile_account_branch`        | string | Número da agência da conta de destino do tombamento.                                                                                                                                                                                                                        | 4                                                                                                                   |
| `new_pix_key`                                 | string | Chave pix da conta de destino do tombamento (para os casos de bolepix).                                                                                                                                                                                                     | 255                                                                                                                 |
| `total_bank_slip_count`                       | float | Total de boletos no lote de tombamento.                                                                                                                                                                                                                                     | -                                                                                                                   |
| `total_amount`                                | float | Somatória do valor de face dos boletos no lote de tombamento. | -                                                                                                                   |                                                                                                                                                                                                               

### Enumeradores bank_slip_ownership_exchange_batch_status
| Enumerador | Descrição                                                                                              |
|------------|--------------------------------------------------------------------------------------------------------|
| open       | O lote foi criado e ainda está aberto para inclusão/exclusão de boletos.                               |
| closed     | O lote se encontra fechado e o tombamento dos boletos contidos no lote foi concluído.                  |
| processing | A seleção dos boletos foi concluída e o tombamento dos boletos contidos no lote esta sendo processado. |
| pending_approval | A seleção dos boletos foi concluída e o lote de tombamento esta pendente de aprovação. A parte aprovadora, pode remover boletos do lote. |
| canceled   | Lote de tombamento cancelado. |
| rejected | Lote de tomabamento rejeitado. |

---

# Incluir boletos em um lote de tombamento

URL: /documentation/troca_de_titularidade/incluir_boletos

Esse endpoint é utiliza para inclusão de boletos em um lote de tombamento de boletos.

## Request

ENDPOINT /account/ ACCOUNT-KEY /requester_profile/ REQUESTER-PROFILE-KEY /bank_slip_ownership_exchange_batch/ BANK-SLIP-OWNERSHIP-EXCHANGE-BATCH-KEY /append
MÉTODO PATCH

### Path parameters

| Campo                                    | Tipo   | Descrição                                                                                                              | Caracteres |
|------------------------------------------|--------|------------------------------------------------------------------------------------------------------------------------|------------|
| `ACCOUNT-KEY`                            | uuidv4 | Chave única de identificação da conta de origem, onde os boletos foram originalmente registrados.                      | 36         |
| `REQUESTER-PROFILE-KEY`                  | uuidv4 | Chave única de identificação da carteira de cobrança de origem, onde os boletos foram originalmente registrados. | 36         |
| `BANK-SLIP-OWNERSHIP-EXCHANGE-BATCH-KEY` | uuidv4 |Chave única de indentificação do lote de tombamento.| 36         |

Request Body

```json
{
	"bank_slips": [
		"b21c5b5a-a71f-4672-9254-022401cd15f6",
		"8197e3d0-1500-439f-9f9d-d243115542fa",
		"8293b817-bed9-418a-8c1e-ec8ef5a31468"
	]
}
```

:::caution Atenção!
A lista de boletos informada no objeto `bank_slips` no payload, possui uma limitação de 10.000 boletos por requisição. 
:::

## Response

STATUS 200

Response Body

```json
{
    "bank_slip_ownership_exchange_batch_key": "243c9369-ce8b-49df-969c-d891c2fc8c21",
    "request_control_key": "66c9399a-1463-4e2b-acc0-7ee447f81bf0",
    "bank_slip_ownership_exchange_batch_status": "open",
    "new_requester_profile_key": "e494067f-5bd4-4819-b64f-0687bd217f45",
    "new_requester_profile_code": "329-09-0001-8703524",
    "new_requester_profile_owner_name": "Fulano de Tal",
    "new_requester_profile_owner_document_number": "70896538000101",
    "new_requester_profile_account_number": "8703524",
    "new_requester_profile_account_digit": "1",
    "new_requester_profile_account_branch": "0001",
    "new_pix_key": "2376da91-86ad-4a0b-a466-f0f5acf53e24",
    "total_bank_slip_count": 3,
    "total_amount": 750.00
}
```

## Response Params
| Campo | Tipo | Descrição | Caracteres                                                                                                          |
|---|------|-----------|---------------------------------------------------------------------------------------------------------------------|
| `bank_slip_ownership_exchange_batch_key`      | uuidv4 | Chave única de indentificação do lote de tombamento.                                                                                                                                                                                                                        | 36                                                                                                                  |
| `request_control_key`                         | uuidv4 | Chave única de identificação da requisição neste endpoint. Utilizada para evitar duplicidade na chamada via API.                                                                                                                                                            | 36                                                                                                                  |
| `bank_slip_ownership_exchange_batch_status`   | enum  | Status do lote de tombamento.                                                                                                                                                                                                                                               | [Enumeradores `bank_slip_ownership_exchange_batch_status`](#enumeradores-bank_slip_ownership_exchange_batch_status) |
| `new_requester_profile_key`                   | uuidv4 | Chave única de identificação da carteira de cobrança de destino. É a carteira de cobrança para onde os boletos serão tombados. Você consegue opter essa chave através do [endpoint de consulta de carteiras de cobrança de uma conta](../boletos/carteira/listar_carteiras) | 36                                                                                                                  |
| `new_requester_profile_code`                  | string | Código da carteira de cobrança de destino. É a carteira de cobrança para onde os boletos serão tombados.                                                                                                                                                                    | 19                                                                                                                  |
| `new_requester_profile_owner_name`            | string | Nome do titular da conta de destino e do beneficiário da carteira de cobrança de destino.                                                                                                                                                                                   | 255                                                                                                                 |
| `new_requester_profile_owner_document_number` | string | Número do documento (CPF/CNPJ) do titular da conta de destino e do beneficiário da carteira de cobrança de destino.                                                                                                                                                         | 255                                                                                                                 |
| `new_requester_profile_account_number`        | string | Número da conta de destino do tombamento.                                                                                                                                                                                                                                   | 7                                                                                                                   |
| `new_requester_profile_account_digit`         | string | Dígito verificador da conta de destino do tombamento.                                                                                                                                                                                                                       | 1                                                                                                                   |
| `new_requester_profile_account_branch`        | string | Número da agência da conta de destino do tombamento.                                                                                                                                                                                                                        | 4                                                                                                                   |
| `new_pix_key`                                 | string | Chave pix da conta de destino do tombamento (para os casos de bolepix).                                                                                                                                                                                                     | 255                                                                                                                 |
| `total_bank_slip_count`                       | float | Total de boletos no lote de tombamento.                                                                                                                                                                                                                                     | -                                                                                                                   |
| `total_amount`                                | float | Somatória do valor de face dos boletos no lote de tombamento. | -                                                                                                                   |                                                                                                                                                                                                               

### Enumeradores bank_slip_ownership_exchange_batch_status
| Enumerador | Descrição                                                                                              |
|------------|--------------------------------------------------------------------------------------------------------|
| open       | O lote foi criado e ainda está aberto para inclusão/exclusão de boletos.                               |
| sent     | A seleção dos boletos foi concluída e o lote de tombamento esta pendente de aprovação. A parte aprovadora necessita realizar a aprovação                  |
| processing | A seleção dos boletos foi concluída e o tombamento dos boletos contidos no lote esta sendo processado. |
| approved | Os boletos contidos no lote já foram tombados o destinatário |
| cancelled   | Lote de tombamento cancelado. |
| rejected | Lote de tomabamento rejeitado. |

---

# Introdução

URL: /documentation/troca_de_titularidade/introducao

A troca de titularidade de boletos **(tombamento)** consiste no processo de alteração da carteira de cobrança e da conta de liquidação associadas aos boletos já registrados.

Em uma troca de titularidade, sempre existirão **uma conta e uma carteira de cobrança de origem e uma conta e uma carteira de cobrança de destino.**

- A **conta e carteira de origem** são aquelas em que os boletos foram originalmente registrados.

- A **conta e carteira de destino** são aquelas para as quais os boletos serão transferidos (tombados).

**O que é alterado?**
- Carteira de cobrança
- Conta de liquidação

**O que NÃO é alterado?**
- Dados do beneficiário da cobrança
- Linha digitável para pagamento
- QR Code Pix para pagamento (nos casos de BolePix)

## Casos de Uso

### Composição de garantia
Os boletos de cobrança de uma carteira podem ser utilizados na composição de garantia de uma operação de crédito.
Nesse cenário, o titular da conta de destino tomba os boletos da sua carteira de cobrança simples para a carteira de cobrança vinculada à conta de garantia da operação.

### Cessão de direito creditório
Nos casos em que o boleto de cobrança esteja vinculado a um direito creditório antecipado, é possível — após a conclusão da antecipação — tombar os boletos para a carteira do novo credor do direito antecipado.

:::caution Atenção!
A API de troca de titularidade de boletos **não formaliza** a cessão fiduciária ou a antecipação do direito creditório.
Ela apenas reflete o que deve acontecer com o fluxo financeiro do ativo vinculado ao boleto de cobrança tombado.
:::

## Fluxo do Processo
O tombamento de boletos é o processo de transferência de titularidade dos boletos registrados de uma carteira para outra.
Esse fluxo é composto por quatro etapas principais, que devem ser executadas em sequência por meio de chamadas à API.

A seguir, descrevemos o funcionamento de cada uma delas.

**1. Abertura de lote**

O primeiro passo consiste na criação de um lote de tombamento, que agrupará todos os boletos que serão transferidos.
Assim que o lote é criado, ele é retornado com o status inicial `opened`.
Nessa etapa, devem ser informadas as chaves da conta de origem, da carteira de destino e a nova chave Pix associada.

**2. Inclusão de boletos no lote**

Com o lote aberto, é possível adicionar os boletos que serão incluídos na troca de titularidade.
Durante essa etapa, o status do lote permanece `opened`, indicando que ele ainda está em preparação e pode receber novos boletos.

**3. Envio dos boletos**

Após a inclusão de todos os boletos desejados, é necessário enviar o lote para processamento.
No momento em que o envio é realizado, o status do lote é atualizado para `sent`, e um webhook é disparado para informar a alteração de status.
Esse envio marca o início do fluxo operacional do tombamento.

**4. Aprovação do tombamento**

Por fim, a aprovação do lote deve ser realizada pela conta de destino, confirmando a transferência de titularidade dos boletos.
Após a aprovação, o status do lote muda para `processing`, indicando que o tombamento está em andamento.
Quando o processo é concluído com sucesso, o sistema envia um webhook final com o status `approved`, confirmando que a troca de titularidade foi finalizada.

Compartilhamos a seguir o link que apresenta um organograma do fluxo completo, incluindo os endpoints associados e as respectivas mudanças de status em cada etapa do processo:

---

# Listar boletos de um lote de tombamento

URL: /documentation/troca_de_titularidade/listar_boletos_lote

Utilize esse endpoint para listar todos os boletos incluídos no lote de tombamento consultado.

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /bank_slip_ownership_exchange_batch/ BANK_SLIP_OWNERSHIP_EXCHANGE_BATCH_KEY /bank_slips
MÉTODO GET

### Path parameters

| Campo         | Tipo   | Descrição                                                                                                              | Caracteres |
|---------------|--------|------------------------------------------------------------------------------------------------------------------------|------------|
| `account_key` | uuidv4 | Chave única de identificação da conta de origem, onde os boletos foram originalmente registrados.                      | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira de cobrança de origem, onde os boletos foram originalmente registrados. | 36         |
| `bank_slip_ownership_exchange_batch_key` | uuidv4 |Chave única de indentificação do lote de tombamento.| 36         |

### Query parameters

| Campo                | Descrição                                  |
|----------------------|--------------------------------------------|
| `page_number`        | Página atual que está sendo consultada     |
| `page_size`          | Quantidade de resultados por página        |

## Response

STATUS 200

Response Body

```json
{
    "data": [
        {
            "bank_slip_key": "b58ce415-5428-45c4-8e33-b2df0d3ab6e8",
            "request_control_key": "53529224-330d-44b5-9f4d-59d55bc3cb8c",
            "our_number": 24384760943,
            "document_number": "DOC4561237",
            "amount": "8000.00",
            "rebate_amount": "200.00",
            "expiration": "2024-07-13",
            "barcode": "32994978900005000000001594438621284040114400",
            "digitable_line": "32990001529443862128940401144007497890000500000",
            "bank_teller_instructions": "Confirm payment",
            "protest_data": {
                "days_to_protest": 7
            },
            "bankruptcy_protest_data": {
                "days_to_bankruptcy_protest": 14
            },
            "max_payment_days": 45,
            "fine_data": {
                "fine_type": "absolute",
                "fine_amount": 100,
                "days_to_fine": 10
            },
            "interest_data": {
                "interest_type": "workdays_daily_amount",
                "interest_amount": 5,
                "days_to_interest": 10
            },
            "discounts_data": [
                {
                    "discount_type": "anticipation_workdays_daily_percentage",
                    "discount_number": 1,
                    "discount_limit_date": "2024-07-13",
                    "discount_percentage": 10
                }
            ],
            "payer_data": {
                "name": "Country Tech",
                "address": {
                    "city": "Innovation City",
                    "state": "RS",
                    "number": "202",
                    "street": "101 High St.",
                    "complement": "Building A",
                    "postal_code": "57099999",
                    "neighborhood": "Tech Park"
                },
                "person_type": "legal",
                "document_number": "12345678000195"
            },
            "guarantor_data": {
                "name": "Jamie Doe",
                "address": {
                    "city": "Peaceful Town",
                    "state": "MG",
                    "number": "303",
                    "street": "202 Elm St.",
                    "complement": "House 1",
                    "postal_code": "57099999",
                    "neighborhood": "Quiet Neighborhood"
                },
                "person_type": "natural",
                "document_number": "98765432100"
            },
            "bank_slip_status": "accepted"
        }
    ],
    "pagination": {
        "current_page": 1,
        "rows_per_page": 100
    }
}
```

## Response Params

[Objeto de Listagem de boletos](../boletos/consulta/listar_boletos#response-body-params)

---

# Listar lotes de tombamento de boletos - destino

URL: /documentation/troca_de_titularidade/listar_lotes_destino

Utilize este endpoint para listar os lotes de tombamento de boletos a partir da conta de destino — ou seja, a conta para a qual os boletos foram tombados.

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /bank_slip_ownership_exchange_batches/incoming
MÉTODO GET

### Path parameters

| Campo         | Tipo   | Descrição                                                                                             | Caracteres |
|---------------|--------|-------------------------------------------------------------------------------------------------------|------------|
| `account_key` | uuidv4 | Chave única de identificação da conta de destino, para onde os boletos serão tombados.                | 36         |
| `requester_profile_key` | uuidv4 | Chave única de identificação da carteira de cobrança de destino, para onde os boletos serão tombados. | 36         |

### Query parameters

| Campo                | Descrição                                  |
|----------------------|--------------------------------------------|
| `page_number`        | Página atual que está sendo consultada     |
| `page_size`          | Quantidade de resultados por página        |

## Response

STATUS 200

Response Body

```json
{
	"data": [
        {
            "bank_slip_exchange_batch_key": "186e73f1-456f-4265-8cb0-b32722041580",
            "request_control_key": "fa7fa38c-0356-4345-98ef-21a089d9a39a",
            "bank_slip_ownership_exchange_batch_status": "processing",
            "old_requester_profile_key": "01a30518-0b2e-4dd1-a105-8f8bf31868a2",
            "old_requester_profile_code": "329-09-0001-5963550",
            "old_requester_profile_owner_document_number": "02602536000102",
            "old_requester_profile_owner_name": "Coca Cola",
            "old_requester_profile_account_number": "5963550",
            "old_requester_profile_account_digit": "7",
            "old_requester_profile_account_branch": "0001",
            "old_pix_key": "2376da91-86ad-4a0b-a466-f0f5acf53e24",
            "total_bank_slip_count": 200,
            "total_amount": 38145.58
        },
        {
            "bank_slip_exchange_batch_key": "8a5bbded-72ff-4642-8830-f2a5a73eb62c",
            "request_control_key": "d3725802-7e56-4196-8182-2747ea18e96a",
            "bank_slip_ownership_exchange_batch_status": "open",
            "old_requester_profile_key": "316052e8-a017-4fb9-9939-9ce0390fa053",
            "old_requester_profile_code": "329-09-0001-4743630",
            "old_requester_profile_owner_document_number": "40500359000142",
            "old_requester_profile_owner_name": "QI SCD",
            "old_requester_profile_account_number": "4743630",
            "old_requester_profile_account_digit": "1",
            "old_requester_profile_account_branch": "0001",
            "old_pix_key": "2376da91-86ad-4a0b-a466-f0f5acf53e24",
            "total_bank_slip_count": 450,
            "total_amount": 548682.19
        },
        {
            "bank_slip_exchange_batch_key": "6f749806-8768-44ab-b7de-1f0d94d0a61a",
            "request_control_key": "1c1551f2-c6e7-42d5-b78d-1f7662128a33",
            "bank_slip_ownership_exchange_batch_status": "closed",
            "old_requester_profile_key": "8bfdd50f-97fd-4f29-bc53-b542a914f2d6",
            "old_requester_profile_code": "329-09-0001-7390371",
            "old_requester_profile_owner_document_number": "56000040000198",
            "old_requester_profile_name": "Meta",
            "old_requester_profile_account_number": "7390371",
            "old_requester_profile_account_digit": "7",
            "old_requester_profile_account_branch": "0001",
            "old_pix_key": "2376da91-86ad-4a0b-a466-f0f5acf53e24",
            "total_bank_slip_count": 40,
            "total_amount": 67245.96
        }
	],
	"pagination": {
		"current_page": 1,
		"rows_per_page": 100
	}
}
```

## Response Params
| Campo                                         | Tipo  | Descrição                                                                                                                                                                                                                                          | Caracteres                                                                                                          |
|-----------------------------------------------|-------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------|
| `bank_slip_ownership_exchange_batch_key`      | uuidv4 | Chave única de indentificação do lote de tombamento.                                                                                                                                                                                               | 36                                                                                                                  |
| `request_control_key`                         | uuidv4 | Chave única de identificação da requisição neste endpoint. Utilizada para evitar duplicidade na chamada via API.                                                                                                                                   | 36                                                                                                                  |
| `bank_slip_ownership_exchange_batch_status`   | enum  | Status do lote de tombamento.                                                                                                                                                                                                                      | [Enumeradores `bank_slip_ownership_exchange_batch_status`](#enumeradores-bank_slip_ownership_exchange_batch_status) |
| `old_requester_profile_key`                   | uuidv4 | Chave única de identificação da carteira de cobrança de destino, para onde os boletos serão tombados. Você consegue opter essa chave através do [endpoint de consulta de carteiras de cobrança de uma conta](../boletos/carteira/listar_carteiras) | 36                                                                                                                  |
| `old_requester_profile_code`                  | string | Código da carteira de cobrança de destino, para onde os boletos serão tombados.                                                                                                                                                                    | 19                                                                                                                  |
| `old_requester_profile_owner_name`            | string | Nome do titular da conta de destino e do beneficiário da carteira de cobrança de destino.                                                                                                                                                          | 255                                                                                                                 |
| `old_requester_profile_owner_document_number` | string | Número do documento (CPF/CNPJ) do titular da conta de destino e do beneficiário da carteira de cobrança de destino.                                                                                                                                | 255                                                                                                                 |
| `old_requester_profile_account_number`        | string | Número da conta de destino do tombamento.                                                                                                                                                                                                          | 7                                                                                                                   |
| `old_requester_profile_account_digit`         | string | Dígito verificador da conta de destino do tombamento.                                                                                                                                                                                              | 1                                                                                                                   |
| `old_requester_profile_account_branch`        | string | Número da agência da conta de destino do tombamento.                                                                                                                                                                                               | 4                                                                                                                   |
| `old_pix_key`                                 | string | Chave pix da conta de destino do tombamento (para os casos de bolepix).                                                                                                                                                                            | 255                                                                                                                 |
| `total_bank_slip_count`                       | float | Total de boletos no lote de tombamento.                                                                                                                                                                                                            | -                                                                                                                   |
| `total_amount`                                 | float | Somatória do valor de face dos boletos no lote de tombamento.                                                                                                                                                                                      | -                                                                                                                   |                                                                                                                                                                                                               

### Enumeradores bank_slip_ownership_exchange_batch_status
| Enumerador | Descrição                                                                                              |
|------------|--------------------------------------------------------------------------------------------------------|
| open       | O lote foi criado e ainda está aberto para inclusão/exclusão de boletos.                               |
| sent     | A seleção dos boletos foi concluída e o lote de tombamento está pendente de aprovação. A parte aprovadora necessita realizar a aprovação.                  |
| processing | A seleção dos boletos foi concluída e o tombamento dos boletos contidos no lote está sendo processado. |
| approved | Os boletos contidos no lote já foram tombados o destinatário. |
| cancelled   | Lote de tombamento cancelado. |
| rejected | Lote de tombamento rejeitado. |

---

# Listar lotes de tombamento de boletos - origem

URL: /documentation/troca_de_titularidade/listar_lotes_origem

Utilize este endpoint para listar os lotes de tombamento de boletos a partir da conta de origem do tombamento, ou seja, a conta na qual os boletos foram originalmente registrados.

## Request

ENDPOINT /account/ ACCOUNT_KEY /requester_profile/ REQUESTER_PROFILE_KEY /bank_slip_ownership_exchange_batches/outgoing
MÉTODO GET

### Path parameters

| Campo         | Tipo   | Descrição                                                                                                              | Caracteres |
|---------------|--------|------------------------------------------------------------------------------------------------------------------------|------------|
| `ACCOUNT-KEY` | uuidv4 | Chave única de identificação da conta de origem, onde os boletos foram originalmente registrados.                      | 36         |
| `REQUESTER-PROFILE-KEY` | uuidv4 | Chave única de identificação da carteira de cobrança de origem, onde os boletos foram originalmente registrados. | 36         |

### Query parameters

| Campo                | Descrição                                  |
|----------------------|--------------------------------------------|
| `page_number`        | Página atual que está sendo consultada     |
| `page_size`          | Quantidade de resultados por página        |

## Response

STATUS 200

Response Body

```json
{
	"data": [
        {
            "bank_slip_exchange_batch_key": "186e73f1-456f-4265-8cb0-b32722041580",
            "request_control_key": "fa7fa38c-0356-4345-98ef-21a089d9a39a",
            "bank_slip_ownership_exchange_batch_status": "processing",
            "new_requester_profile_key": "01a30518-0b2e-4dd1-a105-8f8bf31868a2",
            "new_requester_profile_code": "329-09-0001-5963550",
            "new_requester_profile_owner_document_number": "02602536000102",
            "new_requester_profile_owner_name": "Coca Cola",
            "new_requester_profile_account_number": "5963550",
            "new_requester_profile_account_digit": "7",
            "new_requester_profile_account_branch": "0001",
            "new_pix_key": "2376da91-86ad-4a0b-a466-f0f5acf53e24",
            "total_bank_slip_count": 200,
            "total_amount": 38145.58
        },
        {
            "bank_slip_exchange_batch_key": "8a5bbded-72ff-4642-8830-f2a5a73eb62c",
            "request_control_key": "d3725802-7e56-4196-8182-2747ea18e96a",
            "bank_slip_ownership_exchange_batch_status": "open",
            "new_requester_profile_key": "316052e8-a017-4fb9-9939-9ce0390fa053",
            "new_requester_profile_code": "329-09-0001-4743630",
            "new_requester_profile_owner_document_number": "40500359000142",
            "new_requester_profile_owner_name": "QI SCD",
            "new_requester_profile_account_number": "4743630",
            "new_requester_profile_account_digit": "1",
            "new_requester_profile_account_branch": "0001",
            "new_pix_key": "2376da91-86ad-4a0b-a466-f0f5acf53e24",
            "total_bank_slip_count": 450,
            "total_amount": 548682.19
        },
        {
            "bank_slip_exchange_batch_key": "6f749806-8768-44ab-b7de-1f0d94d0a61a",
            "request_control_key": "1c1551f2-c6e7-42d5-b78d-1f7662128a33",
            "bank_slip_ownership_exchange_batch_status": "closed",
            "new_requester_profile_key": "8bfdd50f-97fd-4f29-bc53-b542a914f2d6",
            "new_requester_profile_code": "329-09-0001-7390371",
            "new_requester_profile_owner_document_number": "56000040000198",
            "new_requester_profile_name": "Meta",
            "new_requester_profile_account_number": "7390371",
            "new_requester_profile_account_digit": "7",
            "new_requester_profile_account_branch": "0001",
            "new_pix_key": "2376da91-86ad-4a0b-a466-f0f5acf53e24",
            "total_bank_slip_count": 40,
            "total_amount": 67245.96
        }
	],
	"pagination": {
		"current_page": 1,
		"rows_per_page": 100
	}
}
```

## Response Params
| Campo                                         | Tipo  | Descrição                                                                                                                                                                                                                                                                   | Caracteres                                                                                                          |
|-----------------------------------------------|-------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------|
| `bank_slip_ownership_exchange_batch_key`      | uuidv4 | Chave única de indentificação do lote de tombamento.                                                                                                                                                                                                                        | 36                                                                                                                  |
| `request_control_key`                         | uuidv4 | Chave única de identificação da requisição neste endpoint. Utilizada para evitar duplicidade na chamada via API.                                                                                                                                                            | 36                                                                                                                  |
| `bank_slip_ownership_exchange_batch_status`   | enum  | Status do lote de tombamento.                                                                                                                                                                                                                                               | [Enumeradores `bank_slip_ownership_exchange_batch_status`](#enumeradores-bank_slip_ownership_exchange_batch_status) |
| `new_requester_profile_key`                   | uuidv4 | Chave única de identificação da carteira de cobrança de destino. É a carteira de cobrança para onde os boletos serão tombados. Você consegue opter essa chave através do [endpoint de consulta de carteiras de cobrança de uma conta](../boletos/carteira/listar_carteiras) | 36                                                                                                                  |
| `new_requester_profile_code`                  | string | Código da carteira de cobrança de destino. É a carteira de cobrança para onde os boletos serão tombados.                                                                                                                                                                    | 19                                                                                                                  |
| `new_requester_profile_owner_name`            | string | Nome do titular da conta de destino e do beneficiário da carteira de cobrança de destino.                                                                                                                                                                                   | 255                                                                                                                 |
| `new_requester_profile_owner_document_number` | string | Número do documento (CPF/CNPJ) do titular da conta de destino e do beneficiário da carteira de cobrança de destino.                                                                                                                                                         | 255                                                                                                                 |
| `new_requester_profile_account_number`        | string | Número da conta de destino do tombamento.                                                                                                                                                                                                                                   | 7                                                                                                                   |
| `new_requester_profile_account_digit`         | string | Dígito verificador da conta de destino do tombamento.                                                                                                                                                                                                                       | 1                                                                                                                   |
| `new_requester_profile_account_branch`        | string | Número da agência da conta de destino do tombamento.                                                                                                                                                                                                                        | 4                                                                                                                   |
| `new_pix_key`                                 | string | Chave pix da conta de destino do tombamento (para os casos de bolepix).                                                                                                                                                                                                     | 255                                                                                                                 |
| `total_bank_slip_count`                       | float | Total de boletos no lote de tombamento.                                                                                                                                                                                                                                     | -                                                                                                                   |
| `total_amount`                                 | float | Somatória do valor de face dos boletos no lote de tombamento.                                                                                                                                                                                                               | -                                                                                                                   |                                                                                                                                                                                                               

### Enumeradores bank_slip_ownership_exchange_batch_status
| Enumerador | Descrição                                                                                              |
|------------|--------------------------------------------------------------------------------------------------------|
| open       | O lote foi criado e ainda está aberto para inclusão/exclusão de boletos.                               |
| sent     | A seleção dos boletos foi concluída e o lote de tombamento está pendente de aprovação. A parte aprovadora necessita realizar a aprovação.                  |
| processing | A seleção dos boletos foi concluída e o tombamento dos boletos contidos no lote está sendo processado. |
| approved | Os boletos contidos no lote já foram tombados o destinatário. |
| cancelled   | Lote de tombamento cancelado. |
| rejected | Lote de tombamento rejeitado. |

---

# Remover boletos em um lote de tombamento

URL: /documentation/troca_de_titularidade/remover_boletos

Esse endpoint é utiliza para remover boletos de um lote de tombamento de boletos com status `open`.

## Request

ENDPOINT /account/ ACCOUNT-KEY /requester_profile/ REQUESTER-PROFILE-KEY /bank_slip_ownership_exchange_batch/ BANK-SLIP-OWNERSHIP-EXCHANGE-BATCH-KEY /remove
MÉTODO PATCH

### Path parameters

| Campo                                    | Tipo   | Descrição                                                                                                              | Caracteres |
|------------------------------------------|--------|------------------------------------------------------------------------------------------------------------------------|------------|
| `ACCOUNT-KEY`                            | uuidv4 | Chave única de identificação da conta de origem, onde os boletos foram originalmente registrados.                      | 36         |
| `REQUESTER-PROFILE-KEY`                  | uuidv4 | Chave única de identificação da carteira de cobrança de origem, onde os boletos foram originalmente registrados. | 36         |
| `BANK-SLIP-OWNERSHIP-EXCHANGE-BATCH-KEY` | uuidv4 |Chave única de indentificação do lote de tombamento.| 36         |

Request Body

```json
{
	"bank_slips": [
		"b21c5b5a-a71f-4672-9254-022401cd15f6",
		"8197e3d0-1500-439f-9f9d-d243115542fa",
		"8293b817-bed9-418a-8c1e-ec8ef5a31468"
	]
}
```

:::caution Atenção!
A lista de boletos informada no objeto `bank_slips` no payload, possui uma limitação de 10.000 boletos por requisição. 
:::

## Response

STATUS 200

Response Body

```json
{
    "bank_slip_ownership_exchange_batch_key": "243c9369-ce8b-49df-969c-d891c2fc8c21",
    "request_control_key": "66c9399a-1463-4e2b-acc0-7ee447f81bf0",
    "bank_slip_ownership_exchange_batch_status": "open",
    "new_requester_profile_key": "e494067f-5bd4-4819-b64f-0687bd217f45",
    "new_requester_profile_code": "329-09-0001-8703524",
    "new_requester_profile_owner_name": "Fulano de Tal",
    "new_requester_profile_owner_document_number": "70896538000101",
    "new_requester_profile_account_number": "8703524",
    "new_requester_profile_account_digit": "1",
    "new_requester_profile_account_branch": "0001",
    "new_pix_key": "2376da91-86ad-4a0b-a466-f0f5acf53e24",
    "total_bank_slip_count": 0,
    "total_amount": 0
}
```

## Response Params
| Campo | Tipo | Descrição | Caracteres                                                                                                          |
|---|------|-----------|---------------------------------------------------------------------------------------------------------------------|
| `bank_slip_ownership_exchange_batch_key`      | uuidv4 | Chave única de indentificação do lote de tombamento.                                                                                                                                                                                                                        | 36                                                                                                                  |
| `request_control_key`                         | uuidv4 | Chave única de identificação da requisição neste endpoint. Utilizada para evitar duplicidade na chamada via API.                                                                                                                                                            | 36                                                                                                                  |
| `bank_slip_ownership_exchange_batch_status`   | enum  | Status do lote de tombamento.                                                                                                                                                                                                                                               | [Enumeradores `bank_slip_ownership_exchange_batch_status`](#enumeradores-bank_slip_ownership_exchange_batch_status) |
| `new_requester_profile_key`                   | uuidv4 | Chave única de identificação da carteira de cobrança de destino. É a carteira de cobrança para onde os boletos serão tombados. Você consegue opter essa chave através do [endpoint de consulta de carteiras de cobrança de uma conta](../boletos/carteira/listar_carteiras) | 36                                                                                                                  |
| `new_requester_profile_code`                  | string | Código da carteira de cobrança de destino. É a carteira de cobrança para onde os boletos serão tombados.                                                                                                                                                                    | 19                                                                                                                  |
| `new_requester_profile_owner_name`            | string | Nome do titular da conta de destino e do beneficiário da carteira de cobrança de destino.                                                                                                                                                                                   | 255                                                                                                                 |
| `new_requester_profile_owner_document_number` | string | Número do documento (CPF/CNPJ) do titular da conta de destino e do beneficiário da carteira de cobrança de destino.                                                                                                                                                         | 255                                                                                                                 |
| `new_requester_profile_account_number`        | string | Número da conta de destino do tombamento.                                                                                                                                                                                                                                   | 7                                                                                                                   |
| `new_requester_profile_account_digit`         | string | Dígito verificador da conta de destino do tombamento.                                                                                                                                                                                                                       | 1                                                                                                                   |
| `new_requester_profile_account_branch`        | string | Número da agência da conta de destino do tombamento.                                                                                                                                                                                                                        | 4                                                                                                                   |
| `new_pix_key`                                 | string | Chave pix da conta de destino do tombamento (para os casos de bolepix).                                                                                                                                                                                                     | 255                                                                                                                 |
| `total_bank_slip_count`                       | float | Total de boletos no lote de tombamento.                                                                                                                                                                                                                                     | -                                                                                                                   |
| `total_amount`                                | float | Somatória do valor de face dos boletos no lote de tombamento. | -                                                                                                                   |                                                                                                                                                                                                               

### Enumeradores bank_slip_ownership_exchange_batch_status
| Enumerador | Descrição                                                                                              |
|------------|--------------------------------------------------------------------------------------------------------|
| open       | O lote foi criado e ainda está aberto para inclusão/exclusão de boletos.                               |
| sent     | A seleção dos boletos foi concluída e o lote de tombamento esta pendente de aprovação. A parte aprovadora necessita realizar a aprovação                  |
| processing | A seleção dos boletos foi concluída e o tombamento dos boletos contidos no lote esta sendo processado. |
| approved | Os boletos contidos no lote já foram tombados o destinatário |
| cancelled   | Lote de tombamento cancelado. |
| rejected | Lote de tomabamento rejeitado. |

---

# Enviar lote de tombamento de boletos

URL: /documentation/troca_de_titularidade/validar_lote_e_enviar

Esse endpoint é utilizado para fechar o lote e iniciar o processamento da troca de titularidade. Ao fazer a requisição, o lote será validado e o status alterado para sent, onde ambas as partes envolvidas receberão um webhook relativo ao tombamento.

:::danger Atenção!
Esse endpoint só deve ser acionado caso a inserção dos boletos esteja finalizada e as devidas formalizações entre as contrapartes de origem e destino do tombamento, estejam concluídas. 
:::

## Request

ENDPOINT /account/ ACCOUNT-KEY /requester_profile/ REQUESTER-PROFILE-KEY /bank_slip_ownership_exchange_batch/ BANK-SLIP-OWNERSHIP-EXCHANGE-BATCH-KEY /send
MÉTODO PATCH

### Path parameters

| Campo                                    | Tipo   | Descrição                                                                                                        | Caracteres |
|------------------------------------------|--------|------------------------------------------------------------------------------------------------------------------|------------|
| `ACCOUNT-KEY`                            | uuidv4 | Chave única de identificação da conta de origem, onde os boletos foram originalmente registrados.                | 36         |
| `REQUESTER-PROFILE-KEY`                  | uuidv4 | Chave única de identificação da carteira de cobrança de origem, onde os boletos foram originalmente registrados. | 36         |
| `BANK-SLIP-OWNERSHIP-EXCHANGE-BATCH-KEY` | uuidv4 | Chave única de indentificação do lote de tombamento.                                                             | 36         |

Request Body

```json
{}
```

## Response

STATUS 200

Response Body

```json
{
    "bank_slip_ownership_exchange_batch_key": "243c9369-ce8b-49df-969c-d891c2fc8c21",
    "request_control_key": "66c9399a-1463-4e2b-acc0-7ee447f81bf0",
    "bank_slip_ownership_exchange_batch_status": "processing",
    "new_requester_profile_key": "e494067f-5bd4-4819-b64f-0687bd217f45",
    "new_requester_profile_code": "329-09-0001-8703524",
    "new_requester_profile_owner_name": "Fulano de Tal",
    "new_requester_profile_owner_document_number": "70896538000101",
    "new_requester_profile_account_number": "8703524",
    "new_requester_profile_account_digit": "1",
    "new_requester_profile_account_branch": "0001",
    "new_pix_key": "2376da91-86ad-4a0b-a466-f0f5acf53e24",
    "total_bank_slip_count": 3,
    "total_amount": 750.00
}
```

## Response Params
| Campo | Tipo | Descrição | Caracteres                                                                                                          |
|---|------|-----------|---------------------------------------------------------------------------------------------------------------------|
| `bank_slip_ownership_exchange_batch_key`      | uuidv4 | Chave única de indentificação do lote de tombamento.                                                                                                                                                                                                                        | 36                                                                                                                  |
| `request_control_key`                         | uuidv4 | Chave única de identificação da requisição neste endpoint. Utilizada para evitar duplicidade na chamada via API.                                                                                                                                                            | 36                                                                                                                  |
| `bank_slip_ownership_exchange_batch_status`   | enum  | Status do lote de tombamento.                                                                                                                                                                                                                                               | [Enumeradores `bank_slip_ownership_exchange_batch_status`](#enumeradores-bank_slip_ownership_exchange_batch_status) |
| `new_requester_profile_key`                   | uuidv4 | Chave única de identificação da carteira de cobrança de destino. É a carteira de cobrança para onde os boletos serão tombados. Você consegue opter essa chave através do [endpoint de consulta de carteiras de cobrança de uma conta](../boletos/carteira/listar_carteiras) | 36                                                                                                                  |
| `new_requester_profile_code`                  | string | Código da carteira de cobrança de destino. É a carteira de cobrança para onde os boletos serão tombados.                                                                                                                                                                    | 19                                                                                                                  |
| `new_requester_profile_owner_name`            | string | Nome do titular da conta de destino e do beneficiário da carteira de cobrança de destino.                                                                                                                                                                                   | 255                                                                                                                 |
| `new_requester_profile_owner_document_number` | string | Número do documento (CPF/CNPJ) do titular da conta de destino e do beneficiário da carteira de cobrança de destino.                                                                                                                                                         | 255                                                                                                                 |
| `new_requester_profile_account_number`        | string | Número da conta de destino do tombamento.                                                                                                                                                                                                                                   | 7                                                                                                                   |
| `new_requester_profile_account_digit`         | string | Dígito verificador da conta de destino do tombamento.                                                                                                                                                                                                                       | 1                                                                                                                   |
| `new_requester_profile_account_branch`        | string | Número da agência da conta de destino do tombamento.                                                                                                                                                                                                                        | 4                                                                                                                   |
| `new_pix_key`                                 | string | Chave pix da conta de destino do tombamento (para os casos de bolepix).                                                                                                                                                                                                     | 255                                                                                                                 |
| `total_bank_slip_count`                       | float | Total de boletos no lote de tombamento.                                                                                                                                                                                                                                     | -                                                                                                                   |
| `total_amount`                                | float | Somatória do valor de face dos boletos no lote de tombamento. | -                                                                                                                   |                                                                                                                                                                                                               

### Enumeradores bank_slip_ownership_exchange_batch_status
| Enumerador | Descrição                                                                                              |
|------------|--------------------------------------------------------------------------------------------------------|
| open       | O lote foi criado e ainda está aberto para inclusão/exclusão de boletos.                               |
| closed     | O lote se encontra fechado e o tombamento dos boletos contidos no lote foi concluído.                  |
| processing | A seleção dos boletos foi concluída e o tombamento dos boletos contidos no lote esta sendo processado. |
| pending_approval | A seleção dos boletos foi concluída e o lote de tombamento esta pendente de aprovação. A parte aprovadora, pode remover boletos do lote. |
| canceled   | Lote de tombamento cancelado. |
| rejected | Lote de tomabamento rejeitado. |