Pagamento via Pix
Informamos que esta funcionalidade está em fase piloto e ainda não disponível para todos os clientes da Senior.
A geração do pagamento eletrônico é feita através de ERPs, independentemente de estarem ou não na plataforma Senior X, e que se conectam com o Banking as a Service.
Para os ERPs que não estão na plataforma Senior X, é necessário realizar o cadastro de Empresa e Filial pelas APIs Company e Branch, que estão disponíveis na página de APIs públicas da Senior no caminho erpx > Foundation (foundation).
Fluxo do processo de pagamento via Pix pelo ERP Banking
O fluxo de pagamento via Pix envolve a interação entre diversos microsserviços e APIs, responsáveis por registrar, validar, processar, e integrar as informações de pagamento com sistemas externos. Abaixo, detalhamos cada etapa do processo.
1. Recepção de Dados do ERP Externo
- Micro serviço: erpx-bnk-pag-register-pix
- Ação:
- O micro serviço escuta a comunicação vinda do ERP externo;
- Quando uma solicitação é recebida, chama a API registerPixPayment.
- API chamada: registerPixPayment
- Parâmetros: Banco, empresa, filial e pagador;
- Validação:
- Valida o payload recebido;
- Se o payload estiver correto, prossegue para a próxima etapa.
2. Integração com Foundation
- Micro serviço: erpx-bnk-pag-pix;
- API chamada: realizarIntegracoesFoundation
- Ação:
- Integra as informações recebidas com o Foundation;
- Verifica se precisa criar ou atualizar os registros.
- Atualiza: Se o registro existir, ele é atualizado com as novas informações recebidas;
- Cria: Se o registro não existir, um novo é criado.
- API chamada: registrarPagamentoPixAsync
- Ação:
- Realiza validações de regras de negócio;
- Persiste os dados no banco de dados.
3. Processamento das Validações
- Resultado das Validações:
- Falha na validação: A situação do item é marcada como FALHA_NA_VALIDACAO;
- Título já processado: Se o título já foi processado anteriormente e está com uma das situações PAGAMENTO_EFETUADO, PAGAMENTO_AGENDADO, AGUARDANDO_PAGAMENTO, ou PROCESSANDO_ENVIO_PAGAMENTO, a situação é alterada para PAGAMENTO_INAPTO_PARA_PROCESSAMENTO;
- Validação bem-sucedida: Se tudo estiver correto, a situação do título é marcada como AGUARDANDO_PAGAMENTO.
4. Verificação e Processamento dos Registros
- Ação: Verifica se há registros para processar.
- Nenhum registro:
- Chama a API finalizarPagamento que finaliza o processo e comunica o ERP para continuar o processo internamente.
- API chamada: finalizarPagamento
- Ação:
- Atualiza a situação da entidade pagamentoDadosPix para FINALIZADO;
- Recupera todos os itens vinculados ao lote recebido que tiveram erro no processo;
- Notifica o ERP disparando o evento pixScheduled para que o ERP trate o erro e envie novamente.
- Existem registros:
- Chama a API executarIntegracaoParceiro.
- Ação:
- Atualiza a situação do Pix apto para integração de AGUARDANDO_PAGAMENTO para PROCESSANDO_ENVIO_PAGAMENTO;
- Cria um histórico do processamento;
- Monta o payload e dispara o evento conforme o parceiro configurado.
5. Retorno das Informações do Parceiro
- API de fachada: retornoPagamentoESales
- Ação:
- Mapeia os valores recebidos para o DTO padrão do banking, para padronizar o processo para todos os parceiros implementados.
- Verificação de status:
- Status: ENVIADO_AO_BANCO, ERRO_DE_COMUNICACAO, INVALIDO;
- Assim que a solicitação de pagamento é encaminhada, o retorno é assíncrono;
- O parceiro (eSales) monta o arquivo e envia para o banco.
- Retorno:
- Se a solicitação foi bem-sucedida, retorna ENVIADO_AO_BANCO;
- Se houve problemas, retorna ERRO_DE_COMUNICACAO ou INVALIDO.
- Chama a API retornoEnvioPagamento para tratar o envio do pagamento ao banco.
- Novo arquivo: O banco gera um novo arquivo de retorno.
- A eSales recupera e envia para o Banking;
- Status do arquivo: INCLUIDO ou REJEITADO;
- Chama a API retornoConfirmacaoAgendamento;
- Na última etapa, quando o pagamento foi realmente LIQUIDADO chama o signal retornoPagamentoEfetuado.
- Status: ENVIADO_AO_BANCO, ERRO_DE_COMUNICACAO, INVALIDO;
6. Confirmação do Envio ao Banco
- Ação: Verifica se houve erro no envio.
- Sem erro:
- Atualiza a situação do pagamento para PAGAMENTO_ENVIADO;
- Cria um registro de histórico;
- Verifica se todos os títulos do lote foram processados para finalizar o processo.
- Com erro:
- Atualiza a situação do pagamento para PAGAMENTO_COM_PROBLEMAS;
- Cria um registro de histórico;
- Armazena os erros recebidos;
- Verifica se todos os títulos do lote foram processados para finalizar o processo.
- Sem erro:
7. Retorno da Confirmação do Agendamento
- API chamada: retornoConfirmacaoAgendamento
- Ação: Recupera e verifica se o pagamento foi agendado.
- Pagamento agendado:
- Atualiza a situação do pagamento para PAGAMENTO_AGENDADO.
- Pagamento não agendado:
- Atualiza a situação do pagamento para PAGAMENTO_NAO_AGENDADO.
- Finalização:
- Cria um registro de histórico;
- Monta o payload;
- Dispara o evento pixScheduled.
- Pagamento agendado:
8. Confirmação do Pagamento Efetuado
- API chamada: retornoPagamentoEfetuado
- Ação:
- Recupera os pagamentos da base de dados;
- Cria um registro na tabela pagamentoItemPixRegistro;
- Atualiza a situação do pagamento para PAGAMENTO_EFETUADO;
- Cria um registro de histórico;
- Monta o payload;
- Dispara o evento pixPaid;
- Finaliza o processo.
Documentação
- Pagamento de Pix integrado com o parceiro eSales, conforme as documentações abaixo do eSales:
Bancos Aceitos
- Itaú;
- Santander;
- Sicredi;
- BTG Pactual;
- Bradesco.
Comunicação
- Comunicação assíncrona conforme tecnologia e estrutura do ERP Banking;
- Limitação de 100 pagamentos por chamada.
Eventos de Webhook Tratados
- Enviado ao banco, Inválido ou Erro de comunicação;
- Incluído ou Rejeitado;
- Liquidado.
Regras e Limitações
- Dígito da agência e da conta serão opcionais para alguns bancos e devem ser string;
- É utilizado o foundation para a empresa e filial;
- Data de pagamento deve ser atual ou futura (não é possível enviar pagamento com data passada);
- O campo seunúmero tem um limite de 20 caracteres e é padrão para todos os bancos;
- Não será enviado o TXID para a eSales.
Integração de pagamento via Pix
A API pública para o pagamento via Pix é a registerPixPayment. Veja abaixo mais detalhes sobre sua estrutura e a seguir as informações sobre cada campo.
{
"paymentBank": "NOME_DO_BANCO",
"company": {
"id": "string?",
"code": integer?
},
"branch": {
"id": "string?",
"code": integer?,
"documentNumber": "string?",
"nifNumber": "string?"
},
"paymentBankData": {
"covenant": "string(20)",
"branchNumber": "string ( 5 )",
"branchDigit": "string ( 2 )?",
"accountNumber": "string ( 15 )",
"accountDigit": "string ( 2 )?"
},
"accountsPayable": [
{
"accountPayableId": "string",
"accountPayableNumber": "numeroTitulo",
"accountPayableType": "tipoTitulo",
"payableForm": "PIX_COPY_PASTE ou PIX_KEY_TRANSFER ou BANK_DATA_TRANSFER ou PIX_REVERSAL",
"favored":{
"documentNumber": "CPF ou CNPJ string ( 14 )",
"name": "nome favorecido",
"pixKeyType": "TELEPHONE ou EMAIL ou RANDOM_KEY ou CPF ou CNPJ",
"pixKey": "chavePix",
"pixCopyPaste": "string?",
"bankNumber": "string(3)?",
"branchNumber": "string(5)?",
"branchDigit": "string(2)?",
"accountNumber": "string(15)?",
"accountDigit": "string(2)?",
"accountType": "CHECKING_ACCOUNT ou PAYMENT_ACCOUNT ou SAVING_ACCOUNT"
},
"payableDate": "date",
"originalValue": "money minValue : 0",
"favoredAlert": "string?"
}
]
}
Descrição dos campos da registerBankSlipBilling
Informar o nome do banco do pagamento.
Bancos aceitos:
- Santander - 033;
- Itaú - 341;
- Sicredi - 748;
- BTG Pactual - 208;
- Bradesco - 237.
Informação obrigatória.
Observação
Inicialmente, os bancos "Banco do Brasil - 001" e "Caixa Econômica Federal - 104" só estão disponíveis para pagamento via boleto.
Informar os dados do título para registrar o pagamento:
- accountPayableId: identificador do título;
- accountPayableNumber: número do título;
- accountPayableType: tipo do título;
- payableForm: forma de pagamento, que pode ser PIX_COPY_PASTE ou PIX_KEY_TRANSFER ou BANK_DATA_TRANSFER ou PIX_REVERSAL;
- favored: identificador do favorecido;
- payableDate: data do pagamento;
- originalValue: valor original do pix.
Observações
- O campo originalValue é obrigatório e não pode ser negativo;
- O favored é composto pelos campos: Número do documento (documentNumber), Nome (name) e os campos abaixo que são opcionais:
- Tipo de chave pix (pixKeyType);
- Chave pix (pixKey);
- Pix copia e cola (pixCopyPaste );
- Código do banco (bankNumber);
- Número da agência do favorecido (branchNumber);
- Dígito da agência do favorecido (branchDigit);
- Número da conta do favorecido (accountNumber);
- Dígito da conta do favorecido ( accountDigit);
- Tipo de conta do favorecido (accountType).
Enums do serviço
"Enumeration de bancos de pagamento" enumeration enumPaymentBank { "Santander - 033" SANTANDER "Itaú - 341" ITAU "Sicredi - 748" SICREDI "BTG Pactual - 208" BTG_PACTUAL "Bradesco - 237" BRADESCO } //Enumeration das formas de pagamento enumeration enumPayableForm { "Pix copia e cola" PIX_COPY_PASTE "Chave pix" PIX_KEY_TRANSFER "Tranferência bancária" BANK_DATA_TRANSFER "Devolução de Pix" PIX_REVERSAL } //Enumeration dos tipos de chave pix enumeration enumPixKeyType { "Chave telefone" TELEPHONE "Chave email" EMAIL "Chave aleatória" RANDOM_KEY "Chave CPF" CPF "Chave CNPJ" CNPJ } //Enumeration dos tipos de chave pix enumeration enumAccountType { "Conta corrente" CHECKING_ACCOUNT "Conta pagamento" PAYMENT_ACCOUNT "Conta poupança" SAVING_ACCOUNT }
English
Español
English
Español


