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.
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", "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.
Informação obrigatória.
Observação
Inicialmente, os bancos "Banco do Brasil - 001", "Caixa Econômica Federal - 104" e "Bradesco - 237" 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;
- 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 } //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 } //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 }